# Workflows

# Workflow: Building walls from floor edges using Dynamo in Revit 2016

*Node*, “Categories” Node and “SetIntesection”

*Node*we get such filtration.

# Workflow: Creating free form theater curtain Using Dynamo and Revit 2016

- 4 x Number
- Range
- Integer Slider
- Math.Sin
- Math.RadiansToDegrees
- 2 x Points.ByCoordinates
- Line.ByStartPointEndPoint
- Surface.ByLoft
- ImportInstance.ByGeometries

From the the “Range” *Node* we can get a set of points which will be incorporated to represent the start and end points. As the end points are composing a straight line we will use them as they are. But the start points are composing a Sin wave shaped curve so we need to convert their Y values first to degrees and hence use them as values to the angle input in the “Math.Sin” *Node*.

Once we got the set of start points and end points we will use the “Line.ByStartPointEndPoints” *Node* to create the lines which will be used to create the surface.

The “Surface.ByLoft” *Node* will create the surface based on the supplied lines by lofting. Final step is to import the geometry into Revit and this is done by using the “ImportInstance.ByGeometries” *Node*.

The dynamo workflow can be downloaded from here

# Workflow: Create Levels, Floor Plans, Ceiling Plans and Structural Plans in 1 click

*Node*to browse to the Excel sheet file then the “File.Path”

*Node*to get the file object. Using the “Excel.ReadFromFile”

*Node*we can assign the sheet name which contains the required information.

*Node*.

*Node*we can create the desired levels. From here we can easily create any type of Plans in eye blink.

# Workflow: Creating finishing Floors from Rooms

# Workflow: Create Topography from CSV in Revit 2016 using Dynamo

# Workflow: Create Topography from DWG in Revit 2016 using Dynamo

*Node*).

# Workflow: Family Distribution Part 3

In today’s lesson we will see how to distribute the “Chair” *Family* over a squared equally spaced grid.

The lacing technique will be used in this lesson to quickly establish the square grid of eleven rows and eleven columns spaced equally by 1000 unit.

We will need to use the following Nodes:

- 4 x Number
- Range
- Family Types
- Point.ByCoordinates
- FamilyInstance.ByPoint

First we will generate a list of X and Y values by using the “Range” *Node*. These values will specify the number of rows, columns and the distances between them respectively.

By changing the lacing of the “Point.ByCoordinates” *Node* to *Cross Product*, we get every combination between each value in the X values list and Y values list, giving us an 11 x 11 grid of points. This is an equivalent data structure to the cross product, except our data is now a list of lists.

From the “Family Types” Node select the “Chair” *Family*. By connecting the “FamilyInstance.ByPoint” *Node *input to the “Family Types”* Node *output and the “*Point.ByCordinates*“* Node* output, we can see that we have 121 chairs arranged in a grid of 11 rows by 11 columns.

The Dynamo Workflow can be downloaded from here

# Workflow: Family Distribution Part 2

In the second part of the “Family Distribution” lesson we will use the Family “Chair” and distribute it on a closed path around a Table.

In the part 1 of this lesson we allowed Dynamo to calculate automatically the length of each segment by dividing the total length of the path by the number of segments. This time we will do the opposite, we will specify the segment length and let Dynamo calculate the number of segments needed.

For this part of the lesson we will draw a Model Curve on the shape of a circle 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. We will let the “Table” Family be at the center of the circle.

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
- Element.Curves
- Curve.DivideByDistance
- Number Slider
- Curve.EndPoint
- Family Types
- FamilyInstance.ByPoint

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 length of each segment we will connect the “Number Slider” Node to the “divisions” input in the “Curve. DivideByDistance” 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. DivideByDistance” 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 length of segments by changing the value of the Number Slider online.

The Dynamo Workflow can be downloaded from here

# Workflow: Family Distribution Part 1

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
- Curves
- Divide Equally
- Number Slider
- EndPoint
- Family Types
- ByPoint

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