Skip to Content

Outlet and Switch Tool

Overview

What is it?

  The Outlet and Switch Tool is a geometry-nodes based tool for Blender which works through a modifier to enable easy configuration and placement of electrical outlets and switches, along with a selection of bonus accessories. The tool includes a modular kit of render-quality parts with baked PBR texture sets and one basic emission shader, and can make what I've calculated to be over 1,000 possible accessory configurations (not counting different color and material options) and supporting up to ten different accessories per unit. Basic animation settings are built-in for every operable switch, slider, and rotary component, and all lights can be turned on and off in the modifier.

   The designs of most of the accessories are inspired by what seemed to be common styles and trends available across the US market, all standardized to fit with the rest of the pieces in the kit. Note that some of the accessories this tool can build are antique designs which are hard to find or no longer in production - and not all of the possible combinations and materials have real-life equivalents.

How does it work?

  The tool works by instancing modular components to create a unit with up to 10 outlets or switches of the selected type(s), complete with screws and the appropriate wallplate(s). The position and orientation of this unit and some of its components can be controlled by the user with the settings in the modifier.

Where can I find it?

   The Basic Outlet and Switch Tool is in closed beta.

This tool is dependent on features introduced in Blender's 4.1 release and will not function in earlier versions.

License

   This tool uses ArtStation's Extended Commercial Use license. Purchasing a copy of the tool gives the user (unless clearly stated otherwise) a single-seat license to use the tool in personal and commercial projects without royalties. Attribution is deeply appreciated but not required.

   The user may not distribute copies of the tool without the express, written permission of the Developer.

Warranty Disclaimer: All work produced by this Developer is provided "AS IS". The Developer makes no other warranties, either express or implied, and hereby disclaims any implied warranties, including any warranty of merchantability and warranty of fitness for a particular purpose. The Developer makes no representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability, or completeness of any information.

How to Navigate this Guide

  The table of contents on the left side of the page lists the major sections of the guide. The Getting Started section at the top goes over the basic preparatory steps to prepare for use of the tool, and the Basic Settings section goes over the options visible at the top of the modifier. The Unit Position, Accessory 1-10, and Screw Randomization sections go over the different panels in the modifier, with the same names and in the same order as they appear in the modifier. The Materials section goes over the included materials, and the Indexes at the bottom are a visual library of the accessories included in the kit.

Note: Throughout the documentation and in the tool itself, the outlet and switch components are referred to as "accessories" and the complete mesh (including the accessories, wallplate, and screws) is referred to as the "unit".

Getting Started

   This tool functions by instancing a unit on each vertex in the mesh the modifier is added to, and there are two different techniques for placing the units. Manual application is more straightforward, but Snap as Wall Object is more versatile.

Importing the Tool

   There are a few ways to get the tool into a project file. The user can start the project in a copy of the download file, or the node tree can be appended or linked into an existing file.

   The first method works if the user is just starting a new project - The user can just use the download file the tool ships with (or a copy of it) as the base file for the project.

   The other methods are Appending and Linking. Appending copies the tool and all its references into the new file and Linking basically uses the original file as a reference. Appending is best if the user is going to be moving files around because it isn't dependent on the download file staying in the same location. Linking requires both files to stay put, but doesn't clutter up the scene collection with all the components. To do either of these methods, simply open a Blender project, go to the File menu, and click Append or Link. From here, navigate to where the tool was downloaded and double click the folder labelled "Outlet and Switch Tool 1.0", which should have the Blender logo on it. Scroll down to find the folder labelled "Node Tree" and double click into this as well. Near the bottom of this folder there is a file called Outlet and Switch Tool 1.0. Left click this file to highlight it, then click Link or Append to add it to the file. The tool will have to be manually added to a mesh.

   Note: It is possible to import the actual mesh that the modifier is applied to in the sample file - but this only works with the Append method. If the Linking method is used this will result in the modifier being greyed out and unusable. There are two sample meshes in the file, one for each application method offered in the tool. If both methods are desired in a file either append both meshes at once (only clicking "Append" once) or use the instructions below to convert between the two methods after appending either. DO NOT RUN A SECOND APPEND TO GET THE OTHER METHOD INTO A FILE - this creates a second copy of the tool, its materials, and all of the kit parts it uses, which will double the file space that the tool will take up in the project.

   Note: When using append, I've found it's best to have an empty collection ready and selected before appending the files. This way all the components that the tool uses will import into their own collection which can be turned off and moved around easily. I recommend using the little checkbox on the collection folder to exclude the components from the view layer, as this prevents the mass of loose pieces from showing up in renders and does not impact the visibility of meshes generated with the tool.

