Hi everyone! This is Pete with BIMsmith. Today, I want to talk about the basics of drawing a Revit family and kind of the fundamental things you should know before you get started. So first, let’s look at templates. There are a lot to
choose from, but think about how you want this family to act and how you want the user to interact with it when you’re complete. But for the most part, generic model face base should do because it has a few different ways to place it in the end.
So here’s my view, I’m just gonna set it up in a way that I feel comfortable with and then what I want to start first is the skeleton. And what I mean by that is a series of reference planes that will then later be used to block geometry too and also labels too, as well. And so I like to start with just drawing a left and a right and then I use the aligned dimension tool to kind of snap those to that center origin point, and then I’ll put this one here just to assign a label to that later. And for the front the back, I’m going to do the exactly the same thing.
Make those equidistant and add another dimension that will have a label assigned to it in a second. So I’ll call this one up here, since we don’t have any yet I’ll make one, I’m gonna call this width. And let’s go ahead and call the other one depth.
Now that I have that set up, I can kind of put this family types property box to the left and test that out just to make sure that it’s working. A good rule of thumb is to constantly be checking, or what we call flexing the model, just to
make sure that it’s functioning the way that you thought it would.
You want to make sure that you have at least two reference planes that have defined the origin, so think about how you’re going to place this family. I just want this particular family to place directly in the center.
It’s also important to consider whether or not to name or label the other reference planes that you’ve created. These are important because once loaded into the project, you’re going to be able to snap to them or dimension to them.
If you don’t want the reference plane to show up in the project, you can make it not a reference. But for all the ones I’ve drawn so far, I’m going to name them just in case I want to draw at that plane and I want to be able to select it.
So now we can start to draw. There are a number of different tools in Revit to be able to draw the shapes that we’re trying to achieve in a void version of each as well. I’m just going to start with a simple extrusion. Now in order to lock those sketch lines that we create to the reference planes that we drew earlier so that they flex exactly the same way that we’ve already tested.
Two ways to do that. The second way is to choose the lock button before and to select those reference planes, and we can just trim it back into place. I prefer this way so I know exactly which line I’m selecting.
So that’s good, that should be able to flex with the reference planes that we’ve created; so far, so good. And now, let’s head over to an elevation view to lock it as well and this so it just kind of assumes a one-foot extrusion at first, that’s fine. But, I’m going to create reference plane for the height and then I’m going to create an additional one for a future thickness value, but don’t forget to to name them as well.
Go ahead and assign a height parameter to this, which we’ll constrain to the top of the geometry and then we could just flex that to make sure it works. And then this will be the bottom of this extrusion. And as I was drawing this, I’m like what should I, what should I model?
And I just kind of looked around and like why not the table that I am creating this video on? So this is going to be a very sophisticated IKEA table, probably. I don’t even know where I got it, but. So I’m just creating a thickness there, testing that, and locking the geometry to both of these reference planes that I created, flexing it, looks good. Okay, now we are going to create a leg. And so I’m just going to use a generic model for this, it doesn’t really need to be face based. And what you want to think about is, are you going to use this piece of geometry over and over again? If so, it’s probably a good idea to nest it so that you don’t have to draw it several times and lock it several times, though I’m just drawing a simple extrusion that I will lock to this reference planes. And then, what I’m also going to do is select it and apply a radius label to it so that I can control this once loaded into the parent Revit family.
If I select that I can add a parameter, and we call this radius. And so we’ll go ahead and do the same thing we did i
and to the bottom. So I’ll add that height parameter there, test it out, looks good. Lock the top, lock the bottom, test it again, okay.
Not a lot of people think in radius, so I think what I want to do here is just add a diameter parameter that I’ll eventually control in the parent Revit family and then I’ll just have the radius report to equaling half of that.
And to test. Okay, looks good. Let’s go ahead and assign a material
To that as well that will be controlled in the parent Revit family just in case the user would like to adjust that once loaded it into their project. I’m just gonna draw a support piece. Which, as I’m looking at my table now that I’m sitting at, it has a little extra bracket to screw into the tabletop. So just to be a little realistic here, I’ll give it that definition. Just a note though, you don’t want to model everything in Revit, it does have to calculate all of the surfaces. And if you were to model every little detail and every little fastener, it would really just slow down your model and you may or may not believe me, but to go ahead and try to model everything and you’ll know exactly what I’m talking about, it’s quite frustrating. So just kind of pick and choose like what is a good representation of this, and what is kind of overkill?
So now that I load that in, this piece of geometry is constrained in and of itself as I defined in its, in its host family. So now I can just create several instances of it and they’ll all act the same way. So what I’m going to do is draw some reference planes offset from the left, right, front, and back, and these are going to determine where the, where the table legs will lie inset from the perimeter of the table. So I’ll go ahead and assign the same parameter to all those just call it leg offset.
Okay, that looks good. And let’s go ahead and make all of those not a reference because I don’t really need anyone snapping to those locations in the project. We really just want them to be able to get the center and also the perimeter. So if I select that nested Revit family, I can associate all its parameters to the parent Revit family which basically just means that I would be able to assign each of these parameters to one in the parent and then edit it here rather than having to select each nested component and edit it in this dialogue box. And we’ll see what that looks like in a second. So right now it’s just asking me what do you want to associate that parameter to? And I’m kind of naming them the same way except for adding leg because I’m gonna have different heights and widths in here so I want to differentiate between the two.
Now that we have that, we want to make sure that our table leg reports to kind of the height of the table itself. So that’s going to require to add a little formula here it’s going to equal the height minus the thickness of the table because I want the top of that to hit the bottom of the table. But, it looks like I didn’t lock something appropriately in the nested Revit family and so let’s go check out what’s happening.
So it looks like I forgot to add a constrained thickness to that little fastener bracket that’s on the table. Okay, that looks better. Then just to make sure it’s lining up right, let’s go to an elevation, and it’s not. So let’s go back into the Revit family and edit that. I was gonna edit this these parts out of the video, but this is honestly what it what it feels like to make a Revit family. You’re just gonna have to kind of go into it and keep editing until you get it exactly right, that’s just kind of part of the game. So I’m gonna account for the thickness of that piece, and that looks that looks pretty good there.
Now let’s go ahead and put it into place and make several instances of it. So I’m going to lock that, the intersection of these table or leg offset reference planes that I made. And we’ll make three more instances of that where necessary.
The good thing about these being type parameters is that now that they’re associated all four of these legs are gonna act exactly the same. Let’s say that you want to swap out the leg and do some sort of other leg design in your family, well you could take that nested piece and add a label to that as well. And basically what this gives you is the functionality to swap it out for another family of the same category. So since we only have one, let’s go ahead and just create a different, a different leg. And what I like to do is just kind of edit the same one and eventually save as a different family. So just to do a quick demonstration of what this looks like, let’s just go into a front view and create like maybe maybe a decorative, more traditional-looking leg. So I’m just gonna do a revolve, and I’m gonna make that-
So save as, just so we don’t overwrite the existing family, and go ahead and load that in. And now that we have that here, we don’t really need to place it anywhere. But now that it’s loaded into our project we can actually control that through that label parameter, so now it shows up we select it, and it will swap all those legs out for this one. That looks pretty terrible, but that’s okay, you still get the idea. So let’s go back to our cheap IKEA legs. So now that we have all that set up, the next thing to do is just to kind of think about all the other parameters or constraints that you might want to add to this family. So you don’t want somebody making a 300 foot table, that wouldn’t really make any sense. You wouldn’t want them making it too thin or too low, you wouldn’t want the thickness to go beyond the height of the table itself. So I’m going to add constraints for all this, and I think you’ll get the idea once we go through this.
I want to constrain the depth to be not less than one foot so I’m going to put that there, and if it is less than one foot we’ll make it one, otherwise it’ll be whatever they type in depth. That’s sort of logic is gonna go to all of these so I’m gonna add that for the height, and this could be whatever you want too. Sometimes I’ll actually add another parameter that these formulas report to so if the height is greater then you know max height parameter, that way I can go and find the max height pretty easily. I popped that out rather than having to edit that value in the
formula so you can do whatever kind of works. This is a very simple family so I’m just going to keep it with these arbitrary values that I throw in here.
And let’s constrain the width as well, and similar to depth, let’s just make it no less than one foot. Testing these out now by entering the values, just to see if those respond, and now what we have to make sure we do, is make sure that you add those parameters on the draw, you have to associate them to those constraints so that they don’t move if they don’t meet the condition that we find.
And we’re going to go ahead do that with the nested family as well. If you don’t do this, you’ll learn pretty quickly that those formulas are doing nothing and the geometry is not responding as you as you had hoped.
One thing to keep in mind too is to make sure that you use the constraints parameters in the formulas otherwise they, they also won’t work as expected. So let’s go ahead and test out a few values here just to make sure that this thing is responding accordingly. And this is definitely something you want to do, this is essentially the debugging of Revit family so that you don’t just send something out and frustrate many many users.
So, just please take the time to test your own work. So I’m gonna go ahead and make a few preset family types in here, which is kind of nice to add just so that you can kind of you can express some of the design intent within these family types. You know, what types of variations you were intending for to have in this Revit family. So I’m going to create just a couple of different types there just for demonstration purposes.
And if you create more than six, it’s recommended to make a type catalog which is a .txt file that goes along with it, but we’ll cover that in another video. And so I’m gonna apply a tabletop parameter and just assign a couple of generic materials, out-of-the-box materials.
Let’s go ahead and make them use their render appearance. Okay, it looks like an IKEA table. So let’s, now we’re gonna select the proper category and then also I like to just hide the host in these families on a different layer so that you could kind of clean up the preview image of the file as well. It’s just good practice because when you’re looking at the thumbnails in file explorer or on content management sites, you’ll get that preview view that you set up as long as you save as and select that view in the options dialog.
So it gives it a nice thumbnail along with the file, as you can see here, that looks a lot better than just some random sketch with reference planes everywhere. Let’s go ahead and open a new project, and load it in and test it out!
So Revit is going to prompt me to place three different options here which is why I like the face-base, but I’m just going to pick work plan level one. I’ll make another instance of that just to show you how the different Revit family types show up. And if you just select the drop-down, we can select any Revit family types that we could already preset. And just the show the difference, let’s go ahead and edit the height type parameter of this instance. And there we go!
So that’s the basics of creating a Revit family, so just keep in mind the different strategies. Be sure to check out our full range of Revit Family Creation Tutorials and subscribe to keep updated!