Overview
What is it?
The Basic Door Generator is a design process tool designed for Architectural projects in Blender. Built on Geometry Nodes, the tool works through a modifier and creates procedural door meshes and their corresponding plan-view symbols. It is intended to enable quick and easy design iteration and to provide a preview of how a door will look in a space. All doors can be animated with a built-in slider.
How Does it Work?
The door generator tool works by generating a fully procedural door mesh based on the user-input dimensions and settings. These settings are found and used as a modifier, and users can switch between single, double, or pocket door types. All three door types support flush or single panel door styles, as well as 2" or 4" trim. Door meshes and symbols can be switched between using the menu in the modifier on an individual basis or across the project using the manual override in the node system. The Open Door slider in the Animation panel animates the opening and closing of the door.
Where Can I Find it?
Note - the BlenderKit version is a standalone and the ArtStation version ships with my other free tools.
This tool is dependent on features introduced in Blender's 4.1 release and will not function in earlier versions.
Released: July 20, 2024
Supported Blender versions: 4.1 - 4.2
License
This tool can be used for personal or 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 remaining sections go over the different panels in the modifier, with the same names and in the same order as they appear in the modifier.
Getting Started
Importing the Tool
There are a few ways to get the tool into a project file. If the user is downloading the tool from BlenderKit, it's as simple as dragging and dropping the file into a new or existing project. It the user is downloading the tool from Artstation, there are a few different ways to get the tool into a 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 make 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 "Free Archvis Tools x.x", 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 top of this folder there is a file called "Basic Door Generator". Left click this file to highlight it, then click Append or Link 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.
The Input Mesh
This door generator functions by instancing generated door meshes on each vertex in the mesh the modifier is added to. To use the tool place a single vertex at floor level on the side of the wall the door should swing towards; centered on where each door should be, then add a geometry nodes modifier and select the "Basic Door Generator". These vertexes can be moved around in edit or object mode to adjust the location of the door in real time.
To control each door independently: keep each vertex as a separate object.
To control multiple door instances together: join the vertexes into a single object to sync their dimensions and settings.
Setting up the Boolean
In order to punch the hole for the door, users will need to set up a basic boolean modifier. This modifier must be placed on the wall object, or the object that is going to have the hole punched through it.
The set-up for this is pretty simple. Select the wall that the door is going in, go the to modifiers tab (wrench icon), and add a boolean modifier. Make sure that "Difference" is selected at the top of the modifier and that the Solver is set to "Exact" for better results. I've found that the "Fast" solver generates some odd results. Make sure to open the Solver Options drop down and check both Self-Intersection and Hole Tolerant, otherwise the boolean will not function as expected.
If there's only going to be one door, just add the mesh which is hosting the door to the object input and the hole should be cut around the door automatically. If there are going to be multiple doors punched into one wall, it may be easier to place all the door objects into their own collection, and change the boolean modifier's operand type to "Collection".
Don't apply the boolean unless the door size and position have been finalized. This will lock the size and position of the hole in the wall mesh.
Basic Settings
The general settings at the top of the modifier, these are always visible where the other settings are nestled into closable tabs.
Door Type
Situated at the very top of the modifier, the Door Type menu is where the different door types can be selected between. In the basic version, this includes Single Swing, Double Swing, and Pocket.
Door Style
The Door Style menu is where the style of the actual door can be selected. In the basic version, this includes Flush (totally flat door surface) and Single Panel (one large recessed panel in each door).
Trim
The Trim menu allows the user to select what trim goes around the door. The basic version only supports rectangular trims in 2" and 4" wide.
Flip Swing
The Flip Swing toggle changes whether the door swings or slides left or right. This does not affect the Double Swing door as these doors always swing from the middle out.
Door Rotation
The geometry node automatically orients all doors with the swing direction facing into the negative Y-direction, and does not recognize the orientation of the wall it intersects. If the door is out of alignment with the wall, the Door Rotation input can be adjusted to align the door to match the wall.
NOTE: this only supports rotations in the Z-direction
Custom Mesh
The Custom Mesh toggle is for replacing the procedural door with a user-supplied mesh. Once the dimensions of the door generator are matched to the door waiting for import, simply check this box to remove all door elements except for the boolean box. This will leave a hole appropriately sized and placed, which the user-supplied mesh can then be moved into. There is currently no function to do this automatically.
Dimensions
The dimensions tab in the modifier is pretty much what it sounds like. The numbers input here allow the user to control of the size of the door. As the actual dimensions of most door components are calculated from the input dimensions, this tool should work with any units.
Door Width
This is the width (side-to-side) of the actual door. It does not include the frame or trim.
Door Height
This is the height of the actual door. Like width, it does not include the frame.
Wall Thickness
The thickness of the wall that the door is being inserted in. This controls the depth of the boolean hole punch and the position and size of several door elements, including the pocket door, frame, and trim. If the wall thickness is unknown, experiment with it until the trim is flush with the wall on both sides and the boolean is cutting all the way through the wall.
Door Thickness
This menu controls the thickness of the actual door. There are three presets - Standard Interior (1 3/8"), Thicker Interior (1 1/2"), and Standard Exterior (1 3/4"), and an option to input a custom door thickness using the input labelled Custom Thickness immediately below the menu.
Custom Thickness
If Custom is selected in the menu above, this input can be used to set the thickness of the door in scene units to any dimension desired.
Materials
The generated meshes have two included procedural materials with color and roughness customization settings and an option to import a custom material. Meshes are procedurally unwrapped, and the grain direction of the provided wood materials is determined by the longest edge in each component.
Note: Adding materials in Blender's material properties will not affect the meshes.
Door/Trim/Jamb Material
These drop-down menus allow the user to choose which preset material to apply to the named part of the door, or if a custom material will be imported. The included materials are Wood and Painted Wood, which are both procedurally generated.
Door/Trim/Jamb Color
These color inputs allow the user to choose any color to apply to the preset material selected above. Note that these colors don't affect imported custom materials.
Door/Trim/Jamb Roughness
The roughness sliders adjust the roughness of the preset materials. Note that, like the colors, they don't affect imported custom materials.
Door/Trim/Jamb Custom
If Custom is selected in the Material menu above, these inputs are where a custom material is imported.
Note: When importing custom materials, use the "BDG_UVs" attribute for the vector instead of the generic UV texture coordinate. This attribute is where the procedural UVs are stored, and is the only way I know of to access them.
Match Jamb to Trim
This toggle changes whether the door jamb (the part of the frame which goes around the edges of the hole in the wall) uses its own separate material settings or shares the settings for the Trim. Note that this only transfers the color, roughness, and custom input values - the actual menu setting must be matched manually (e.g. set both to Painted Wood).
Handle Color
Select a custom color to apply to the handle(s).
Plan View Settings
Each door type has a corresponding plan-view symbol which scales to match the door. This section controls those symbols and their visibility for when the user wants to render a plan versus a perspective view.
Visibility
This drop-down menu allows the user to toggle between viewing the door mesh, it's corresponding plan-view symbol, or both. This affects each object individually.
Symbol Line Thickness
This input sets the diameter of the lines which make up the door symbol.
Manual Override
Having to change every single door object from mesh to symbol and back is frustrating, especially that one moment when a door or two was missed or toggled by accident, so this tool incorporates a master switch function to temporarily override all individual visibility settings. This works both ways - it can force everything to plan view or to mesh.
There is one caveat though - as modifier settings only affect the object they're applied to, the master switch has to be accessed from the node system. It is not hard to use, though. In the geometry nodes tab, at the very top of the node tree, there is a mid-grey box labelled "PLAN VIEW MANUAL OVERRIDE" with a single node group inside. Left click this node group and click tab to go inside of it.
There are five nodes inside the tree, but the user only needs to worry about two of them. The second node from the right is a switch node labelled "True to Override", just click the checkbox next to where it says "Switch" to activate the override function. The box should turn blue with a check mark.
From here, go down and left to the menu switch node labelled "OVERRIDE" and use the second drop-down from the top to choose between mesh and plan symbol visibility. As long as the switch is active, the setting in this node will be used for all doors in the scene. To deactivate the override, just click the checkbox next to where it says "Switch" again so that it shows an empty grey box. This will default the node system back to the individual settings saved in the modifier.
Animation
The door generator has a very basic animation function, just for fun. The slider is a factor value, allowing the user to input a value from zero to one to move the door from its fully closed to fully open positions. Swinging doors open 90 degrees towards the vertex they were instanced on and the pocket door slides fully into the wall.
Example Gallery
The images below are examples of some of the results that can be achieved with this generator. All of these are placed in a basic scene with a wall and an hdri to provide the light. The wall is just Blender's default material.