Applying the Tool to a Mesh

   The process of actually applying the tool is pretty straightforward. If the user is starting a project in a copy of the provided file or appending a sample mesh (see above), units can simply be copy-pasted or dragged and dropped into the scene. Any copy which has its own object in the Outliner can be modified individually.

   If the user is importing just the tool into an existing file or needs to apply the modifier to a pre-made mesh, the tool can be manually applied. To do this, navigate to the Modifiers tab in the properties panel and click the Add Modifier button. From here click the Geometry Nodes option which should be directly under the search bar at the top of the menu. This adds a modifier block to the mesh, with a large button labelled "New" to the right of a small drop-down menu. Click on the drop-down menu and select the option labelled "Outlet and Switch Tool 1.0". The default outlet should appear over each vertex in the mesh.

Manual Application

   This method allows easy precision placement of the units. To start, place a single vertex at floor level at the base of the desired wall; centered on where each unit should be, then add a geometry nodes modifier and select the "Outlet & Switch Tool". These vertexes can be moved around in edit or object mode to adjust the location of the unit(s) in real time. When applying the modifier in this way, the Snap as Wall Object checkbox is disabled by default. This is the easiest method to use if precision is required or preferred.

To control each unit independently: keep each vertex as a separate object.

To control multiple units together: join the vertexes into a single object to sync their settings.

Snap as Wall Object

    Note that this mode is temperamental - it runs afoul of a bug in Blender itself which causes objects snapped in this way to come in at odd rotations sometimes. This bug has been reported to the Blender team and will hopefully be investigated soon.

     This allows users to just snap their units to the wall instead of or in addition to using the position settings. What this means is if the asset is dragged and dropped from the outliner or the asset browser it will snap with the back flush against any surface, but until the bug is fixed it may take a little extra work to clean up the results.

​When downloading the tool from ArtStation the outlet on the left (upside down) has snapping enabled and the outlet on the right does not. When applying the modifier to a new mesh, snapping will be disabled by default.

   To disable Snap as Wall Object: When the unit is snapped to a surface, Blender rotates it to ensure it is oriented correctly. It will look like the rotation has been messed up when the toggle is turned off, but simply applying the rotation will snap the unit back into the default position. From here, simply snap the vertex the unit is instanced on to the base of the wall.

   ​To snap multiple units: The user can drag and drop copies from the outliner, or add the original mesh with snapping enabled to the asset browser, and drag and drop additional copies from there.

   To enable Snap as Wall Object manually: Create a unit using the manual method, and set the Unit Height to zero before enabling snapping. Once this is done, left click on the mesh in the outliner and drag a copy into the scene to snap. The user can also use the asset browser for this, which may be easier to keep track of in larger projects.

   To use precision with snapping enabled: There are a couple considerations here. Firstly, the user can disable Snap as Wall Object as described above, or leave it on. If leaving it on for units snapped to walls facing in the +Y direction, the user will need to set the Y-rotation in the object transforms to 180 degrees. For units facing the -Y direction, the Y-rotation needs to be set to 0 degrees. Basically adjust this value so that, when a value is entered in the Unit Height input the vertex is underneath the unit. If turning it off, follow the steps above for disabling Snap as Wall Object and use the Unit Rotation input in the modifier to align the unit with your wall. Once the unit is aligned, go into edit mode and snap the vertex that the unit is instanced on to the base of the wall, and set the desired height in the modifier.

   If the unit snaps in a weird orientation: This is caused by the bug mentioned above - the user can either rotate it in object mode or play with the Is Sideways and Flip Accessory toggles to correct it.​

Basic Settings

   The general settings at the top of the modifier, these are always visible where the other settings are nestled into closable tabs.

# Accessories

  This is an integer input allowing the user to determine how many accessories should be in the unit, with the tool supporting a maximum of 10. Negative numbers or zero will read as an input of 1, and numbers in excess of 10 will be read as 10. Each of those ten slots can have any of the possible accessories, in any order.

Wallplate Material

   This drop-down menu allows the user to select one of four materials to apply to the wallplate. The last option in the menu is Custom, which allows the user to import any custom material. See the Material Index section in the documentation for a preview of what these look like.

Custom Color

   Check this toggle to apply the user-input Wallplate Color below to the wallplate material, and uncheck it it go back to the default color.

Color Match Screws

   Check this toggle to apply the user-input Wallplate Color below to the screws as well - uncheck it to use default color screws. Note that this is not compatible with the Mirrored wallplate material.

Wallplate Color

   This color input allows the user to select a custom color for the wallplate. It will overlay this color on any of the preset materials.

Custom Wallplate Material

   This input allows the user to apply any material of their choice to the wallplate. Note that this works best with either edited copies of the included _Wallplate materials, materials with no clear pattern (because it will be broken up between sections of the wallplate), or procedural materials that don't use UV coordinates. Simply click in the box and select the desired custom material to import it.

Snap as Wall Object

   This toggles the Snap as Wall Object mode on and off. Instructions to use this are in the Getting Started section above.

Unit Position

   These settings control the position of the unit relative to the point(s) it is instanced on.

Unit Height

   The height of the unit above the vertex. This is measured in scene units.

Height to

   By default, the unit height is measured to the center of the unit. The Height to menu allows the user to change this to measure height to the top or bottom of the unit.

