spacer.png, 0 kB

Sponsored Links

Members' Zone






Lost Password?

spacer.png, 0 kB
spacer.png, 0 kB
Home arrow Articles arrow Custom Model Components: Part 03: Families, Types, Instances
Custom Model Components: Part 03: Families, Types, Instances PDF Print E-mail
Wednesday, 24 October 2007
Please Note: Our Discussion forums have moved. If you would like to discuss this article or any aspect of Revit, please do so at www.forums.revit.biz  We will be more than pleased to help you with ANY Revit query.

 

Welcome to third part in our series on creating custom components. In this particular article we are going to take a look at Families, Family Types and Family Instances. We will look at what they are and what are the fundamental differences between them.

 

Families: If there’s one word that goes hand-in-hand with Revit, it’s Families. So what exactly is a Revit Family? Well, to answer that we have take a few steps back to discuss how Revit organises itself. You will probably know by now that Revit is a 3D parametric modeller. And models that are created within Revit are comprised of individual elements. And these elements have parameters that control them. Just as in real life, everything modelled within Revit is built from a collection of smaller elements. So there’s a distinct hierarchical organisation at work.

 

They say a picture can paint a thousand words, so let’s just take a look (graphically) at Families within Revit. If we start up Revit with a default project template and look towards the bottom of the Project Browser, we see “Families”….

 

Image

 

Go ahead and click on the plus sign to expand “Families” and view it’s contents…

 

Image

 

And there you have it! This is a list of all the primary family classes that are contained within this current project. Note: The items listed here are NOT Families themselves, they are the Family groups, Family classes, etc. We have to go one level DOWN from here to see the actual Families themselves. So let’s do that now. Let’s take Doors for example. If I expand the “Doors” Family class, we see the following….

 

Image

 

Now THESE are the actual Door Families present within this project. The two families are “ExtDbl Flush” and “IntSgl (1)” So what lies BELOW Families in our Revit hierarchical universe? “Family Types”, that’s what.

 

It’s at this point that we need to explain the relationship between Families and Family Types. Basically Families are a collection of information, data, parameters, geometry, etc; that describe a specific element- ie a certain door style. Family Types allow us to take that basic set of parameters and pre-define a number of variations.

 

If we look at the door family “ExtDbl Flush” and click on the plus sign next to it, we can see the Family Types for it….

 

Image

 

As you can see, there are two “Types” defined for this particular family. The differences between these two particular types is a dimension- in this case the door width. What is crucial to understand though is that Family Types can VARY from one another by ANY of the parameters that make up the Family itself. For example you can create a Family for a specific piece of furniture, and have 30 different Types- where the only difference between each Type is the material used.

 

So where do “Instances” fit into all this?

 

The third and final part of our jigsaw (after Families and Family Types) are Family Instances (or just “Instances” for short). As the name suggests Instances are specific, particular instances of a Family placed within a model. For example, if I draw a wall and place a door within it- that door is a single instance of that Door Family.

 

So what we have learnt from the above is that there is 3 levels of hierarchy: Family > Family Type > Family Instance. In defining a Family, there is a choice of two different Parameter types that can be used: Type Parameters and Instance Parameters. Now I don’t want to get too hung up on parameters in this article because we are going to dedicate Part 6 (Parameter Power!) to that subject- but I mention the two parameter types here, because they determine how a family can be modified once it is placed (as an instance) within a project.

 

If a family has Instance parameters- then any Instance of the family can be modified (by changing the instance parameters), totally independently of any other instance of that family. If you were to edit an instance, and change it’s TYPE parameter- then all Instances of the Family, of that TYPE would change accordingly.

 

There is no better way to summarise what I mean by this than looking at the Element Properties control panel for a family instance- in this case I’ll pick one of our doors…

 

Image

 

You can see the panel is divided into 3 main section:

 

The first section is the Family and Family Type drop-down selectors

 

The second section is the Type Parameters- you cannot change these without editing the family itself- hence they are greyed out.

 

The third section is the Instance Parameters- you can change these and there will be an immediate effect ONLY on this particular Instance that you are modifying.

 

Deciding on which parameters need to be Type Parameters and which need to be Instance Parameters is a crucial step in creating your own components.

 

I am conscious that this is not the easiest of topics to immediately grasp- it’s one of those concepts that seem to become clearer through use. Nevertheless, it is if vital importance that you have a clear understanding of the fundamentals of Families, Family Types and Family Instances. If you have any questions or queries on this particular topic, please feel free to ask away in THIS FORUM.

 

Note: Before you go onto the next part in the series, you may want to also check out this article which explains in a different way (more graphically) the fundamentals of Families, Types and Instances. 

 

In the next part of this series, we will look at what goes into making the actual 3D geometry of our components.                          

 

Proceed to Part 4
Last Updated ( Monday, 01 February 2010 )
 
< Prev   Next >
spacer.png, 0 kB
spacer.png, 0 kB
spacer.png, 0 kB