PES’s Dynamo journey truly started about three years ago. Over time we’ve created a handful of graphs that are used throughout the company to help with tedious day to day tasks like propagating grid changes from plan to plan, creating .dwg files of sheets without titleblocks, and even some modeling tasks like placing embed plates. We’ve also had some more isolated situations like modeling all piles in a project to the installed length. We’re steadily moving forward in our journey, but I feel like we’re approaching a transition point. We need to start getting more people involved to maximize Dynamo’s use in the office.
So, for those who might have heard about Dynamo but don’t really follow what it is, we’re going to try to help without getting too deep or detailed.
Dynamo is an open source visual programming tool that can work independently or will run “on top” of Revit. It aims to be accessible to non-programmers and programmers alike. Most of our usage to date is with running Dynamo on top of Revit where you can connect elements together, define relationships and define sequences of actions to compose a useful custom script. One of the major pros, and truthfully a potential con too, is that Dynamo is anything you make it. The benefit to this tool over some other options for Revit automation is that you don’t need to know anything about coding to understand it because it is so visual. A well-built Dynamo script can be understood by a lot of engineers.
Dynamo comes with a built-in library of “nodes” or little snippets of code with useful names and generally logical inputs/outputs. These nodes are things like “select_elements” or “element.getparameter.” Combining these two things allows you to retrieve a selection of elements from a Revit file and obtain a specific parameter from them.
We then have that parameter in Dynamo where we can perform some action on it where we can adjust it as needed and then return it to the elements. We can do all this without manual intervention. While this is a very basic example, it starts to show the power of Dynamo. We can also work with geometry and large numbers of elements at once. For example, we can use Dynamo to place a family at every location where a joist intersected a wall. We can first collect walls and joists then get the underlying geometry and intersect them. This would return a list of points. We could then use those points as the location for a family insertion.
The key is that most of this can be done with a very basic/general understanding of data and programming concepts. You don’t need to know how to code. Now as tasks get more complex, having some coding knowledge can take these tools to the next level but that is a topic for another day.
In our office, most of the creation of new graphs is done by a small group of individuals. OK, maybe two of us. However, there are several others who will open the graphs in Dynamo and are comfortable changing inputs and working with the scripts that way. The remainder of the staff is far more comfortable using the scripts through Dynamo Player, which is a more hands-off way of accessing Dynamo that can work well for a few applications. The danger in this is that the more you try to develop a script that is hands-off and works in a wide variety of situations, the more complex the script becomes and the more development time it takes. One of the major benefits to Dynamo is the quickness and visual nature of it but there are other options for automation and as scripts become more complex, some of those other options should be considered. Again, that is a topic for another post and one that we’ll be excited to get to.
Stay tuned to the PES Blog for more information on both Dynamo and some of the other options regarding software.