Construction Dynam(o)ite: Explode Productivity with Dynamo

Highrise construction

The step from detailed design to construction in a BIM-enabled workflow is a challenge for many design offices and construction companies. In many situations, designs need to be changed after contractors have reviewed the models on constructability. In this article, you will discover how you can involve computational design in this process. You will learn how to use the Dynamo extension to automate all kinds of custom tasks in Revit software to make your design constructible. You will get inspired by the wide range of possibilities the Dynamo extension offers to create your own model check and to automate the creation of construction elements. 

Computational Design

What is computational design?

The last few years we all experienced the transition from traditional Computer Aided Design (CAD) to Building Information Modelling (BIM). As our projects are getting more complex, and need more design solutions, the current BIM focused workflow is challenged again. The answer on that is Computational Design. This new design approach represents a profound shift in design thinking and methods. Representation is being replaced by simulation, and the crafting of objects is moving towards the generation of integrated systems through designer-authored computational processes.

While there is a particular history of such an approach in the building industry, its relative newness requires the continued progression of new modes of design thinking for the designers and engineers of the 21st century.

Literally, “computational design” means “giving shape with the means of the power of a computer and scripting.”

Autodesk Dynamo

Autodesk gives an answer to this new challenge in our design world. This solution is called Autodesk Dynamo (open source) and Autodesk Dynamo Studio (Subscription). Dynamo lets designers and engineers create visual logic to explore parametric designs and automate tasks. It helps you to solve challenges faster by designing workflows that drive the geometry and behavior of design models. With Dynamo you will extend your designs into interoperable workflows for documentation, fabrication, coordination, simulation, and analysis.

Genetic Optimization

Genetic Optimization is an optimization technique that makes use of Genetic Algorithms (GA). GAs usually operate on solutions that are encoded as genotypic representations (called chromosomes) from their original phenotypic representations (i.e. actual data values). GAs start with a set of initial solutions (population) that are randomly generated in the search space. For each solution in the current population, objective functions defining the optimization problem are evaluated and a fitness value is assigned to reflect its (relative) merit standing in the population. Based on the fitness values, a GA performs a selection operation that reproduces a set of solutions with higher fitness values from the previous generation to fill a mating pool.

A crossover operation is then pursued with which two parent solutions in the mating pool are randomly selected and interchange, with a prescribed crossover probability, their respective string components at randomly selected bit locations referred to as cross sites. The resulting new solutions are called children or offspring. This step is meant to hopefully combine better attributes from the parent solutions so that child solutions with improved merits could be created.

The next operation in GA is mutation that changes the genotype value at one or more randomly selected bit locations in a child solution with a prescribed mutation probability. This operation serves to possibly recover useful information that may never be accessible through selection and crossover operations and therefore encourages search into a completely new solution space. After these three basic operations, a new generation is created. The search process continues until prescribed stopping criteria are met, for example, when the maximum generation number is reached or improvement of the generation-wise optimized solutions is negligible.

Unlike single-objective problems where the objective function itself may be used as the fitness measure (possibly further with scaling and constraint-handling treatment), a multi-objective optimization algorithm needs a single fitness measure that reflects the overall merit of multiple objectives.

Genetic Optimization Workflow

A typical workflow in a genetic optimization process is represented in the flowchart below:

Figure 1. Genetic optimization workflow. 


Getting Started

For better understanding of this handout, a basic knowledge of Dynamo and Revit is advised.

A comprehensive list of learning resources is listed at the end of this handout.

Figure 2. Dynamo graphical user interface. 


Live Design Clash Verification

In this example you will learn how to stream clash results from Navisworks live into your Revit design, and see how design changes affect the clash tests with Dynamo and the DynaWorks package.


Dynamo provides a direct access to the Revit API and offers possibilities for advanced geometry creation, data manipulation and automation of Revit tasks. Dynamo comes with a set of default nodes, which can be extended by the downloadable packages provided by the Dynamo community. One of the packages especially interesting for the construction industry is the DynaWorks package by Adam Sheather, which provides access to the Navisworks API thus connecting Revit and Navisworks in a completely new way.


Please note that there are different versions of DynaWorks for Navisworks 2015 / 2016 / 2017. Once you have installed DynaWorks, you can find following sections in your Dynamo Library:


