Introduction guide to the concept of the nested family applied to a set of furniture objects

Nested family 

In this tutorial we will start to introduce the concept of the nested family by uniting various furniture objects into a single parametric family, which as a performance output has a numeric variable in the number of objects of the same.

We are talking about the classic table example, with three, four or more chairs, but the concept can easily be applied to many other examples.

Remember that the creation of BIM objects, commonly called families in Revit is fundamental to complete the 3D BIM models and for their correct functioning.

BIM Objects are commonly searched on the Internet to be inserted in a Revit design environment as Family without being modified in any way and often ignore its fundamental characteristics, how they have been created, the parameters use, the objectives they must meet, and their potential for interaction with the 3D model under construction.

Unlike a ".dwg" file from Autocad, or a ".ifc" file, an ".rfa" file (Revit's BIM families are ".rfa" files, Revit's BIM projects are files ". rvt ") when a "BIM Family"object is inserted into a 3D Parametric Model of the project, the latter is enriched with all the information contained in the inserted object, which can therefore be interrogated, modified, accounted for, etc.

Whether they are interior design objects such as chairs, tables, armchairs, and sofas, or real Architectural models such as doors, windows, textures, and coatings, etc. Therefore, we need to understand the characteristics to better take advantage of the potential and integration with the main BIM model that will host them.

The numeric variable of the nested family

The nested family is a fundamental aspect in creating particularly complex objects.

BIM offers the possibility of enriching a project with multiple information, but this complexity to operate correctly without being redundant must be managed correctly: the Revit family must therefore be built according to specific rules to guarantee the final performance assigned.

One of the systems that underlie the construction of a complex Revit Family, is the concept of nesting (inserting), one or more families within another in order to simultaneously control the parameters and, thus, the final performances.

As always, the best thing is to exemplify, so we will dedicate this tutorial to the creation of a funiture piece, consisting of a table with chairs that as a functional output has the possibility of varying the seating number.

We will start by downloading two .rfa that have already been crated, or rather, one table and one chair.


1 imm

                                                                                       Revit – nested family – numeric variable 1


Let's open the two files at the same time and upload the IM58.rfa chair inside the T160.rfa table simply by selecting the first one and typing the command "load in the project" or "load in the project and close" if you want to close this family.

Place the chair inside the table view and switch to plan view.

The chair family is now nested inside the table family; therefore, in order to have a new family that is different from both of the native families, we will specifically save and rename it.
We align the chair to the table as if it were the first of a series of chairs that must be positioned around it.


2 imm

                                                                                     Revit – nested family – numeric variable 2


Now, we need to copy the chair in rotary motion around the center of the table, but the variable (parameter) that we have to insert is precisely the number of chairs we want to allocate to our furniture solution, therefore:

-    We will use the “Matrix” command from the Edit tab;
-    We will select “Radial” (since the repetition of the object must be circular);
-    We will keep “Group and associate” marked;
-    We will select “Last”;
-    We will position the centre of the rotation in correspondence to the table (intersection of the main plans);
-    We will type 360 in “Angle” and Send.


3 imm

                                                                                       Revit – nested family – numeric variable 3


This generates a radial matrix of the chair object in the 3 elements (given by default), which is displayed both inside the active function bar and along the generation line of the chair object copy path.


4 imm

                                                                                        Revit – nested family – numeric variable 4


Leaving the open command, changing the number on the path we will change the number of chairs that generates the matrix around the table. We can say that the matrix command functions as a parametric grouping since it contains the already prepared numeric variable.

So, let’s try to increase the number of seats from 3 to 5.
We see that the matrix works properly. 

5 imm

                                                                                        Revit – nested family – numeric variable 5


We need to explain another detail. 
The chairs generated are part of a graphical parametric grouping (Matrix) and its behavior will be subject to the Matrix guidelines as long as it remains within this grouping. Therefore, this must not be modified.

This is graphically highlighted by selecting a single chair, which in addition to becoming blue will appear surrounded by a dotted line. 

6 imm

                                                                                          Revit – nested family – numeric variable 5 


Now we must link the inherent property of the array command to generate a numeric variable of the objects to a parameter that will govern its operation (it will tell you how many chairs it will generate) and which must appear among the "Table + chairs" family properties.
The procedure is very simple and very similar to what we have seen previously for the creation of a new parameter:
               -    We will select the matrix path;
               -    We will select “Add parameter” from the “Label text” drop-down menu


7 imm

                                                                                         Revit – nested family – numeric variable 6


In the properties tab that appears, type the name of the new parameter, which we will call "Number of chairs".

We note that the fields "Discipline" but above all "Type of parameter" can not be changed, this is because the only variable that can be associated with the Matrix is an integer number.

In this specific case, it is important to select "Instance". This will allow us, as we will see later, to change the number of chairs in our family within a project environment, without having to access the type properties.


8 imm

                                                                                          Revit – nexted family – numeric variable 6


We can now verify that the new parameter "Number of chairs" has been generated and that it works correctly:
                   -    We access the “Family Type” menu from the “Properties” tab;
                   -    We check that the new parameter is correctly grouped in “Other”;
                   -    We try to change the number, for example from 5 to 6;

The association applied between the parameter and the matrix is correct, the performance output of the predetermined family is achieved.


9 imm

                                                                                         Revit – nested family – numeric variable 7


In conclusion, we try to insert our family within a design environment.

We select it and note that the parameter "Number of chairs" appears in the property bar.

As said before, having generated this parameter as “Instance”, this is can now be immediately changed without entering the type properties.
We will now try to change the number of seats, for example from 6 to 4 and let's see the result.

10 imm

Everything works correctly.

Technical staff Syncronia

Syncronia Magazine

Editore: Syncronia SRL - Via Enrico Morozzo della Rocca, 8 - 20123 Milano Tel. +39 02 36752 234‬ Fax: +39 02 36752 235‬

Proprietario: STRIM Holding SRL

Direttore: Marco Mignatti

Hosting: Aruba SPA