Tutorials
Learn new skills with our bite sized lessons
Resources
Requirements
RailClone Pro or Lite
Featured Products
Get ProductsWelcome to the first tutorial in a new three-part mini-series in which we’ll share tips for quickly creating and populating procedural balconies. In the first part we’ll use RailClone to generate the balcony geometry, In the second we’ll scatter objects on the balconies using ForestPack, and finally in the 3rd tutorial we’ll add some hanging plants using ForestIvy.
In this first tutorial, we’ll focus on using RailClone to generate balcony geometry including a railing, deck, and metal framing. The size and shape is adjustable. You can follow along whether you have RailClone Pro or RailClone Lite. However, note if you’re using the Lite version, you’ll just need to split your balcony into multiple RailClone objects each time I add a new generator.
Download the exercise files here
Creating the Railings with RailClone
To kick things off, let’s create the railing. We’ll set up the object, import our scene geometry, and configure the generator.
- Start by creating a new RailClone object and open the Style Editor. Select the spline and the three pieces of geometry from the scene that will be used to construct the railing.
- Right-click in the Style Editor and select to Import Scene Selection. Add a new Linear generator, then wire the spline node to the spline input. Connect the post segment to the Corner input. If you zoom in, you’ll notice that the geometry deforms around corners. To fix this, go to the Segment’s settings and turn off Bend and Slice.
- The geometry is no longer bending, but it is bisecting the corner angles instead of remaining straight. Go to the Generator’s Rules settings and turn off Align to Path under the corner section.
- Wire the same segment to the Evenly input. This will distribute extra posts evenly along the spline. Adjust the spacing under the Generator's Rules > Evenly tab.
- Add the pickets geometry to the Default input. You will notice that the segments are sliced where they meet a post, which we don’t want. To fix this, change the Segment’s Default mode to Adaptive so that each segment is subtly rescaled to create even spacing and a more optimised style.
- Near the posts, the gaps between vertical bars will appear to be smaller. To compensate, add a Compose operator after the Post node. This allows you to glue together multiple geometry pieces. Insert the spacer segment before and after each post, adjusting their positions as needed using the up and down arrow buttons.
- If segments stick out through corners, turn off the setting that tries to continue default segments around corners. Go to the Generator’s Rules tab and set the Bevel Mode to None.
Adjusting Alignment and Removing Railings Where They Meet the Wall
Now that we’ve created the basic railing, it’s time to fine-tune the alignment and make room for doors or windows by removing the railing from the wall side of the balcony.
- The railing should not sit directly on the ground; only the posts should. Adjust the Z-Alignment to Pivot for all segments so that the guardrail floats slightly above the surface.
- To make the railing appear only on 3 sides of the balcony, select the spline and change the material ID. Then, in RailClone, go to the Generator’s Limits tab and turn on Limit to Material ID. Entering an ID here allows you to control where the railing appears.
Creating the Balcony Deck
With the railing complete, let’s move on to creating the balcony deck. We’ll set up two generators; one to add the the deck, and another to add a capping piece around the edge.
- We’ll use one Generator to fill the center of the deck and another to add a capping piece along the edges.
- Clone the existing linear generator and detach the segment inputs. Import the capping geometry and wire it to the Default input. The geometry stretches incorrectly because we disabled the Bevel mode when creating the railings. Re-enable it by going to the Generator’s Corner settings and changing the mode to Reset
- Make sure the capping piece is aligned correctly by adjusting the Y-Axis alignment to Top.
- Add a 2D generator for the deck and connect the same spline to the Clipping Area input. Enable Extend XY Size to Area so that the generator automatically adjusts its size to each individual closed sub-spline. Change the Hierarchy Checking mode to None. In this mode each individual sub spline is considered a separate array. Lastly, wire the deck geometry to the Default input and we have a balcony!
- The railing sits on top of the spline so the the deck should be positioned just below the spline. Go to the Segment’s settings and change the Z-alignment option to Top. Do the same thing for the capping segment that we created earlier.
Adding Metal Supports
To ensure the balcony structure is secure, we’ll now add the main structural metal supports underneath.
- Import the three segments for the metal support structure into the RailClone graph: there’s a start piece, a default stretchable piece, and a corner segment. Once again, clone the existing linear generator and remove any inputs except the Spline.
- Connect the corner segment to the Corner input and go to the Generator's settings to enable corner beveling. Next, wire the default piece to the Default input and change the Default mode to adaptive.
- Wire the bracket segment to the Start and End inputs. You’ll notice that the end piece faces the wrong way, so use a Mirror operator to flip it on the X-axis.
- To fix gaps between the segments and plates, adjust the Padding values. Use the settings in the Segment node for the Start piece, but add a new Transform node to the End piece since it needs to be different from the start.
Finalizing the Alignment
With all components in place, we need to ensure everything is aligned correctly and positioned properly relative to the deck.
- Make sure all the segments align correctly on the Z-axis. If needed, adjust the Z alignment to Pivot or Center depending on your geometry.
- The metal supports should be below the deck. To fix this, go to the generator settings and adjust the Z Offset value until they are correctly positioned.
- Your balcony system is now complete, featuring railings, a deck, and metal supports. Because it’s parametric, you can easily create balconies of various sizes simply by modifying the original spline, you can even change the shape by adding additional vertices.
Applying the Balcony System Across a Building
Finally, let’s apply the balcony system to an entire building using 3DS Max’s array operator for quick duplication of the spline.
- To populate an entire building with balconies, I’ll use 3DS Maxs Array modifier. Of course you may already have splines in your scene and they may all be different sizes and shapes. This technique is ideally suited for those kinds of setups. But for now let’s create a large number of balconies using this spine which already has material IDs correctly assigned as we demonstrated earlier. Next, apply an Array modifier to the existing spline and increase the X-axis spacing until the balconies are correctly placed. Adjust the count to cover the building’s facade.
- For staggered balconies, go to the Transform settings, set the mode to Alternating, and adjust the Z offset. Then return to the distribution settings and increase the Z count and adjust the Z spacing as needed.
- TIP: When dealing with any value in Max it’s possible to hold Alt while adjusting the spinner controls for finer precision.
Final Adjustments and Rendering
Before wrapping up, let’s make some final adjustments and prepare the model for rendering.
- To use the materials from your source geometry, go to the RailClone object’s Style rollout and select Use Segment Materials.
- If you want a more accurate view of your final model, switch to Quick Mesh mode from the Display rollout for better performance in the viewport.
- And that’s it. Although it takes a few minutes to create, the great thing about this setup, is that as a project progresses, if the balcony size or shape needs to change you can simply edit the spline, and the system will automatically update everywhere. And don’t forget to save your style to the library so you can quickly reuse it any time.
What’s Next? In the next tutorial, we’ll show how to use ForestPack to fill these balconies with scattered plants, umbrellas, chairs, or other objects. Because they’re driven by the same set of splines, you can update the whole system all in one go. See you there!