Today we will talk about how to distribute instances of a Revit Family uniformly along a predefined path using Dynamo 0.9.2 in Revit 2016. The path could be either closed or open.
First open Revit and make sure that the Family you want to distribute is loaded.
In our example we will use the Family “Chair” and distribute it once along a curved line.
For this lesson we will draw a model curve to use it as a guide for the distribution path, divide it into equally spaced segments then insert the “Chair” Family at the end point of each segment.
So as we planned the workflow logic in our mind we can find the nodes that are needed to implement it. Now we will open Dynamo and create a new Workspace. From the Categories Search find the following nodes:
- Select model element
- Divide Equally
- Number Slider
- Family Types
In order to insert a model element from Revit environment into Dynamo environment we shall use the ”Select model element” Node, so click on select and from Revit project pick the model line.
After the Model Curve is brought into Dynamo we need to extract the Curve geometry from it so we connect the ”Select model element” Node output to the “Element.Curves” Node input.
The curve geometry is ready now to be divided so we will connect the output of the “Element.Curves” Node to the input of the “Curve.Divide Equally” Node input.
To determine the number of segments needed we will connect the “Number Slider” Node to the “divisions” input in the “Curve.Divide Equally” Node. By changing the slider value the number of divisions will increase or decrease respectively.
As the curve has been segmented we need to locate the end points as they will be our insertion positions for the “Chair” Family instances. So connect the output of the “Curve.Divide Equally” Node to the “Curve.EndPoint” Node input.
Now from the “Family Types” Node select the “Chair” Family Type and connect it to the “FamilyInstance.ByPoint” Node.
The last step before hitting the “Run” button is to connect the insertion points coming from the “Curve.EndPoint” Node into the “FamilyInstance.ByPoint” Node.
We can hit “Run” button and see the result in the Revit view. If we set the run mode in Dynamo to automatic then we can change the number of inserted instances based on the number of segments by changing the value of the Number Slider online.
The Dynamo workflow can be downloaded from here
6 thoughts on “Workflow: Family Distribution Part 1”
Good post, thank you for the logical step-by-step development of how to do this.
This method is deprecated. Use ‘PointsAtEqualSegmentLength’ and ‘SplitByPoints’ instead.
This is for 2016 only?
No for Dynamo 0.9.2 this is still valid and I didn’t try this for versions other than Revit 2016.
Thanks for the post. I’m interested if I could use it to place families down the length of a control line at specific points on the curve. ie equipment at designated chainage.