Building with pool
Custom Computational Workflows for BIM Design Implementation
Building with pool

Zaha Hadid Architects are known for their signature fluid architecture and computational design. The transformation of these projects into Revit BIM models represents a special challenge and requires custom workflows. During the last years, we have created BIM models for a number of iconic global projects and have used a variety of efficient and innovative methods that could enhance and inspire your work as well.

This article explores practical examples that deal with the efficient cross-application transfer of geometry and metadata using custom software, visual scripting, and the cloud. We will show how to utilize the different types of Revit families to generate parametric, rule-based geometry and free-form elements.

How can visual scripting in Dynamo enhance our computational design and what could an efficient façade workflow utilizing computational design, intelligent BIM elements, and metadata analysis look like? What challenges did we face and how did our methods evolve?

Introduction: Aims

During the course of an architectural project, from concept design to documentation and implementation, a lot of different software is used. This example depends on the type of project, the architect’s scope, requirements and deliverables, and even the skills and preferences of the individual team members.

Additionally, the design will change regularly, either due to testing of various options, to optimize and value engineer the initial design or to implement coordination changes and details in later phases.

To translate a design model into a proper BIM model and to coordinate both is a particular challenge. The design team should be enabled to contribute to the BIM model in a very direct and fluent way to save time and prevent issues.

Our main aims are:

1) Effective cross-application workflows from design to BIM
• Be able to use content created in third-party software
• Prevent duplicated work

2) Parametrize and automate as much as possible
• Enable and accelerate creation of design iterations and implementation of changes
• Save time spent on repetitive tasks

To facilitate these aims, we use custom:
• BIM elements
• Visual scripts / scripts / macros
• Software / plugins

Customization Options

Every software provides a set of general tools that can be used to create a BIM model. However, this might not be enough for every office, certain projects, workflows or tasks that require special or custom solutions. Fortunately, most software provides various possibilities to customize and extend its base functionality; for example, a visual scripting environment, macros, or application programming interface (API).

Customization options for Revit + Dynamo (sorted by difficulty):


Revit customization options


Dynamo customization options


The Autodesk Forge cloud platform can be used for design automation as well. It currently operates on AutoCAD / DWG files but in 2019 Revit BIM models will be supported and can be automated, too.

Project I


• Parametrization and automation of the design process
• Effective use of free-form geometry in BIM

Native Elements

Revit provides a number of native elements that can be used for the BIM model easily and out-of-the-box:

Native elements

For some projects, the manual drawing or conversion process might not be efficient enough to create a BIM model due to scale of building, number of elements, or design in general. An automated process could be a much better or only solution, especially when the building elements are already available in some format or software and the design changes regularly and in quick succession; for example, the following apartment buildings:

Apartment buildings

Grasshopper script

A comprehensive Grasshopper script already existed and was used for generating the detailed Rhino model. Hence, the most efficient way for creating the BIM model was to re-use this information and convert it into a format that can be transferred easily.

Only simple geometries like polylines (floor slab) or lines (wall) are needed to store the geometric information. Additional metadata is added to store element types, additional parameters, and the information required by Revit.

3D model

3D output


In our office, various applications (Maya, Grasshopper, Rhino, Catia) are used in the design process. Those different models are all collated in a Rhino Design Model which also acts as base for generating the Revit BIM + Documentation Model.

ZHA BIM was developed to efficiently translate geometry and metadata between the design and BIM model and is comprised of two C# plugins for Rhino (to attach metadata to geometry) + Revit (to automate the creation of BIM elements).  

Diagram and text

Process diagram

The ZHA BIM plugin takes the geometry and metadata generated by Grasshopper and simulates the work of a user in a sequential order and predefined steps so all BIM elements can be created and hosted properly.

The automated process takes about 15 minutes for the below example and afterwards a proper Revit model and drawings have been generated. Only some custom situations that were not included in the Grasshopper script are left to be adjusted.

Native elements Revit 3D

Native elements Revit 2D

The following video shows how the Revit plugin simulates the work of a user in a specific sequence required for proper hosting of elements and based on the information read from the Rhino file that was generated by the Grasshopper script (above):


Free-Form Elements

Standard Revit building elements do not support free-form geometry. This kind of element needs to be loaded into generic model families and processed afterwards to properly enable most of the existing Revit features. The buildings contained a lot of sculpted façades, roofs, and balustrades. Hence an efficient workflow was required to create the BIM model:

Free-form elements

Translating free-form elements into Revit families is a rather work-intensive task that requires up to a dozen successive steps a user would need to undertake for each element, e.g. creating and placing the families, dealing with SAT files, setting materials and parameters, etc.

A task like this gets even more difficult when hundreds or thousands of elements (e.g., façade panels) need to be created or transferred. All required steps to create free-form elements in Revit can rather easily be programmed into a C# Revit add-in like ZHA BIM or Dynamo visual script to automate and accelerate this repetitive and tedious task.


Free-form elements Revit 3D

The following video shows the used process. In Rhino the required and custom parameters are set, attached to the geometry, and saved. Then the Revit plugin is used to simulate the different steps a user would need to undertake for each element and transfers them into proper Revit families.


Eckart Schwerdtfeger is an architect with 12 years of experience in all project phases and in implementing large-scale, high-profile international projects in Europe, Russia, the Middle East, and China. During his time at Behnisch Architects, Coop Himmelb(l)au, and LAVA he parametrically designed, optimized, and implemented several remarkable facades. His main fields of work were computational design, BIM management, and programming. Currently, Eckart is BIM associate at Zaha Hadid Architects and is responsible for managing the office’s BIM team. 

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

Share Article