Quicklinks
- Dynamo Documentation
- Dynamo Forum
- Wikipedia – Open Source
- Konrad Sobon’s Arch-lab
- Nathan Miller’s Proving Ground
Overview
Dynamo is an open source add-in that provides a visual programming interface to work in conjunction with Revit. This allows computational design and automation processes through a visual node based interface.
If you have ever worked with Rhino Grasshopper or the Material editor in 3DSMax, you will be familiar with the interface style. Find Dynamo through the Manage tab in Revit, and clicking Dynamo will open up a new window that holds the interface. (more on the Dynamo player later)
Main Uses
Dynamo is extremely powerful partly because it’s open source. If you aren’t familiar with open source technology do a bit of research from the wikipedia above, and off some other areas. It means that the code base and development of the program is a community effort, which leads to the development of a better software, but also on the backend there is more openness and free sharing from the community of users.
Experts
Because of this, the Dynamo forums are a huge resource for solutions. People write some code, others contribute to it, and the cycle repeats itself. This has developed into tons of experts out there in the scripting interface and how to interact with Revit… along with some really great dynamo definitions. Konrad and Nathan are linked above, but do a quick google and you will find tons of other people that are insanely good at Dynamo and coding.
Coding Language
The coding language used is Python. Ultimately you are going to get to a point where the default nodes in dynamo aren’t enough, and you can add your own custom Python code. All the experts in Dynamo are great coders and utilize code to extend the function of Dynamo.
Revit API
The reason this is possible is because Dynamo accesses the Revit API. Nodes are essentially pre-written code that does something with the Revit information… and are built in a graphic way. However, if the node doesn’t do what you want, or it hasn’t been built yet, that is where the custom Python code comes in.
- Want to know what an API is? [Here is a great short introduction video]
Dynamo Player
Once you get all your nodes connected, any custom coding completed with everything set up working how you want, something that can come in quite useful is the Dynamo Player. This opens up a window modal that essentially lets you change parameters you need, and then click ‘run’. Obviously you need to have the definition set up and cleaned and such, but it’s a great tool if constantly needing to run various scripts quickly.
No Testing
One problem is that depending on the nodes you use and what the definition is meant to do, running a script without first making sure it’s perfect can cause some problems in your Revit file, hang up and take forever, or just be frustrating. For certain definitions, we recommend getting comfortable with going into Dynamo and freezing the last node… and testing the script prior to running on your model. This ensures you know what is going on and know what to expect when it is triggered.
For other scripts, especially ones that are just gathering information, the Dynamo Player works wonders.
Dynamo On This Site
The goal of Dynamo on ArchOverFlow is going to be much different than other websites. All the other websites are already overflowing full of information with great tutorials and hacking of different definitions. Admittedly, we also aren’t expert users here and are still in the process of learning Python properly, so they will all be able to provide more useful feedback and troubleshooting.
Our goal:
Instead, we have a library of definitions we have created and found a need for in our professional work… scripts that have proven useful in a real world Architecture setting. Some of these are super simple, and some complex; but all are variations of scripts and nodes that aren’t clearly listed for others to follow anywhere else. Most posts will focus on these and we will go over the basic setup so that you can replicate on your end.