Thursday, March 31, 2011

Revit Families, Types and Instances

Grasping the building blocks of Revit for AutoCAD Converts

When I first was learning Revit, one of the items that my AutoCAD trained mind had a difficult time accepting was how to properly use/create Revit Families.

In AutoCAD, you have Blocks defined in a drawing (this definition you don’t see … its internal), then references to that block placed numerously throughout your drawing (these are the “blocks” end users see – technically the proper name for these are Block References, but most people refer to them as blocks). You can also maintain blocks as an external file, and bring them in when you need it, to many different drawings/projects.

So families are the Revit equivalent of AutoCAD blocks, right?  If it was that easy, I wouldn’t be writing this post! It’s close, just similar enough to lull you into thinking you have the concept grasped. But there are some things you should know, and it starts with Revit vocabulary.
First understand there are three types of Families in Revit: system families, loadable families, and in-place families. 99% of the time you hear someone talking about families, they are referring to the loadable family type. That is the focus in this article. For your reference, here are the definitions from the Revit MEP 2011 User Guide:

System Families
Loadable Families
In-Place Families
System families create basic elements such as ducts, pipes, and other elements that you would assemble on site. System settings, which affect the project environment and include types for levels, grids, drawing sheets, and viewports, are also system families.
System families are predefined in Revit MEP. You do not load them into your projects from external files, nor do you save them in locations external to the project.

Loadable families are families used to create both system components and some annotation elements. Loadable families create the components that would usually be purchased, delivered, and installed in and around a building, such as boilers, water heaters, air handlers, and plumbing fixtures. They also include some annotation elements that are routinely customized, such as symbols and title blocks.
Because of their highly customizable nature, loadable families are the families that you most commonly create and modify in Revit MEP. Unlike system families, loadable families are created in external RFA files and imported, or loaded, in your projects. For loadable families that contain many types, you can create and use type catalogs, which allow you load only the types that you need for a project.

In-place elements are unique elements that you create when you need to create a unique component that is specific to the current project. You can create in-place geometry so that it references other project geometry; resizing or adjusting accordingly if the referenced geometry changes. When you create an in-place element, Revit MEP creates a family for the in-place element, which contains a single family type.
Creating an in-place element involves many of the same Family Editor tools as creating a loadable family. For detailed information about Revit MEP families, see The Families Guide.


Revit Families are very robust, and have a lot of tricks. But this is what you NEED to know if you are just starting out.

Loadable families can be stored externally, and have the extension .rfa.

The family itself contains at least one, and possibly more, types. When a type is placed into the model, it is referred to as an instance. 

In an effort to understand the concept, I have chosen a neutral object that many of us can relate to: The Beer Keg. I created a family that falls under the plumbing fixture category (Categories are static– everything must fall under some kind of pre-defined-by-Revit category).  

The Name of my family is Keg.rfa.

Inside my keg family, I have 4 types:

  • 1/2 Barrel
  • 1/4 Slim
  • 1/6 Slim
  • Pony


Each of these types can be placed in your model, over and over again. Those resulting objects are called instances. In the sample above, I have placed three instances of the ½ barrel keg type.  (There are also 3 instances of the ¼ slim keg type.)

The relationship of types to instance is important, as it’s important to parameters, or the data, stored inside the families.

Take for example, the ½ barrel keg properties.

*Note - This is the properties palette of the family from inside the family editor – not the properties window(s) in the Revit project itself.

Let’s say the designer needs to show four ½ barrel kegs. Each of those kegs are manufactured the same.  They all have 15.5 Gallons capacity. They all have the same dimensions, etc.  Those are all properties of the type of keg (or, Type parameters). They are uniform.

Looking at the “contents” parameter above, you notice there is a (default) next to the parameter name. This indicates that every instance placed in a model, can have a different property assigned to it. This is referred to as an instance parameter. By default this parameter is filled out as “BEER”. However in an actual project, you could specify the type of beer in each keg.  For example: Sam Adams, Stella, Guinness, and Old Style are all instances inside of the ½ Barrel keg type.

I know this was a tricky concept for me the first week or so I picked up Revit, after 10+ years of AutoCAD.  Hopefully, this helps some other Revit newcomers along.

If you would like the keg.rfa  family I used for this tutorial, you may download it free here.

1 comment: