Dynamo for General Contractors


Coming from a design background I am aware of the powers of this program AND I LOVE IT! The reason I’m here is to ask the question if Dynamo can pull data from the Revit model and we can create a .dyn file that we can refer back to at a later point.


We spent a lot of time splitting walls and adding custom parameters in a model that was based off the Architectural model from about a month ago to simulate construction sequencing in our 4D navis model. Since that initial effort, the schedule has changed as well a the model (locations of doors, room size, production zones, etc.)


The question I am asking is there a way to pull the location (nodes “where the geometry is split”, as well as our custom shared parameters) from the Revit model and get them into Dynamo, so when we get the updated model I can push the wall split (nodes and shared parameters) into the latest model? If so this will be a game changer in the AEC industry. Currently we just link in their model and manually align all the updated designs to their last post. A bit of a time killer.

Thanks in advance any help would be appreciated!

Hi Bradley

Splitting objects

I think the splitting of objects might be technically possible, but it would be exceedingly complicated as you would need to keep track of large numbers of objects and the postion/extent where they are split. I am guessing you are splitting up objects such as floors & lift cores into individual concrete pours. This is one of the weaknesses of Navisworks for 4D- i.e you can’t split objects to schedule separately. With Navisworks, the only realistic option is to get the designer to model it as it will be built. Synchro can certainly split objects & I believe that this is retained when the model is refreshed, so might be worth a look.


Object Parameters This is probably a little easier i.e you could extract the parameters from the current model, say into an Excel file or database, then import them back in to the new model version. but it is probably fairly messy. It could be easier to use the datatools in Navisworks to append custom properties to objects, say from an external database. i.e the data lives outside of the model, but is linked in using object ID or some other identifier. With both of these approaches, if door locations etc have changed, it is highly likely the original door was deleted and a new one created- so the objectID would have changed, & you might need to match them up using the door mark or number.



I forgot to say- if you are splitting floors, there are some custom nodes to do this (based on model lines, grids etc)

I think that Andrew raised some valid points. I would just second his thoughts that IT IS possible to do things that you are asking for using tools like Dynamo and let’s say store that information in an external data base like Excel or CSV file, but depending on range of changes between updates it might be difficult to synch that data back into a newer model. Of course the fashion in which these changes have been made makes all the difference and unfortunately as a Contractor that is out of your control (how architects model their models). Again, a holistic solution is probably a bit of a stretch, but I would definitely try out smaller tasks like splitting of core walls by height can probably be automated regardless of how they are modeled or if they were moved. There is no Split API exposed in Revit but you could do that by just creating new walls and copying data from source wall into the new one. Again, it would require some programming chops.

Good luck!



i’m unaware of any custom nodes could you please tell me the package i have been working on code to do this would save me some time

Hi Luke

I 've seen a few packages- although I must admit have not used them myself- refer below

I have a vague memory that there is some API limitation around splitting objects, and that there might be some nodes based on grids rather than model lines

20160317 Dynamo packages 2




Bradly – Not to dismiss the Dynamo route but you might consider using Parts for this. You can Part a linked model such that changes to the link don’t blow up your work.