A Family is a group of objects that form a building component such as a door, a wall, a window or a chair. All families are associated to a specific category and contain a set of properties (parameters) and a graphical representation associated to these properties.
Understanding how to create and edit Revit Families is a must if you want to take your Revit skills to another level. Revit’s Family Editor has all the tools you need to create custom components for your Revit projects, and here you will learn 10 steps to master this environment.
#1 – Understand family types
There are different Family Types in Revit:
System families – Generally, assemblies (walls, roofs, floors, ceilings, etc). Our flexibility here is limited, we can create different types of system families, but we can’t add parameters to control their graphical representation.
Component families – Families we can create from scratch and load into the project. Can be extremely flexible and customized based on your needs. In this blog post, we are going to focus on them. They can be hosted, free standing or work plane-based.
In place families – ‘One-off’ families created inside the project environment that do not require geometrical flexibilization. Should be used with caution, as they can increase the size of the file and impact model performance.
#2 – Understand the use of parameters
Parameters are used to define and modify elements in Revit. They give flexibility to project components. By changing the parameters assigned to a family we can create different versions of the family, called types. Each family type has an identical set of parameters called “type parameters”.
When placing a family type in a project, you create an instance of that element. Each instance has a unique set of parameters called “instance parameters”. By changing these parameters, you can apply changes independent of the family type, that will only apply to that specific element in the project. Keep in mind that if you make any changes to the family type parameters, the changes apply to all element instances that you created based on that type.
It is up to the person creating the family to define its parameters, and to determine if a parameter is going to be applied to the type or to the instance level. The following pictures are a good example of that statement. These two doors are very similar graphically, but each one has different instance and type parameters – for example, one door has a parameter called “Door Material” and the other “Panel Material” with, essentially, the same function. Why? Probably just because they were created by two different Revit users.
#3 – Plan before you start
Planning is a key process to successfully create a family in Revit. Sketch you family in a piece of paper, to make sure you don’t get carried away in the process. It is common for new Revit users to feel that they should “model everything” in full 3d, but following this road usually leads to over modelled elements that are hard to use and manage.
Answer the following questions before you go to the next step:
#1 Is there a family in Autodesk’s library that is similar to the one you want to create? Consider copying, renaming and modifying the existing family to save time.
#2 Where will the family be viewed? Is it only showing in plan? Is a 3D representation required? Will it be rendered? Can we get away with 2D lines? Only model in 3D what is necessary.
#3 How do you want it to graphically show in different views? What is the level of detail you need based on the scales of the drawings in which it will be represented? Consider setting visibility controls.
#4 What is the level of flexibility you need? What properties do you want to be able to control? What parameters must be created? Is a property dependent on another? Consider creating formulas to create relationships between parameters.
#5 Will the family be scheduled? Is a parameter going to be scheduled? Consider using shared parameters.
#4 – Select an appropriate template
Revit comes with a variety of templates based on object categories. Go to File > New > Family and select an appropriate Template for your family. Categories will determine the behaviour of the family – for example if the family goes from level to level, or if it is hosted in another element. If you are not sure what category the object falls under, then create it as a generic family and you can modify the category later going to Create > Properties Panel > Family Categories and Parameters. Be aware that object categories are what control the display of objects in Revit and several categories are “non-cuttable” in Revit.
#5 – Create the family framework
Most templates come with, at least, two pre-defined planes. The intersection of these two planes defines the origin of the family. If you want your family to be able to change in size, you need to build a framework using reference planes and/or reference lines (used to constrain angles).
Use reference planes to set critical positions in the family. Later, we will constraint the geometry of the family to these reference planes so when they move, the geometry follows.
The picture below shows the reference planes you would create if you wanted to create a table – reference planes in plan view for the table top, and reference planes in an elevation to set the top and underside of the table top.
#6 – Dimension the framework
Go to Modify > Measure Panel, select a dimension tool and dimension your framework. Then, create constraints defining both flexible and static conditions.
Select and lock a dimension.
Select and set a group of dimensions as equal with the “EQ” option.
Label a dimension with a parameter to be able to control its value dynamically. Select a dimension, go to Label Dimension Panel and click Create Parameter. Give the parameter a name, a group and define if the parameter will be applied to type or instance (you can change this later). Notice that if you select a dimension, the dialogue defaults the parameter type to dimension, and length.
In our example, the table top length, width and thickness are flexible and labeled with parameters. Equality constraints have also been included so when Length and Width change, the center remains in the same position. The Height of the table, on the other hand, is fix and locked as 970 mm. No parameter was created, because there was no need to make it flexible.
After setting your parameters, you can edit them inside Modify > Properties panel > Family Types.
The blue heading bars in the picture above are the groups under which you can create each parameter. Make sure you group your parameters in a logical and ordered manner (you can move parameters up or down and edit their groups if you need).
The name of a parameter is also very important. Use short but descriptive names and don’t use ‘-‘ signs because Revit may confuse them as formula values. Also keep consistency for naming conventions – will they have first letter cap, all caps or all lower case?
Notice that parameters can also be driven by formulas. In the example below, the Width was set to be half the Length. It is also possible to insert conditional statements. Conditional statements can contain numeric values, numeric parameter names, and Yes/No parameters.
Before going to the next step, test your parameters and see if the reference planes are moving the way you expected. Insert new values and hit Apply. Use values outside the anticipated range. If your framework has a glitch, now is the time to fix it.
#7 – Model and constrain the geometry
After creating the framework and the constraints, and making sure they are going according to plan, it is time to add the geometry. Go to Create > Forms Panel and select an appropriate massing tool – Extrusion, Blend, Revolve, Sweep, Void.
Draw the geometry and constrain its edges to the reference planes using the align tool. Finish the sketch and align/lock the geometry in other views if applicable.
Once you have locked the geometry to all applicable reference planes, it’s time to run additional tests to see if the family is working properly.
Avoid creating addition dimensions and reference planes inside the Sketch Mode. They will not be visible once you leave the sketch and will make it hard for you to manage the family in the future. Additionally, avoid constraining modelled elements together – always prefer to constrain modelled elements with reference planes instead. This will reduce the risk of having family crashes and corruption down the road.
Repeat the process to include all the geometry you need in the family – create a framework, constrain the framework, add geometry, constrain geometry to the framework, test it. Keep in mind that creating a family in a slow-paced manner, running constant tests, is the best way to succeed. If something goes wrong in your parametrization, you might have a hard time to find and fix the problem if you implemented several untested changes all at once.
#8 – Improve your family
Improve your family by creating additional geometry, parameters and relationships.
Add shared parameters for information you need to schedule or tag in your project.
Set materials to your geometry. If the material of an element will always be the same, select the element, go to Material field and hit the “…” to select a material. If the element may have different finishes, create and apply a parameter by clicking on the box on the right side of the Material field (marked in yellow in the picture below).
Set visibility yes/no parameters to elements if you want to be able to control if they are visible or not. To do that, select the element and define a parameter by clicking on the box on the right side of the Visible
Use nested families to make changes more efficient and shift from one family type to another using a “Family Type” parameter – see how leg types are controlled in the example below.
#9 – Add visibility controls
By selecting each element and setting a Visibility Setting, you are able to control the level of detail and the view types in which your elements will be visible. This can be useful, for example, if you want to use simplified 2D lines to represent a family in plan and elevation but wants to see all modelled components of that family in a 3D view.
For greater control and flexibility, Revit allows you to create subcategories of the any category in the family editor. Go to Manage > Object Styles and create a new subcategory. Then, select the element and apply it using the Properties Window.
#10 – Create Family Types
Before you load your family into a project, go to Modify > Properties Panel > Family Types and create default types. Use descriptive names that reflect the type parameters that are part of the family.
Now it is your turn
In this blog post we covered the main concepts and tools for you to create powerful and flexible families for your Revit projects. Now it is up to you to create your first family. Start with a simple family and go through all the steps listed above.
Creating Revit families can be intimidating at first but, once you understand the concepts and get used to the process, you will be able to explore endless design possibilities without depending on 3rd parties’ content.