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

If you are going to create your own template then this Dynamo workflow is for you.
This Dynamo workflow can create levels from Excel worksheet.
The worksheet should contain a column for the Plan/Level name and another column for Elevation values of each level.
In this tutorial we will use the “File Path” 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.
Data read from the Excel sheet will be stored in the format of columns but in order to address them in Dynamo we need to convert the columns into rows, that is why we use the “List.Transpose” Node.
The rows consist of List of Lists, in each list the first item is the elevation value and the last item is the level name.
By using the “Level.ByElevationAndName” Node we can create the desired levels. From here we can easily create any type of Plans in eye blink.
The workflow is straight forward I hope you enjoy it.
Create Levels, Floor Plans, Ceiling Plans and Structural Plans
The Dynamo Workflow can be downloaded from here
Update: The Excel file can be downloaded from here

Workflow: Creating finishing Floors from Rooms

Do you think that creating finishing floors is time consuming process? Now it is as simple as clicking a button.
Once you create the bounding Walls in Model, Revit 2016 allows you to automatically create Rooms with on click. After creating Rooms start to adjust the “Floor Finish” parameter of each Room.
We will make advantage of the previous created Rooms with “Floor Finish” defined.
First we will create the finish Floors based on the Room geometry.
Second we will chose the finish floor type to match the one specified in the Room parameter.
The idea is so simple, select all the Rooms through the “Categories” Node then by cutting the Rooms with a Plane we can get the outline which will be the boundary of each Floor.
By reading the value of the “Floor Finish” Parameter of each Room we can specify the Floor Type for each finish floor.
Finish Floors from Rooms
The Dynamo Workflow can be downloaded from here

Workflow: Create Topography from CSV in Revit 2016 using Dynamo

Today we will see how to create a Toposurface in Revit 2016 from a CSV file. The CSV file could be coming from Civil 3D or any similar application and contains the points that constitute the Toposurface.
The advantage is we can manipulate the points in Dynamo before creating the Toposurface.
In Dynamo use the “File Path” Node to browse to the CSV file. By adding “Import CSV” Node we can get all the coordinates of the points from the CSV file.
Data from the CSV file need to be transposed in order to be ready for creating the points.
After creating the points, the Toposurface is now ready to be created.
Topography from CSV
The Dynamo Workflow file can be downloaded from here

Workflow: Create Topography from DWG in Revit 2016 using Dynamo

Today we will see how to create a Toposurface in Revit from DWG file coming from Civil 3D and contains the contour lines.
First download the DWG file from the following link: gm-base.dwg (183KB) – AutoCAD R14 Drawing File
Then in Revit go to Insert tab -> Import CAD and browse to the downloaded link.
When the CAD is inserted you may need to do some cleanup like removing text layers, annotation layers, grids or any layer except the contour lines layer.
When the DWG is ready, use the following workflow to create the topography.
Create Topography from DWG
Simply click the select button and from the Revit view select the imported DWG instance. Dynamo will extract the contour lines after exploding the DWG geometry. To control the accuracy of the contour lines we shall divide the curves coming out from the explode command into arbitrary number of segments (controlled by the “Integer Slider” Node).
To create the surface we need points. The points can be generated from the segmented lines by getting the points at the middle of each segment.By clicking “Run” we get our desired Toposurface.
The Dynamo Workflow file can be downloaded from here

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.Family Distribution Part 3

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.

Family Distribution Part 2The 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.

Family Distribution Part 1

The Dynamo workflow can be downloaded from here