Glue API Versioning and Deprecated Calls
AEC Hackathon 2.0 New York and Girls

Dynamo and Computational BIM - Part 2: Practical Uses

By Sheryl Yang

In my last post I briefly introduced the basics of Dynamo and visual programming, and shared some video resources. In this post I will conclude the discussion by sharing some my thoughts about the practical uses of Dynamo:

1. Create complex geometries

By defining the parameters and rules, you can quickly generate complex shapes or surfaces in Dynamo. I’m not a designer, and I’m also new to Dynamo, but it only takes me about 10 minutes to learn and build a twisted tower as shown in the figure.

The tutorial videos for this example can be found at:


 2. Automate repetitive modelling tasks

Another practical use which I think will be extremely helpful to improve the design process efficiency is to automate time-consuming repetitive manual tasks. For example, if you are a structural engineer who needs to model tens or even hundreds of columns in different locations of a building project, and these columns are in different types, and probably have different lengths and elevations. Instead of repeating the process hundreds of times manually by selecting a Revit column family type, placing it in the right location, adjusting its parameters, you can define a Dynamo script to automate the process. These two figures shows an example that a set of columns are generated automatically in Revit using Dynamo extension. The columns are in different types based on their distances to a specified point location. Dynamo does all the calculations of distances, selection of the right family type, and placing the column instance.

The tutorial videos for this example can be found at:

  Column dynamo

Column revit

Revit component parameters can also be accessed in Dynamo to enable creating adaptive components. Marcello Sgambelluri from John A. Martin & Associates, Inc. gave a great example at his talk during Autodesk University 2014 (the video link is that he used Dynamo to automatically adjust column locations based on the location change of a wall done by architects. In this case, whenever the architects change their mind about the wall location, the columns location will be updated automatically, which can save lots of time compared with manually selecting each column and typing in the new location parameter in the component property window in Revit. I can image there are tons of other cases that Dynamo can help to significantly improve modelling efficiency by automating repetitive tasks.

 3. Extract data from BIM

Another use of Dynamo I’m very excited about is to extract data from BIM, in this particular example, to get parameter values of Revit components automatically. The fundamental difference between BIM and pure 3D model is that a BIM is an information-rich model – the “I” in BIM is what we care. A BIM model contains intelligent building components defined by parameters and these components know their own properties and relationships with other components. When a Revit model is done, it is not just a model, it becomes a data repository which describes all the design parameters and intentions of the project. However it is challenging to automatically extract data from Revit model and feed the data into other applications. Traditionally this can be done with Revit API, but it requires some level of programming skills and knowledge to do it. Dynamo can help to streamline this process without the requirements for programming skills. Nathan Miller from CASE presented at Autodesk University 2014 about how they do BIM data-mining with Revit and Dynamo. He gave a use case where they used Dynamo to pull room parameters from a hospital project model and write the data to an Excel sheet to support further analysis of room areas, ratios, requirements, etc. The extracted data can also be connected with various database. BIM will only get its full extent of potential when we start to make sense of the intelligent data contained in it and I’m very excited about this.

  Dynamo and excel

(Figure source: Nathan Miller’s talk at Autodesk University 2014