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

Hello BIM fellows
Today we will see how to quickly create walls from floor edges using Dynamo in Revit 2016. This could be useful for Landscape architects as well as Construction architects.
First we need to get all the Floors that are at the same level, this could be done by getting the intersection set between two lists.
The first list contains all floors in the model and the second one contains all the elements at certain level.
Using combination of “Levels” Node, “Categories” Node and “SetIntesection” Node we get such filtration.
To get the Floor edges we should cut the Floor with a plane and since all floors are almost horizontal we can cut them with the plane of Z axis as its Normal. Once we got the edges the Python Script does its magic.
By using the same Level of the Floors, proper Wall Type and the Floors edges we can so easily draw walls on each edge segment.
Building walls from floor edges
The Dynamo workflow 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




This node will return the TitleBlock instance applied to the input Sheet.

Works with list of sheets.

Uses a little python, basically building up a dictionary with the sheet number parameter of the titleblock elements (as the Keys) and the titleblocks themselves as the Values.

Then performs a search in the dictionary using the Sheet number of the Sheet elements.

In pursuit of avoiding dependencies, a basic implementation of the dictionary is used. For more reliable results, the python node can be replaced with SpringNode’s “Dictionary”.






This is the second node of a group of three. Go to the first one before continue reading.

Refer to the workflow post for further details.

As an input will take the preset name, and the input or inputs of that preset.

If more than one input is desired, they need to be grouped as a list and then connected to he “Preset Input(s) node port.

This custom node contains a python node inside.


The author of these nodes is no affiliated with DynoBrowser developer. Refer to for more information



This node is the first of a group of three nodes. They are meant to help with the creation of the preset file, which is a .JSON file.Refer to the workflow post for further details.

This file defines for a given “preset”, the inputs which will be accessible from DynoBrowser panel.  see more at

With this node, you define an input.

It has three inputs; Name, Value and Description. The node will look for the data type and write it accordingly.


The string creation is held by a python script node:DynoPresetInputGenerator_py


You can define more than one input, and lace them together into a list and pass it to the next node, which is DynoPresetGenerator.


The author of these nodes is no affiliated with DynoBrowser developer. Refer to for more information