Join Paul F. Aubin for an in-depth discussion in this video Controlling nested families parametrically with the
- [Voiceover] In this movie I want to talk about a family types parameter. A family types parameter is a special kind of parameter that you can use when building family content that allows you to change the instance of a nested family to something else. So in other words, if I build a family and I nest in a second family, and I want to provide options for that nested family, I can use a family types parameter to allow my end user to be able to select from different nested families without having to actually bring in a whole new family.
So a really simple example, might be here in this case work that I have in this copy room. So if I go to this interior elevation right here, just go ahead and double click that, got this base cabinet right here and what I want to do is be able to switch between flush doors and glass doors on the face of this base cabinet. Now I certainly could open up the family, save as, create a version with glass doors, load it back in, and then I'd have two different families. One with glass doors, one without.
That's perfectly fine. But the family types parameter gives me the advantage of putting both variations within the same family, and then if we need to change something about the overall base cabinet, I only have to go to one family to make changes, and it still has both of the options. So it's just another approach, another way of doing it. Let's take a look at how we set that up. So I'm going to click edit family here. That will take me into the family editor, and I'm now looking at this base cabinet. And what you'll see here, is that the doors in this family are generic models that I've nested in as a separate family.
So this particular family just includes an extrusion to represent the door, but it's in its own family. And again, the reason to do that is because of the next step that I want to do here. So I'm going to select both doors, and up here on the options bar, is a drop-down, next to label, and I'll choose add parameter. So here I can give this a name, like Door Type. And I'll set this up as a type parameter, decide where I want to group it. I'm going to put it under construction, and then I'll click okay.
So no change initially to the family, but now, let me just move this over here. This is how it works. If I open up family types, kind of rearrange the screens here so that we can see. I've already got a type in here called 24x36 Flush Doors. I'm going to create another new type, and I'll call that one Glass Doors. And then our new door type parameter is right here, under construction, where we asked for it. Notice that it says Door Type Generic Models. So the way that this works is, it's going to see all of the generic models that are loaded in this project, or this family, and show them here on this list.
So I've got another one here called Glass Doors. It was already pre-loaded into the family. And when I click apply, I now have glass doors right there. So the nice thing about this feature is that now, by swapping between the two types, I can go from flush doors to glass doors, just like that. But I'm doing it within the same parent family. So I'll okay this, I'll load it back into the project, overwrite the existing one, and now if I select this and open up the type selector.
There's my base cabinet family, there's the original flush doors type, and here's the new glass doors type, like so. So it's a really simple example, but it kind of gives you the benefit of why you might want to use a family types parameter. Now let me close this view. I'll close this family, I'm not gonna save it. And then that brings me back to the floor plan. And I'm going to select this table and chairs right here, and let's look at another example. So maybe I'd like to be able to swap in a different kind of chair around this table.
Well I got a couple different chairs right here that are possibilities, but let's go ahead and select this table and chairs, edit the family, and take a look at how we do that. Now the table itself is just extrusions built directly in the family. But the chairs are actually nested families. Now they're also inside of a group, and the reason they're inside a group is because there's an array that allows us to change parametrically the number of chairs that we have. So all I have to do is edit the group, and then select the chair. Now up here on the options bar, there's our label.
I'll choose at Perimeter. Call that Chair Type. And this time I'm going to make it an instance perimeter. I'll put that under construction again, or maybe general, or wherever you want to put it, and I'll click okay. So now I have a chair type perimeter for this. I'll finish the group, and then if I go to family types there's my construction, there's my new chair type, furniture family types parameter, and notice that there's only one choice in this family, chair breuer. Now at first that may seem like a problem, but let's go ahead and load this into our project, we'll overwrite the existing, and let's see the way this is gonna behave now.
When I select the table and chairs, since I did an instance parameter, that will be listed right here, chair type. But notice that when I click here, and I open up the list, I get a lot more than chair beuer. All of the other furniture elements that are part of this project are on this list. So for example I could choose chair executive now, and this chair that I have right there, I can swap around the table. Now the only thing that we have to be careful of, is to make sure that we choose something logical. If you chose a desk, it's probably not going to give us a very good result around this table, and it might actually fail.
If I choose one of these other chairs, like Chair-Task, then I will get a reasonable result. Now, in some cases, you'll choose a chair, and it might shift. The other important thing to keep in mind is, each of the chairs that you plan to use, has to be built the same way. So if we edit that Desk Chair family, what we would notice is that the insertion point for it is in a different location than the other three chairs. So, as long as we use chairs that are built the same way, with the same insertion point, it should work pretty well.
Now, is there a way to prevent things that aren't chairs from showing up on that list? Well, not exactly. Unfortunately, one of the features of the family types parameter, is that it's by category. So revit doesn't have any way for us to distinguish a chair from desk, from a table, they're all just Furniture. So, unfortunately that's the downside of the family types parameter. However, there is one thing that you can do. The chairs inside this table and chairs family, are what we call shared families, so if I highlight the table and chairs, and press tab, notice that I'm able to reach in and select the individual chair.
That's because that is a shared family. Now, if I go back to my case work example, and I highlight the door, and I press tab, nothing happens. I'm not able to reach in and select that door separately from the cabinet. So down here if I scroll up I've got a shower family. Now I realize that a shower family probably doesn't fit this office layout. But, I've built this one using family types parameters, and taking advantage of one of the features that I just illustrated to you.
The fact that I wasn't able to select the door individually on the base cabinet, is the feature that I'm using right here. So if I select the shower, there's a shower head location perimeter and it has three choices. Left, right, and of course back to center. Now if you look at what kind of parameter that is, the shower head location is a detail item parameter. Which means that it uses the category detail items.
Now you may be thinking, well there's gotta be some other detail items in this project. And in fact, there are. If I go to the component, here is a wide flange steel. So why isn't wide flange steel showing up on that list? The reason is, because the detail item category that I'm using to control that shower head, is not a shared family. Therefore, it's only showing the three that are built right into the nested showers. So, it'll limit itself to just the list of the ones that it contains, rather than looking at the broader list of the entire project.
So, that's really the key to getting your family types parameters to show a more limited list. You have to make sure that you're not using a shared family. So, that's a little bit problematic when it comes to tables and chairs, because you probably want the chairs to be shared, so that you can count them separately on a schedule. So, there's a little bit of a trade-off there. But just so long as you understand what the pros and cons are, you can make a good decision. So bottom line is, is that the family types parameter gives us this advantage, this ability to build in options within our families, and then we can choose from the list of available options either shared or unshared and be able to swap out different options within the nested family.
NOTE: The exercise files for this course can only be opened in the most recent version of Revit (Revit 2017).
Skill Level Appropriate for all
Q: Why can't I earn a Certificate of Completion for this course?
A: We publish a new tutorial or tutorials for this course on a regular basis. We are unable to offer a Certificate of Completion because it is an ever-evolving course that is not designed to be completed. Check back often for new movies.