Improving Efficiency: Dynamo for Existing Buildings

Share this Article


The efficiency of a project team is sometimes slowed by the repetitive and tedious manual operations of modeling, data entry, or quantifying. Using Dynamo scripts allows us to save time and minimize human error, and provides the tools for quality controls. This article will give an idea of when and where Dynamo can be used to manage data and automate object placement for existing building projects. This approach is not as obvious because BIM in general, and Revit in particular, are originally oriented towards new construction. We will provide an example of exploration, application, and adaptation of workflows using the Revit model and Dynamo procedures for automation. The result is a data-rich and parametric model, hosted on BIM 360, ready for the construction phase of the project.

Olga Kerkhanidi discusses the benefits of using Dynamo to model existing structures.

Project Description

The landmark Pavilion Roger-Gaudry at the University of Montreal was the first building erected by the university on Mount Royal. It was finished within a span of almost 15 years, between 1928 and 1943 with a break following the Great Depression. The building is composed of three volumes: a 22-storey central tower, flanked symmetrically by two projecting 6-storey wings. The concept conforms to the principles of the architect Ernest Cormier with the presence of verticals, symmetry, and clean facades without much in terms of ornamentation. The building comprises 22 wings and 3,500 windows in total. The current renovation project encompasses window replacement, along with adjacent masonry works. It involves 17 wings, which approximates 2,100 windows on 49 facades. 

Historic photo
Aerial view of the Pavilion Roger-Gaudry at the University of Montreal, 1948. Photo credit: Division de la gestion de documents et des archives de l'Université de Montréal.

The use of BIM improves possibilities to be more effective and productive and bring into reality complex projects, like this one, requiring the coordination of multiple parties, allowing follow-up of construction and real-time site management. The preparation of the basis for the project, the model, can be quite challenging and not that straightforward, despite the building’s regular shapes.

Dynamo has been essential to the process of renovating the landmark Pavilion Roger-Gaudry at the University of Montreal, as Olga Kerkhanidi explains.

The challenges for this project can be reasoned not only by the size of the building itself, but also by the necessity to present several project scenarios and their respective budget assessments to the client during the early stages of the project. The number of repetitive tasks for placement/quantifying the objects, as well as the amount of data entry for all those elements, exclude the “manual” approach.

This article intends to give a general overview of possibilities for automating some of these tasks using Dynamo procedures. The description of model organization methods behind those scripts will give you an idea of its application for your own projects. The list of scripts mentioned in this article is definitely not final.

Related: Digitizing History: Preserving and Recreating Heritage Sites with Digital Tools


Modeling using Revit is not only about 3D representation but mostly about the “I” in BIM (“ information”), the data behind the model that actually allows us to be efficient and productive in a new way. At this stage, the parties involved should have a clear understanding of what exactly should be delivered to the end user/client or what information would be needed for estimation and budgeting. This determines not only the LOD of the model, but also the principles of modeling. Originally only the exterior walls were modeled, but the development of the project soon required the modeling of the interiors as well.


The model was created using an image-based process that includes point clouds and orthophotos. The regular shape of the building allowed some mirroring and copying of object groups. However, the creation of BIM models for an existing building is always a time-consuming process that requires a lot of effort.

Orthophoto (left) and the model (right). Photo credit: iScan expertise laser 3D.
Orthophoto (left) and the model (right). Photo credit: iScan expertise laser 3D.

Several precautions were taken at this stage, including:

  • Worksets for each wing, plus divisions per masonry/openings/roof to facilitate the management of the project in general and views in particular
  • Windows were not placed in exterior brick walls, but rather in “secondary” backwalls to have some independence on scope of work (“masonry versus windows”), but also to allow the facade distinction
  • Panels in between windows with specialty masonry elements modeled as curtain walls to have an additional level of information about the quantity of elements
  • Several shared parameters added for walls, windows, etc., sometimes post-factum, based on day-to-day necessity of some data


Modeling was based on CAD drawings, received from the client. Even with a highly structured layer system used by the client, there were still a lot of irregularities within the drawings that sometimes caused difficulties to automate its use. The base drawings in CAD still should be standardized to some extent and cleaned prior to their use. It helps to do this preparatory work to get acquainted with their particularities and fix common discrepancies and use Dynamo from there. The uncertainties/faults/irregularities are likely to still be present.

With the number of storeys ranging from 6 to 10 within 22 wings of the building, the number of repetitive elements was immense, therefore prompting Dynamo use extensively at this stage of the modeling; for example, doors and rooms placement (based on CAD) and doors numbering (depending on room number).

Sometimes script refining, and an attempt to predict all existing situations (in this case in 20-some CAD drawings), takes too much time. For effectiveness, it was decided to do some adjustments manually in the model after object placement. The scripts allowed us to place about 80-90% of objects automatically and even with some manual cleaning up, this was still a real time-saving operation.

Two methods for placing the elements from original CAD drawings were used: direct and indirect.

Direct Method

No additional preparations were needed. The Dynamo script reads the inserted CAD drawing of the floor plan and picks up blocks with room numbers from the certain layer from this CAD, checks its position, and places the room, using a basic Dynamo node. The room number follows the text from the block.

Indirect Method

Sometimes additional clean-up of original CAD drawings is inevitable, because they are not that clean and regular, and have several blocks for doors, for example, on several layers. To minimize the cleaning up, the data needed for object placement (in this case, doors) were first extracted from CAD, using the AutoCAD Data Extraction Tool. Doors were placed by Dynamo script using an Excel file.