Unit Rotation

  This setting rotates the unit in the Z-direction. As the tool itself can't read the orientation of the wall, this setting can be used to align the unit to the wall if it isn't already.

Is Sideways

  This toggle turns the unit sideways on the wall.

Accessory 1-10

   The settings that control each individual accessory. Accessory 1 controls the left-most accessory and Accessory 10 controls the right-most one, with each set of settings in its own collapsible panel. The visibility of these accessories are controlled by the # Accessories input in the basic settings. There are a lot of options for customizing each accessory, so for ease of navigation I've broken this section of the documentation into the core settings and three other tabs, organized from left to right in the order they are seen and with the same labels as in the modifier.

^ Return to Tabs

Screw Randomization

Randomize Screws

   This toggle is activated by default, and adds a random orientation to each screw in the unit. Unchecking it sets all screws to be oriented in the same direction.

Random Seed

   This seed is for the random number generator that rotates the screws.

Material Index

   This section covers the actual materials included in the tool and a few more advanced topics on customizing them.

Included Materials

   The actual materials avaliable in the kit. There are two categories of these - Wallplate materials and Accessory materials.

^ Return to Tabs

The Specialty Parts Material

   The Specialty Parts material is a little different from the others - it includes all the clear plastic parts, metal ports, and other components that are generally not available in other colors or materials. However, it does have a single input in the material node labelled Silver to Gold which changes the color of the metal ports (USB, HDMI, Cable) from the default silver color to a metallic gold.

Which Material Applies to What?

   All materials that come with this tool use a standard naming convention: OST_MaterialName_AssetType. The OST stands for Outlet and Switch Tool, the Material Name is the name of the material as it is shown in the material drop-down menus (e.g. Matte Plastic) and the Asset Type is what the material applies to (receptacles, switches, wallplates, etc).

  The _Wallplates materials apply to the actual wallplate sections and the screws, the _Receptacles materials apply to the outlets, the _Switches materials apply to the switch and dimmer components, the _Modular_Despard materials apply to the components that fit in the Modular and Despard wallplates, and the _GFCI/AFCI_Buttons just applies to the GFCI/AFCI buttons as the name implies.

Universal Color Change

   If desired, the color of a material can be changed on a scene-wide basis. To do this, reference the above section to find the material to be changed, add it to any object in the scene, make sure its selected, and open the shader editor. There will be a single node group with the material name on it and two inputs, each with an attribute node connected to it. These are connecting the custom color settings from the Geometry Nodes - to switch from modifier to manual control simply disconnect these two nodes, pick a color in the node input and set the mix factor to 1 to apply the color. To switch back to individual control simply reconnect the two attribute nodes.

   Note: adjusting the color in the base material will affect ALL accessories using that material. To affect just one accessory or unit, make a copy of the material, give it a memorable name, and import it in as a custom material - or just use the color settings in the modifier.

Outlet Index

   This index displays all the different types of outlets that can be configured with this tool. The organization of the index follows the modifier, with each outlet style having its own tab and the bold headers are the types, all organized in the order they appear in the modifier. Under each header, images of the outlet results are shown with the settings used to create them, if any are needed. A summary of the settings that apply to each style is provided under each tab, with type-specific settings summarized under the appropriate header.

   The designs of most of the outlets are inspired by what seemed to be common styles and trends available across the US market, all standardized to fit with the rest of the pieces in the kit. Note that some of the outlets this tool can build are antique designs which are hard to find or no longer in production - and not all of the possible combinations and materials have real-life equivalents.

   All outlets are rendered with the Matte Plastic material in the default white and this HDRI from Poly Haven. 

   Note: There is some information below about where types of outlets might be used in a building - I am not an expert and this is only to provide a general idea of where these outlets might be found in a 3D scene for those who are not familiar with them. For real-life electrical projects please consult a licensed electrician.

^ Return to Tabs

Switch Index

   This index displays all the different types of switches that can be configured with this tool. The organization of the index follows the modifier, with each switch style having its own tab and the bold headers are the types, all organized in the order they appear in the modifier. Under each header, images of the switch results are shown with the settings used to create them, if any are needed. A summary of the settings that apply to each style is provided under each tab, with type-specific settings summarized under the appropriate header.

   The designs of most of the switches are inspired by what seemed to be common styles and trends available across the US market, all standardized to fit with the rest of the pieces in the kit. Note that some of the switches this tool can build are antique designs which are hard to find or no longer in production - and not all of the possible combinations and materials have real-life equivalents.

  All switches are rendered with the Matte Plastic material and this HDRI from Poly Haven.

^ Return to Tabs

Other Accessories Index

   This section goes over the bonus accessories included in the kit that don't cleanly fit as either outlets or switches.

   The designs of most of the bonus accessories are inspired by what seemed to be common styles and trends available across the US market, all standardized to fit with the rest of the pieces in the kit. Note that some of the bonus accessories this tool can build are antique designs which are hard to find or no longer in production - and not all of the possible combinations and materials have real-life equivalents.

   All bonus accessories are rendered with the Matte Plastic material and this HDRI from Poly Haven.