As the sections above are already showing, there are four main areas where DynaWorks will help you:

ClashDetection: with these functions you can bring back your clashes from Navisworks to Revit, e.g. to color the elements which are clashing or to append comments from the Navisworks clash report to the appropriate Revit element.

FileSettings: provides nodes for opening, appending and saving Navisworks files through Dynamo. This can be very useful with big projects or with updates, as it can help you automatize your work.

Objects: offers access to Navisworks attributes, which can then by synced with the Revit model

Views: can retrieve saved views from Navisworks and bring them back to Revit.

DynaWorks will retrieve the results of your clash tests set up in Navisworks including all information like status, comments etc. This information can then be used to place “ClashIndicators” with these parameters in Revit and to make clash views around the point.


The general workflow that is used in this example is following the next steps:

  1. Append the Revit models to a new Navisworks project and set up the Clash Tests
  2. Modify/Add design in the Revit model(s).
  3. Run the Dynamo script. This will change the “Clash” property of the analyzed elements, create separate sectioned 3D views showing each clash and place an indicator (by means of a 3D arrow with attributes) in the Revit model at the clash points.
  4. Make new changes and run the script again. This will remove the clash views and indicators of resolved or approved clashes and generate new views and indicators for the new clashes.


Figure 3. Result in Revit before and after clash review. 


Before you continue with this chapter, make sure the next two packages are installed in Dynamo (read more here).

1) DynaWorks17 – used for streaming the clash results from Navisworks to Dynamo.

2) Steamnodes 1.0.0 – used for the view creation in Revit.



The datasets for each product that are used for this script are listed below:


Set Up the Navisworks Model

The coordination model needs to be set up in Navisworks Manage by following the next steps.

1) Create a new project in Navisworks Manage 2017.

2) Append the Structural Model.rvt and MEP Model.rvt as Revit file types to the project.


3) Set up the appropriate clash detection tests in the Clash Detective panel


4) Save the model to “Clash Detection.nwf” in the same folder as the Dynamo script.

Set Up the Revit Model

To ensure compatibility with the Dynamo script some things should be set up in the Revit model before running the script.

1) Create a project parameter called “Clash” as a Yes/No parameter to hold the results from the Dynamo “clash stream” to Revit.


This will add this parameter to all indicated categories.


2) Create View Filters, based on the “Clash” parameter to visualize the clashing elements based on the value of the parameter. This view filter will be used in View Templates.



3) Create a View Template, which holds the settings for the visualization of the View Filter.



4) Additionally some Schedules are created to show the created Clash Indicators and to give an overview of the elements that are Clashing. The sheets are updated automatically a change is done in the properties of the elements.


5) Optionally you can link the MEP.rvt model as a reference in the Structure.rvt model. But this is not necessary to make it working, as the MEP model gets coordinated through the coordination model in Navisworks.



Set Up the Dynamo Script

The workflow for reading the clashes in Dynamo and return feedback to Revit is explained in the flowchart on the figure below.

Figure 4. Live design clash verification flowchart. 

The script consists of the 6 big parts, which are translating the flowchart of Figure 4 in the graph below.


1) Input

User input such as reference to the Navisworks file, Revit elements to analyze, setting up family types.

2) Initialization of Models

Reading the information from the Revit and Navisworks model and setting the base for the clash test run.

3) Navisworks Clash Analysis and Results

Part where the clash test is run and all relevant information is read into Dynamo.

4) Set Clashed Elements in Revit

Change the “Clash” parameter of the analyzed Revit elements to visualize results

5) Clash Indicators in Revit

Create physical objects in the Revit model at the clash point.

6) Clash Views in Revit

Create views in Revit around the clash using a Section Box.

Each of them is explained in the topics below.

Working as a technical sales specialist AEC for the Northern European region at Autodesk, Dieter Vermeulen is specialized in the products of the structural solutions portfolio. Within that domain he supports the channel partners and customers with workflow solutions, especially, but not limited to, design and engineering. With Revit, Robot Structural Analysis, and Dynamo as his sidekicks, he is offering BIM workflow solutions covering the building process from design over analysis to fabrication for steel and concrete constructions. He has over 15 years of experience in the structural engineering business, starting his career in 2000 at Jacobs Engineering in Belgium.

Want more? Download the full class handout to read on.

Share Article