Door data extracted using AutoCAD Data Extraction Tool.
Door data extracted using AutoCAD Data Extraction Tool.


Dynamo script for doors placement.
Dynamo script for door placement.


The model after running the script (left) and after adjustments (right).
The model after running the script (left) and after adjustments (right).

Data Management

Having the main model of exterior walls published on BIM 360, the interior was linked to provide the full picture and all the data necessary for the actual preparation of construction drawings. At this stage, several scenarios for the client were to be presented. To simplify zone distinction, quantity management, and the future follow-up of construction phase of the project, several operations were done using Dynamo, such as numbering of elements, adding parameters like in/out of the contract, assigning special types of walls, etc.

Adding parameters is quite a basic operation, but Dynamo simplifies it significantly, especially when it should be done after actual modeling; for example, to filter a group of walls by several characteristics and add the value of a parameter only for those walls.

Parameter value by script.
Parameter value by script.

Window Numbering

Window numbering was an absolutely necessary operation for this project, from presenting the scenarios to following up the construction work. With the scale of this project, doing this operation manually would have been absurd. Dynamo allows you to minimize the time for this operation and can also exclude common human error.

Dynamo script fragment.
Dynamo script fragment.


Quantification is one of the most time-consuming operations, and it requires keeping the information traceable and readable in terms of filtering/sorting. This is exactly what Dynamo is perfect for. How the building was actually modeled becomes crucial at this stage. The result, in the form of an Excel table, can be easily shared between parties or imported into other software used.

The budget estimation for this project was complex not only because of its scale, but also because of the necessity to present several possible scenarios to the client: filtering data from the whole building down to several wings or by sector, East or West, by storey, as some of them were supposed to be a part of other projects for interior renovation, etc. Revit scheduling wasn't used because of the level of detail needed.

Several mechanisms were developed to get all the information, such as multiple worksets, as mentioned above, parameters, “zoning” volumes, and mathematical calculations directly within scripts. All these preparations made it possible to filter and organize the output information in the form of Excel tables, easily integrated with the project budget documentation.

View with added “zoning” volumes.
View with added “zoning” volumes.


There are about 25 types of windows within the scope of this project and the information about them is highly detailed.

Geometry from the script.
Geometry from the script.

The script allowed us to obtain—within a few minutes—all the information about all the windows within the scope of the project (by parameter), per wing (by workset), façade (by “secondary” backwall parameter), identification number (by parameter), storey (by mathematical calculations), inside/outside the zone of planned interior projects (by “zoning” volume), with indicating of type and opening dimensions (width x height), and the ID of an object.

Specialty Masonry Elements

With the development of the project, it became necessary to quantify the masonry that is related to the window replacement.

Specialty masonry elements.
Specialty masonry elements.

The panels with specialty masonry elements were modeled as curtain walls, that apart from other data also provide information about the quantity of these wavy blocks per panel for purposes of estimation and pre-order. So, the information was organized per in/out of contract (by parameter), wing (by workset), storey (by mathematical calculations), inside/outside the zone of planned interior projects (by “zoning” volume), with a type of an element, dimensions (width x height of the panel) and the quantity of elements per panel, as well as IDs.

Brick Walls

The walls of the building presented one of the most challenging tasks within the process of quantification for this project. For example, separation per storey can be predefined on the modeling stage; however, in this case, because of very little technical information about the existing condition, the idea was abandoned. This may have saved time at the initial stages of the project, but it became a problem later. Dynamo helped us to resolve these issues mathematically, without actual correction of the model.

The operation of wall quantifying, which seems simple enough using Revit scheduling, is not obvious, considering that Revit and Dynamo each have their own specific method to calculate quantities. For walls, the Dynamo scripts should be adjusted depending on how the walls are placed, the type of connections between them, the presence of openings, etc. This information is automatically “absorbed” by Revit schedules. These complications, however, are compensated by the level of detail of the information that can be obtained using Dynamo versus standard Revit schedules.

This script illustrates, that apart from being a time-saver in the case of repetitive tasks, Dynamo procedures can also help you alleviate some modeling decisions taken at the early stages of a project.

Script for walls.
Script for walls.

The use of Dynamo allowed us to obtain an Excel file with information about all brick walls per in/out of contract (parameter), wing (workset), storey (math), inside/outside the zone of planned interior projects (volume) with type of the wall, its dimensions (length and area) and IDs. All those Excel files, obtained using Dynamo procedures, were used for estimation/budgeting purposes, providing several scenarios for the project planning.

Olga Kerkhanidi shares her thoughts about the importance of using digital tools to help preserve historical buildings.


For this ongoing project, having a model that contains all this data simplifies what will come next—the construction phase—and allows us to use BIM 360 for the site supervision on this project over the course of the next few years. Planning the modeling phase of a project should start before creating a new project in Revit. At the same time, the model can be adjusted and adapted in the process. There is no magic universal solution for all kinds of tasks and challenges in our industry, but this article was intended to give an example of workflows and possible use of Dynamo procedures for large-scale, complex projects involving existing buildings.

Olga Kerkhanidi is a BIM modeler and drafter, with particular interest in historical buildings and masonry projects. Her research focuses on the capabilities of Dynamo and BIM software for projects related to heritage buildings. Her engineering background helps a lot, when it comes to interdisciplinary analysis and developing BIM workflows.