Construction Simulation in 9 Minutes

Construction Simulation in 9 Minutes

***UPDATE: We’ve developed an app based on this proof-of-concept (POC), check it out here … !

Imagine this, you could be a working adult and your boss just told you to complete a construction sequence animation within a few days (Sleep sacrificed). Or you could be a student where your educator gives you an assignment which you have no clue about (Totally relatable).

Unbeknown to many, the underlying tasks behind construction animation is that it requires a lot of manual work, and too much time. And by the end of it, you will probably be drained from the dull drudgery of repetitive data entry.

Here’s the video to demonstrate the entire process. Do note that the video is being played in 2x speed and you can probably playback speed by half (Btw, if you’re not into electronic music, you might wanna mute it).

Essentially, there are 5 critical steps to get a working construction sequence animation using unique ID Tags.

  • Step 1: Create Project Parameters in Revit.
  • Step 2: Run a DesignScript through Dynamo and give sequential ID tags to the building elements. Step 3: Export the tags in CSV based on the sequence that you want (Bottom-up or Top-down construction)
  • Step 4: Import your project model into Naviswork Manage.
  • Step 5: Apply a rule-based definitions to your project model. Then run and VOILA!

Step 1

ID tagging will be done in Revit. Henceforth, project parameter can be created. For this case, the parameter name given is “Simulation”.

Step 2

Building Model Elements are simplified into points based on their centroid. Points are then sorted by the scripting algorithm based on their coordinates, in the order of Z-X-Y.

The sorted points will be given a unique sequential ID tag based on their coordinates. The rules in the sorting algorithm is to sort the points by height (Z-coordinates), the closest Z-coordinates from the origin will be the start of the running number sequence.

In cases where the points have the same Z-coordinates, the number sequence will be given based on the points distance away from the origin. For instance, L2-Beam-01 is given the running sequence number of 01 due to it being the closest to the origin based on XY-coordinates.

Step 3

Once the ID tags have been populated across the project model, we can export the information out through Dynamo. But why Dynamo? The reason is simple, we will need to export the ID tags in a list that correspond to a logical bottom-up construction sequence.

It will be possible to nest the time information to the building elements early. However, it requires abundance of literature, experience, and knowledge to truly come out with a database of how long each building element are constructed.

At this juncture, you could either do it in CSV or in Microsoft Project. I would recommend the latter as you will be able to use MP to come out with the project schedule. Either way, both spreadsheet tools work just fine.

Just to illustrate, what was used in this scenario was hard-coded to 1 day per element. This could be changed and scripted according to rules defined by the operator, e.g. elements categorised as walls requires 3 days each, and 5 days for each element categorised as a floor.

Step 4

This step is pretty straightforward, export you project model from Revit to Navisworks Manage. The software version that was used in this exercise was in 2017. The parameter (Simulation) that contains the ID tag would have been carried across when you export your model into Naviswork.

Step 5

If you’re familiar with Naviswork interface, you should probably know that spread sheets containing information can be imported into the platform. As you import the CSV/MP into Naviswork, do note the following field name should be in sync with your spreadsheet.

  • Task Name: Column A
  • Task Type: Column B
  • Synchronisation ID: Column A
  • Planned Start Date: Column C
  • Planned End Date: Column D

And that’s it! Your construction simulation in 9 minutes !

If you wish to replicate the above results, you can download the files right here! Enjoy !


The adoption of construction simulation during project delivery continues to rise. However, this additional scope could be valued differently to respective stakeholders. A good simulation brings valuable logistics and costs insights, yet requires additional time and cost factored to model the construction simulation.

And, lets not forget about the skilled specialists required to build a good 4D or 5D model. An individual could either be an expert in construction management OR a skilled BIM operator capable of modelling such a simulation, rarely both.

The above were motivations of my Final Year Project, to bridge such gaps through computational algorithms. Obviously, there are areas which could be improved due to my lacking experience on the site. And I hope to invite experienced construction professionals who wants to make quick and quality construction sequences a reality to collaborate and refine the algorithm. If you’re one of them, do drop a comment or a DM ! Else, I hope this post have benefited you in one way or another 🙂

This Post Has 16 Comments

  1. Hunter

    Hey JunKai, I’m very interested in the work you have done here! Do you have time to talk about this and possibly share your python and dynamo script?

    1. Han

      Hi Hunter,

      We’d love to. Have dropped you an email!

      The files can be downloaded from an embedded url above !


  2. Kor


    I would really like to find out more about this, but it seems that the youtube link is no longer available. Could you share me the video along with the research project please?

    1. Han

      Hi Kor,

      The Youtube link should still be available.

      The files can be downloaded above too!

      If you’d like to collaborate or discuss on refinement, do share your objectives or idea with me!
      You can drop me an email at


  3. Mehdi Baccouche

    Really interesting workflow !!! thank you for the share !!

    1. Han

      Glad you enjoyed it Mehdi! 🙂

  4. Arthur

    Hi niece job, which are the packages that you use, i want to use your workflow for my lean construction research

  5. Arthur

    Hi, nice job, it will help me a lot in my lean construction study, can you say witch packages did you use ?

    1. Han

      Hi Arthur,

      No packages were used, it’s coded in Python.


      1. Arthur

        Really ?
        I tried to work at the step 3 but i dont have the node SimAlphaNum

  6. Yafiu Mohamed

    Hi Han, I was wondering if there is any alternative way to do the sequential ID tagging using Dynamo’s built in nodes

    1. Han

      Hi Yafiu,

      You definitely can do so for simple cases, youre probably looking for the Sort by Key node, using coordinates as keys.
      However, your Dynamo graph will definitely get too messy and way out of hand.

      As for big models, it probably wont work due to geometry and coordinate errors. We are currently developing an app to fix such errors and a simple UI for users to interact with.
      Do subscribe and/ or DM me at,, if you’re interested.


  7. Dai

    I find it really interesting and it can help to optimize the workflow, can you share the python script for reference.

    Thank you so much.

Leave a Reply