How to separate para-metrically modeled dynamo elements so to be able to change them in Revit individually



Hi all,

Basically have a design that could only be done in Dynamo. There are more than one component to it though as it is a building/frame, with columns, rafters etc. Just not sure how to bring it into Revit, explode it in a way so I am able to change/select the properties individually?
I can bring it in as a whole but need to separate to be able to change and label/assign different types of families to it. Do I need to create a python script or is Dynamo able to do this?
Can anybody please help ?
Kind regards


The best would be to send a screenshot showing how these elements are exported at the moment, someone will surely have an idea on how to improve the process :slight_smile:


Exporting an SAT file at the moment




The Image from Revit is the line you see in Dynamo. I want to be be able to model something in dynamo then it appear in revit and already allow me to be able to select it. Currently I am unable to just select the 2D line and just assign it a property. I can only change properties once I have assigned a family type in dynamo itself.

Had to do two sends as it wouldn’t let me send more than one image



You say that you want to “have something appear in Revit - then assign it a property later”. Can you be more specific about what you are trying to achieve?

Dynamo works on top of Revit - so it has to follow Revit’s rules. You cannot create a line in Revit - and later make that line “become” a beam. Nor can you make a wall opening and later change that to be a door.

If you are trying to make framing via dynamo - why not just make framing? you can always switch the family type later in Revit - the key is to place a framing element. I have an “Dynamo Beam” and “Dynamo Column” for cases just like this where i want to place a column - but don’t want to bother with sizing and stuff in Dynamo. I see no reason why you could not also have “Dynamo Door”, Dynamo Window" “Dynamo Plumbing Fixture”. The key is that anything created in Revit must have a category - Dynamo will not work “against” Revit (it won’t break Revit’s rules - though it will help you bend them a bit).


Yep sorry.

So the image below is representing the dynamo frame. Once I have the frame in Dynamo I can bring it into Revit like the above but is there a way I can bring that frame into Revit from Dynamo unassigned but tell dynamo to make it accessible in Revit to be able to be selected and have Revit just assign properties to it? So instead of making a Dynamo Script with more than just x,y,z points I am able to just make it with those and load into Revit and then Revit just lets me select those line and assign the property there?
Does that make it a bit more clearer to what I am trying to achieve? If not let me know!


You make the Points in Dynamo. Connect the points in Dynamo with Lines/Curves. Then you have 3 options.

  1. Feed the list of lines/curves into ModelCurve.ByCurve node - this will give you Model Lines in Revit. Then you can pick the lines in Revit to place Framing.
  2. Feed the list of lines/curves into StructuralFramingg.ByCurve node - this will give you framing elements in Revit. Then you can switch the types in Revit as desired manually.
  3. Feed the points into AdaptiveComponent.ByPoints nodes to place adaptives that contain model lines that can be picked - this is by far the most advanced method since you have to have the adaptives made.

it sounds to me like option 1 is what you want - but it is in my opinion an extra step that is unecessary and only adds weight to your model (you will have model lines and framing in the same place) As i said before - use option 2 - if you want beams, place beams with Dynamo (just pick a family type and use it for all elements) and then manually switch the types to what you want later.


See link below for an example of using Dynamo to create framing elements in Revit. No way i’d have wanted to go back and pick lines for all of this…
Video Of Framing Elements via Dynamo


Thank you so much for your help and all your great feedback and options. Definitely option one was where I was heading but the video link you have provided is literally exactly what I want to do.

Have you used the suggested method 2 to do that? Your script didn’t look too massive from the vagueness I could see. However what you have done that is exactly what I have been searching for - to find ways to be able to do that…

By the way could option 3 be made by an excel spreadsheet?


Option 1 and Option 2 are pretty much identical. Think about it - you can draw a straight line, a radiused line, or a spline line. You can do the exact same thing with Structural Framing (remember- it has a “location line”).

In Dynamo- you have created a line. You either map that line into a ModelCurve node to create Revit lines or a Structural Framing.By Curve to create framing. In the background, the Revit API is looking at the Dynamo line and creating something in Revit using the Dynamo line as the location definition. it’s just a matter of what you tell the Revit API to create - a line or a framing element (or a line based detail component, or a generic model adaptive, or a slanted column, or a pipe, or a duct, …).

you could totally do option 3 with a spreadsheet (assuming the spreadsheet was a collection of X, Y, Z points) - but you could also do option 1 and 2 as well with the same spreadsheet.


Thank you for your help I think I have it from here fingers crossed…