Skip to main content

Dynamo for Construction: 4D planning and site execution comparison

Hi everyone, in this post I'll try to explain a workflow to keep planning information updated within the model using Dynamo and an Excel Dashboard.

The idea

In Revit we have the possibility to create spaces/rooms (it depends if you're an Engineer or an Architect) and you can create schedule listing all the elements that are inside these enclosed areas. But what is you have an element like a duct that is running through multiple spaces? 

First option you can split this exactly on the separation line but this is time consuming and even now, you won't be able to schedule the space information. 
Second option is to split and manually apply a space share parameter: time consuming and not very useful. 
So my idea is to maintain the duct as it is and use Dynamo to calculate the list of spaces and fill the shared parameter automatically.
This is the script and, for now, I'm using the Mark parameter to fill this list of spaces but of course you will use a share parameter.
Script is very simple and I'm using a node from SteamNodes package to get surrounding element around my list for elements. Then I've a simple python script to concatenate the list of string (space names) and finally write this value into the Mark parameter. Easy!

This is the code for the custom python node for your reference.

And this is the final result...cool!
Dynamo script is not finished, there's a separate part that is related to Excel export. This is the final Dynamo workflow for the export phase and what you have in Excel after you Run the script
Revit and Dynamo part is finished and now is just a matter of Excel formulas to be able to have a nice dashboard and calculate if an element is constructed or not.

Excel Dashboard

The first input from Revit is already provided by the first phase and, in this second phase we have to link these information to planning information. 
Basically we have a list of space names with planned start and planned end and we can understand from this, if an element is:
  • Started
  • Not Started
  • Started and not finalized (running through multiple spaces)
  • Started and Finalized
If we consider out first piece route of duct this is actually starts in SP-001 and stops in SP-006; that means that installation starts on 08/01/2016 and ends on 03/01/2017.
How to catch the early installation start and the latest installation end is just a matter of VLOOKUP() in Excel.
With the same idea in Excel we can calculate if something is already started, not started, finalized or not finalized comparing the TODAY() formula with previous results.
Then why do not visualize with a nice pivot chart those information? Now we can understand that 69% of installation is already started and 50% of this is already finalized. Playing with Excel formulas we can also have a 3 weeks ahead view and so on.

Back to Revit

Now that we have all these information we can go back to Revit an fill some shared parameter based on the ID of elements. To make it easier I linked the information from the dashboard in a separate worksheet in order to read from Dynamo directly from here.
Dynamo script for this action is really simple and is basically reading from this worksheet and writing in the shared parameter; there's only one custom node in python to be able to select elements by the ID coming from excel.
And this is the code of the custom node

Nice and clean :) and after you run the script this will be the result
Now we can play with filter and colors in views and arrange the appearance of information in Revit style!



This workflow can open the way to many different solutions for construction, not only for MEP. As much information you want as much you can also use these information in other software like Navisworks, to present installation progress and understand if a new requesting for coordination will affect site as well.

Conclusion

Hope you enjoy this workflow and, do not hesitate to contact me if you have any suggestion or request.

















Comments

  1. I have a questions tho?
    In your calculations you refer to the "Start date" and "End date" folders? But you don't show what those folders contain and how its set up? How can we do the calculations, without that information?

    ReplyDelete
  2. Move over, traditional construction planning methods! Dynamo for Construction has arrived to take the industry by storm. With their 4D planning and site execution comparison tools, they're turning construction projects into works of art. No more guessing games or endless site visits.

    Dynamo's technology allows project managers to see exactly how their plans will work in the real world before any ground is broken.
    And with the ability to compare planned vs actual progress on-site, adjustments can be made quickly and efficiently without sacrificing quality or safety.

    It's like having a crystal ball for your construction project - except better, because it actually works. So if you want to get ahead of the game, say goodbye to outdated processes and hello to Dynamo for Construction.

    ReplyDelete

Post a Comment

Popular posts from this blog

Tunnel modeling with Dynamo

Introduction Last week I had a nice conversation with one of my Italian friends. The focus of the conversation was how to model a tunnel in Revit starting from an Excel list of points coming out from Civil 3D. So the answer was: Dynamo of course! First input, the section of the tunnel with his diameter; I can't share the details but lets say that we have: Theoretical excavation profile: 200 mm  Precast segment thickness: 500 mm Whit this two elements and the excel of the theoretical cent alignment, we can do everything! Revit profile family The first family we're going to create is a simple circle profile with a diameter parameter. This family will be as a mass category to be able to nest it later in an adaptive component family for the tunnel.  Just save this family...easy! Tunnel model Now we can create a new family as generic adaptive component and load the profile just created. It's important that the family is able to host rebars for future st...

Multi-pipe support configurator with Dynamo

As always everything is coming from my childhood…ops no, that's another story. As always everything starts on a white recycled paper just in front of my keyboard; a simple idea becomes immediately a sketch with Revit parameters. I tried many times different kind of plugins for automatic supports placement, but no one of these is able to create a multi-pipes supports (if I'm wrong, please let me know the name of the plugin). The idea for this script in Dynamo, is to create a support for a bounce of pipes going parallel for a while, and create a group that is possible to copy along the path. I'll not focus on the creation of the families that you need for the support but just to explain the main idea, I have 3 different pieces (steel bar, u-bolt and threaded rod) that I'll compose together to create the final support. The first challenge is to align the pipes to the same BOP (bottom of pipe) because they have to stand on the steel bar and locked with the ...

Dynamo, Revit, Excel, UI...what a wonderful day!

Introduction Today I'll show you two examples of how to use Dynamo to export existing Revit schedules and how to compose a custom schedule on the fly, to be exported to Excel. Both of them with a very nice graphical user interface thanks to Data-Shapes (https://data-shapes.net/) package. Export Schedules Let's start from the easier. The idea behind this script is to export a list of existing schedules to an Excel file, creating for each schedule a separate tab. To be able to complete this script you'll need two packages: Data-Shapes for the graphical interfaces BimorphNodes to extract schedules data The script is very easy and you have to focus only on how to create an interface Then you can use your input to feed the next nodes. Finished! So just push the run button (or use Dynamo Player is you are in Revit 2017.1 or 2017.2) and enjoy the interface. Export parameters to Excel In the second script I'll focus on something more int...