Different processes are required to place the different varieties of Revit Families, including Components (families modeled in Revit's Family Editor), Walls, and Floors. In this video, we will cover the process of placing Family Components, which have a single origin, and can be placed by defining the location of the family's origin; Walls, which are placed along a line or curve; and Floors, which are placed by drawing a closed loop of boundary curves.
- [Voiceover] Dynamo aside, when we work in Revit, slightly different processes are required to place the different varieties of Revit families. For example, some families only require a single click to place them in a view, whereas walls require you to draw a line or a curve, and floors are going to require you to draw an entire closed boundary. In this video, we're going to cover some of the different processes of placing these kinds of Revit families using Dynamo. In a couple other videos, we generated this surface in Dynamo by lofting two curves together. We also generated a grid of points on that surface using our pointed perimeter node.
We're also using another pointed perimeter node to generate four curves across the surface, spanning from the back to the front. Taking a look at our Revit project for a moment, we're going to use each of these types of geometries as a way of placing a different type of family instance into this project. Let's begin with our grid of points. All Dynamo needs from you to place component families or families that were built in the Revit family editor, are the family type of the element to be placed, and a point in Dynamo in each location you'd like to place them. In this example, let's use this grid of points to place a series of light fixture families in Revit.
Let's begin by navigating to the Revit elements family instance section of the node library. I'm going to drop in a family instance by point node, which is going to take a family type, which we'll define in a second, as well as a series of points, which we already have ready to go. In order to specify a family type, we want to head back up to the Revit selection portion of the node library. The family types node let's us pick and choose any family type that's available in our project. I'm going to select the light canopy family type, and plug it into our family type input.
Now, go ahead and click run. Here we can see that Dynamo has placed a series of light fixture families at each point in our project. That wasn't so difficult. Let's group those two nodes together using ctrl G. Now let's try to place a structural framing family on each of the four curves that we have spanning across our surface. We'll want to head over to the Revit elements, structural framing section of the node library, and drop in a beam by curve node.
We're seeing that this node takes three inputs. We have our curves defined, but we also need to specify a level and a structural framing type. We can find those two nodes back at the Revit selection portion of the node library. We'll drop in a levels node, and notice that there's a node specifically for selecting structural framing types. We'll drop that into our work space also. Our levels node let's us pick and choose a level that's in the project. Level one looks good. We'll also plug in the canopy's structure family type for structural framing.
When I hit run, you can see that a series of new beams, structural framing families, appear in Revit as well. Now let's group these three nodes together as well. I'm going to go ahead and group these nodes together too, since they're working together to create our structural framing families. Now let's try to use Dynamo to place a floor object. For this example, maybe we're interested in a change of sidewalk finish that shares the same perimeter as our canopy above.
We're going to need to begin by abstracting the perimeter curves of our canopy surface. In a previous video, we used a node called perimeter curves. Let's go ahead and drop that into our work space. When we hit run, you can see that we now have the four perimeter curves of the canopy surface. Let's try using these four curves as a way of generating a floor boundary. If we head back over to the Revit elements section of the node library, you can see that we have a floor section. Here we have two options for creating floors.
They both look pretty similar, but it seems like one of them takes a poly curve as an outline. The other one takes a list of curves. We've just generated a list of four curves, so we'll drop in the first node. We'll go ahead and plug in our curve list. We also need you to find a floor type and a level. Let's head back up to the Redit selection section of the node library. We'll drop in level one, as well as a floor type. I'll pick and choose the floor type that's a sidewalk accent finish. I'll pick my floor type and plug it in. Level one is the level that we want to place this floor on.
When I hit run, you can see that we encountered an error. The reason for the error is that the curves we provided, even though they are closed, aren't planar, they're twisted. That's okay, there's a really easy fix for this. Rather than providing these lines floating in space at different heights and angles, let's flatten all of those curves down to the xy plane, using a node called pull onto plane. This node will take our list of input curves, and pull it onto whichever plane we specify. I'm going to specify the xy plane. If you remember from the previous video, Dynamo has a list of shortcut nodes for commonly used planes.
I'll drop in the xy plane, which is basically our level one. Notice that when I click run, we can see four curves that are projected down onto that xy plane. Let's plug that curve list into our outline curves input, and hit run again. Excellent, and if we look at Revit, we can see that we now have a different sidewalk finish, sharing the same perimeter as our canopy above. I'm going to reorganize our work space just a little bit to keep things tidy. Then I'll group these nodes together.
For our last example, let's try to place a wall instance. Maybe for this example, we're interested in placing a wall to the left and to the right of the entry using the same curves that we just pulled down from the canopy perimeter. Let's begin by dropping in the node that we'll need to place our wall families. We can find that under Revit, elements, wall section of the node library. Very similar to the floor family, we need to provide a curve, a level, and a wall type. But in addition, we also need to provide the height of the wall, which we can do with the number input.
Let's begin by extracting just the two curves that we want out of our curve list. For that we'll use a get item by index name. We'll plug in our curve list. In this case, we're really only interested in the items at index 0 and index 2. So I'm going to quickly create a list of those two numbers. We'll need two number inputs, as well as a list create node. When we hit run, you'll notice that we have a list of just those two numbers. Let's plug that into our get item at index node.
Now you can see we've extracted only these two curves, the left and the right. Let's plug that into our curve input for our wall. Maybe let's set the height of our wall at three feet. I'm going to copy one of our number inputs, and change it to the number three. We'll plug that into our height. Our last two steps are to specify the level and the wall type. Again, we can do that under the Revit selection portion of our node library.
I'll pick the exterior knee wall type, and plug it into our wall type input. When I hit run, you can see that Dynamo has placed two wall instances in the location of the curves that we specified. Let's go ahead and group those nodes together, too. So now that you know the different data inputs required to place these different varieties of Revit families, it should be a little bit easier for you to plan out the road map for your first Dynamo scripts.
- Placing and connecting Dynamo nodes
- Understanding Dynamo's data types
- Performing math functions
- Creating number lists and text strings
- Writing data to an Excel spreadsheet
- Creating points, curves, surfaces, and solids
- Analyzing geometry
- Linking a Dynamo-driven SAT into Revit
- Placing Revit families with Dynamo
- Creating Revit views and sheets with Dynamo