Families, Types and Instances: An overview
One of the main concepts that anyone new to Revit should endevour to fully understand is the relationship between Families, Family Types and Instances. I thought that a good way to convey and explain this concept may be by use of a graphical example.
So first of all let's create a very simple 3D component (ie a new Family).

So there it is, a simple cube. Nothing too exciting, but it will serve our purpose well.
Now, in creating this new Family, I have defined 3 parameters (ie 3 variables that will have some effect on the family). 2 parameters are dimensions (Width and Length) and the third is Material (ie what our cube is created from)

Now the important thing to note here is that when I created each of the Parameters I had to tell Revit whether they were Type Parameters or Instance Parameters.

So I chose to make both "Width" and "Material" Instance Parameters and Length a Type Parameter.
The next thing I did was set up 3 default Types for our Family. Here is the Type data:-



OK, job done. We've created our Family and set up 3 Types. Here's a graphical representation of what we have so far:-

So now lets drop down some instances into our model. We'll add 2 of Type A, 1 of Type B and 2 of Type C. This results in...

So now we start to have fun. First of all we are going to change a Type Parameter. I'm going to double the Parameter Length (from 500 to 1000) for Type A. This results in....

Notice how ALL the instances that are of Type A change their length. The other 2 Types remain unchanged.
Now let's change an Instance Parameter. I'm going to choose Instance number 3 and change it's material to Buff Brick...

Note how only that specific instance of the family changed material. All the others remain unchanged. This is the power of an Instance Parameter.
Finally, let's go back into the Family editor and triple the height of the cube. Note: There is no variable parameter for the height (because I chose not to create one)...

So I just increase the depth of the Solid extrusion to 750mm (from it's original 250mm). Now all I do is Load the Family back into our project and the existing version of the Family will be updated...

And as you may expect, every instance (ie ALL Types) have their Height changed.
Summary
It does not matter if we're discussing cubes, doors, windows, trees or desks- The basic fundamental concept behind Family Definitions, Family Types and Instances remains the same. Change a Type Parameter and all Instances of the that Type will also change. Change an Instance Parameter and only that specific Instance of the Family will change.
If you have any questions, comments or feedback relating to this article, please use our Forums. Registration takes approximately 1 minute and then you're free to start posting immediately.


