Framing a Complex Roof Structure Using Dynamo
These days, architecture is getting bolder and more wavy. As a result many structural engineering firms are having to model in Revit against this bold architecture. To say the least, it can be quite challenging and time intensive to model curved structural framing members that correctly follow complex forms. It can be even more frustrating, when these members have been modeled, and then the architect further tweaks the design resulting in a massive rework on the part of the modeler. For this reason, during a recent advanced training class for a world-renowned structural engineering firm, I thought up a new workflow using Dynamo which could allow designers to respond to frequent architectural changes and reduce tedious rework where possible. I knew I had seen Marcello Sgambelluri do something similar using grid lines, but that doesn’t seem to accommodate the wide variation in structural framing strategies that can be used to rationalize a complex structure. So I came up with a revised workflow:
- It is assumed that the architect provides a mass form and that the form is in design flux (i.e. it is changing constantly). Pre-requisite: Revit 2016-2018 with Dynamo 1.3.1 installed.
Note that this definition does not use any external packages, and can actually be recreated in older versions of Dynamo (just be sure to use Lacing: cross-product for the intersections).
- The structural modeler will simply use a flat 2D representation using model lines of how the structural members frame the complex structure. These lines can be hidden and placed in a separate workset for visibility control.
- We then use a Dynamo script to grab these model lines and project them onto the mass surface to create the actual structural framing that will follow the surface. Note that the provided script can be refined further so that different model lines are modeled with different member sizes (i.e. girders vs secondary members).
- If the surface changes, then the Dynamo script is used again, by first pointing to the updated surface. Or similarly, if framing needs to be revised, the model lines can be changed/added and re-selected to update the structural framing. It is a useful workflow as both surface and model lines can be modified and the script re-run.
The entire process is shown in the following video and demonstrates the ease and flexibility of the workflow. One thing that is noted is that the Cross-Section Rotation seems to be reset to strange values depending on the surface you use. Similarly, some members will cut-back excessively and that can be fixed by right clicking on the end blue node and selecting to Disallow Join. The sample files used in the video are included at the end of this post for review.
Sample files for download here (.zip) – Contains the files used in the video (Using Revit 2017 and Dynamo 1.3.1. Should work with Revit 2016-2018)