AUTODESK REVIT • FAMILIES AND PARAMETERS

Nested Families — Use nested families conceptually (intro)

Learn how embedding one Revit family inside another unlocks modular, parametric design intelligence.

Historical Context & Motivation

Before parametric modeling tools existed, architects and designers assembled construction documents from isolated, static drawing elements — every door swing, light fixture, and furniture piece was drawn and redrawn manually for each new context. When Autodesk introduced Revit in 2000, the software introduced a family-based component system that treated building elements as intelligent, reusable objects rather than inert lines. This paradigm shift echoed a broader trend in software engineering — the idea that complex systems should be composed from smaller, self-contained modules that can be updated in one place and propagated everywhere.

As projects grew more complex, designers realized that many components were themselves assemblies of smaller parts. A casework cabinet, for example, contains a carcass, doors, drawers, and hardware — each with its own dimensional logic. The concept of nested families emerged to address this reality: one Revit family could be loaded inside another, creating a hierarchy of parametric intelligence that mirrors the way real buildings are assembled from sub-assemblies.

2000
Revit 1.0 Released
Charles River Software (later acquired by Autodesk) releases Revit, introducing the parametric family as the fundamental building block of BIM.
2004
Family Editor Matures
Revit 6.0 and subsequent versions expand the Family Editor, allowing users to host sub-components within a parent family and share parameters between them.
2010
Shared Parameters & Nesting
Shared parameters enable nested family data to appear in project schedules, making nested families not just visual but also data-rich for documentation and fabrication.
2018–Present
Generative Design & Advanced Nesting
Revit integrates with Dynamo and generative design tools, leveraging nested families as swappable modules in parametric scripts and optimization workflows.

The central question this lesson addresses is conceptual rather than procedural: Why would a designer embed one family inside another, and what design intelligence does that hierarchy unlock? Understanding the reasoning behind nesting is essential before you ever open the Family Editor, because a poorly planned family hierarchy can be as frustrating as a well-planned one is liberating.

Core Principles & Definitions

At its most fundamental level, a Revit family is a parametric definition of a building component — a door, a chair, a structural column — that can be placed in a project as an instance. Each instance inherits the geometry, parameters, and behavioral rules defined in the family file (.rfa). A nested family is simply a family that has been loaded into and placed inside another family's definition. The outer container is called the host family (or parent), and the embedded component is the nested family (or child). This parent-child relationship can extend multiple levels deep, though practical considerations usually limit nesting to two or three tiers.

1

Modularity

Each nested family is a self-contained module with its own geometry and parameters. Updating the child family file automatically updates every host that contains it, ensuring consistency across the project.
2

Parametric Linking

Parameters in the host family can drive parameters in the nested family through parameter linking. For example, the overall width of a cabinet host can control the width of its nested door panel.
3

Visibility Control

Nested families can be toggled on or off using Yes/No visibility parameters, allowing a single host family to represent multiple configurations — like a desk with or without a monitor arm.
4

Type Swapping

A nested family instance can be swapped for another type within the same family category. This lets designers use a single host family to offer variant options without duplicating the entire definition.
5

Scheduling & Data

When nested families use shared parameters, their data can appear in project schedules. Without shared parameters, nested family data remains invisible at the project level — an important distinction for documentation.
KEY TAKEAWAY
Think of nested families like a Russian nesting doll (matryoshka), but with a critical twist: each inner doll can change its shape, color, and size independently, and when you repaint one inner doll, every matryoshka set that contains it is updated simultaneously. The host family defines the overall composition, while each nested family retains its own parametric intelligence — the whole is truly greater than the sum of its parts.

Visual Explanation — The Nesting Hierarchy

This diagram illustrates a workstation desk as a host family containing three Level 1 nested families (Drawer Unit, Monitor Arm, Cable Tray). The Drawer Unit itself nests a Level 2 family — the Handle. Dashed lines represent parent-child relationships; the parameter flow box shows how host parameters drive nested family behavior.

The diagram above captures the essential architecture of nested families. Notice that the host family (Workstation Desk, bordered in violet) establishes the overall coordinate system and primary parameters such as Width, Depth, and Height. Each Level 1 nested family — the Drawer Unit, Monitor Arm, and Cable Tray — is a separate .rfa file that was loaded into the host's Family Editor and placed on a reference plane. The Drawer Unit goes one step further by containing its own nested child, the Handle, creating a Level 2 nesting scenario. This layered structure means that if you update the Handle family file (perhaps changing a pull style to a knob), every Drawer Unit that uses it, and every Workstation that uses that Drawer Unit, will reflect the change.

How Nested Families Work — The Mechanism

Parameter Linking — The Nervous System of Nesting

The real power of nested families is not merely visual composition — it is parametric linking. When a nested family is placed inside a host, you can associate (link) a host parameter to a nested instance parameter so that changes to the host automatically cascade into the child. Consider a host family "Custom Cabinet" with a parameter called Cabinet_Width. Inside, you've nested a "Door Panel" family that has its own parameter Panel_Width. By linking Cabinet_Width to Panel_Width, whenever a user changes the cabinet's width in the project, the door panel resizes accordingly — no manual adjustment required.

PARAMETER LINKING LOGIC
Panel_Width = Cabinet_Width − (2 × Frame_Thickness)
Where Panel_Width is the nested family parameter, Cabinet_Width is the host parameter, and Frame_Thickness is a host parameter representing the carcass frame on each side. This formula is entered in the host family's parameter association dialog.

Visibility Toggling — Configuration Without Duplication

A Yes/No parameter in the host family can be linked to the Visible property of a nested family instance. This mechanism allows a single host family to represent multiple product configurations. For instance, a desk family could include a nested monitor arm that is visible when Show_Monitor_Arm = Yes and hidden when the parameter is set to No. Instead of maintaining two separate desk families — one with a monitor arm and one without — you maintain a single, flexible definition. This reduces file management overhead and ensures that any update to the desk geometry propagates to all configurations simultaneously.

Type Swapping — The Family Catalog Approach

When a nested family has multiple types loaded into the host, you can create a family type parameter in the host that lets users select which nested type to display. Imagine a light fixture host that nests three lamp shade families — conical, drum, and globe. A single family type parameter called Shade_Style allows the user to swap between these options from the Properties panel in the project, without ever entering the Family Editor. This is conceptually similar to a drop-down menu that reconfigures the component in real time.

⚠️ Shared vs. Non-Shared Parameters
A crucial distinction: by default, parameters in nested families are invisible to project-level schedules. If you need a nested family's data — such as a hardware finish or wattage — to appear in a schedule, you must use shared parameters and check the "Shared" box when creating the parameter. This is the single most common mistake in nested family workflows.

Types of Nesting & When to Use Them

Not all nesting strategies are created equal. The way you structure your nested families depends on the design intent, the level of flexibility you need, and the downstream documentation requirements. Understanding the classification of nesting patterns helps you choose the right approach before you start building.

This decision flowchart guides you through the primary question — is the sub-component reusable? — and branches into scheduling considerations (requiring shared parameters) and type-swapping needs (requiring family type parameters). The bottom panel lists common nesting scenarios relevant to visual arts and architectural practice.
Summary of nesting patterns and their primary benefits
Nesting PatternUse CaseKey Benefit
Standard NestingA door panel inside a door family; a drawer inside a desk.Modularity — update the child once, all hosts reflect the change.
Shared NestingHardware that must appear in a finish schedule; light sources needing wattage data.Data visibility — nested component data appears in project schedules.
Type-Swap NestingA lamp shade that can be conical, drum, or globe; a chair leg that can be tapered or straight.Configuration flexibility — one host family, multiple visual options.
Visibility-Toggle NestingOptional accessories on a furniture piece; alternate detail levels.Reduced file count — a single family replaces several variants.

Worked Example — Designing a Nested Pendant Light

Let's walk through the conceptual process of designing a pendant light fixture that uses nested families. This example emphasizes design thinking and family planning rather than button-by-button instructions — the goal is to understand the decisions you make before you open the Family Editor.

Pendant Light with Swappable Shade
1
Step 1 — Identify the ComponentsBreak the pendant light into its constituent parts. A typical pendant has a canopy (ceiling mount), a cord or rod (suspension element), a shade (the decorative diffuser), and a light source (the emitter geometry and photometric data). Ask: which of these should be reusable across other fixtures?
Decision: The shade and light source are reusable; the canopy and cord are unique to this host.
2
Step 2 — Define the Host FamilyCreate the host family using the Ceiling Based.rft template. The host will contain the canopy geometry (modeled directly as solid extrusions) and a parametric cord whose length is controlled by an instance parameter called Cord_Length. The host defines the primary reference planes for positioning the nested shade below the cord.
Host parameters established: Cord_Length (instance, length), Show_Shade (instance, Yes/No), Shade_Style (instance, family type).
3
Step 3 — Create the Nested Shade FamiliesBuild three separate shade families using the Generic Model.rft template: Shade_Conical, Shade_Drum, and Shade_Globe. Each shade has its own Shade_Diameter and Shade_Height parameters. Because the shades will be swapped via a family type parameter, they must belong to the same Revit category (Generic Models) and share compatible parameter names.
Three .rfa files created, each with matching parameter names for Shade_Diameter and Shade_Height.
4
Step 4 — Load and Link ParametersLoad all three shade families into the host family. Place one instance of a shade and associate the host's Shade_Style family type parameter with the nested instance. Then link Show_Shade to the nested instance's Visible property. Link the host's cord bottom reference plane to the shade's insertion point so the shade always hangs at the correct elevation regardless of Cord_Length.
Users can now swap between Conical, Drum, and Globe shades from the Properties panel — no Family Editor access needed.
5
Step 5 — Validate in ProjectLoad the host family into a test project. Place several instances, change Cord_Length and Shade_Style on different instances, toggle Show_Shade off to verify visibility control. Check that the shade geometry does not penetrate the ceiling plane and that all parameters behave as intended across multiple instances. Schedule the light fixtures to verify that any shared parameters (e.g., wattage from the light source nested family) appear correctly.
A single pendant light family now serves as a configurable product line — three shade styles, adjustable cord, and toggleable visibility — all from one .rfa file.

Strengths & Limitations of Nested Families

Like any design strategy, nesting families involves trade-offs. A clear understanding of both strengths and limitations prevents over-engineering your families while ensuring you leverage nesting where it genuinely adds value.

Strengths vs. limitations of using nested families in Revit
StrengthsLimitations
Single-source updating: edit the nested family once, all hosts update.File management complexity increases — you must track multiple .rfa files and their interdependencies.
Reduced file count: one configurable host replaces many static families.Performance can degrade if families are deeply nested (3+ levels) or contain heavy geometry.
Type swapping provides user-friendly configuration without Family Editor access.Nested family data is invisible in schedules unless shared parameters are explicitly set up.
Visibility toggles eliminate the need for duplicate families for optional accessories.Debugging parameter links across multiple nesting levels can be time-consuming.
Encourages a systematic, modular approach to component design — similar to object-oriented programming.Team coordination is essential: if one team member edits a nested family without communication, it can break host families across the project.
⚖️ DESIGN PRINCIPLE
A useful rule of thumb: nest when reuse justifies the complexity. If a sub-component appears in three or more different host families, nesting saves significant maintenance effort. If it appears only once and never needs independent updating, modeling it directly in the host may be simpler. Think of it like deciding whether a piece of code deserves its own function: encapsulation is powerful, but premature abstraction creates unnecessary overhead.

Connection to Advanced Workflows

The conceptual foundations of nested families directly connect to several advanced Revit workflows that you may encounter in upper-level coursework or professional practice. Understanding nesting at the introductory level prepares you for these more sophisticated techniques.

How introductory nesting concepts scale into advanced Revit workflows
Introductory ConceptAdvanced Extension
Manually loading nested families into a hostUsing Dynamo scripts to programmatically generate and swap nested family types based on design parameters or data spreadsheets.
Linking host parameters to nested parameters one-by-oneBuilding formulas and conditional statements that create complex parametric behaviors — e.g., if Cabinet_Width > 900mm, use a double-door nested family.
Visibility toggling with Yes/No parametersDetail level overrides where different nested families appear at Coarse, Medium, and Fine views — e.g., a simplified box at Coarse, detailed hardware at Fine.
Standard nesting (parent-child)Adaptive component families with nested elements that respond to multiple placement points and surface geometry — used in complex facade panelization.
Shared parameters for schedulingIFC export mapping where nested family parameters are mapped to Industry Foundation Classes for interoperability with other BIM platforms.

As you move into intermediate family creation, you'll find that the conceptual clarity you develop now — understanding why components are separated, how parameter hierarchies flow, and when nesting is justified — is far more important than memorizing interface steps. Tools evolve with each Revit release, but the logic of modular, parametric composition remains constant across all versions and even across other BIM platforms like ArchiCAD and Vectorworks.

Practice Problems

PROBLEM 1CONCEPTUAL
A designer creates a bookshelf family and models the shelf brackets directly within the host family geometry rather than as nested families. The same bracket design appears in three other furniture families (a desk, a wall cabinet, and a display case). Explain the conceptual disadvantage of this approach and describe how nested families would solve the problem.
PROBLEM 2BASIC CALCULATION
A cabinet host family has a parameter Cabinet_Width = 1200 mm and a Frame_Thickness = 25 mm. A nested door panel's width is linked using the formula Panel_Width = Cabinet_Width − (2 × Frame_Thickness). Calculate the Panel_Width. If the cabinet also contains two equal nested drawers stacked vertically, and the total interior height (after subtracting 20 mm top and bottom frames) is 600 mm, what is each drawer's height?
PROBLEM 3INTERMEDIATE
You are designing a modular reception desk family. The desk can be configured with or without a transaction counter (an elevated shelf for customer interaction), and the transaction counter itself comes in two styles — curved and straight. Describe the nesting strategy you would use, including how many nested families you would create, what parameters you would define in the host, and how you would use visibility and type-swapping mechanisms.
PROBLEM 4APPLIED
An interior design firm is documenting a hospitality project with 200 guest rooms. Each room has a custom vanity with a nested faucet family. The firm needs faucet finish data (Chrome, Brushed Nickel, Matte Black) to appear in a project-wide plumbing fixture schedule. A junior designer reports that the faucet finish column is blank in the schedule. Diagnose the likely cause and explain the solution, referencing the distinction between standard and shared parameters.
PROBLEM 5CRITICAL THINKING
A colleague argues that deeply nesting families (four or more levels) is always preferable because it maximizes modularity. Critically evaluate this claim. Under what circumstances might deep nesting be counterproductive, and what principles should guide a designer's decision about how many nesting levels to use? Draw an analogy to another design or engineering domain to support your argument.

Summary — Nested Families at a Glance

Nested families are Revit families loaded inside other families, creating a parent-child hierarchy that mirrors real-world assembly logic. The host (parent) family establishes the overall structure and coordinates, while each nested (child) family is a self-contained, reusable module. Parameter linking allows host parameters to drive nested family dimensions through formulas, ensuring proportional resizing. Visibility toggles (Yes/No parameters) let a single host family represent multiple configurations, and family type parameters enable users to swap nested component styles from the project Properties panel.

The critical distinction between standard and shared parameters determines whether nested family data appears in project schedules — shared parameters are required for schedule visibility. Effective nesting strategies balance modularity against complexity: nest when a sub-component is reused across multiple hosts, but avoid excessive depth (generally limit to two or three levels) to maintain performance and debuggability. These conceptual foundations — understanding why, when, and how deeply to nest — are prerequisite to the procedural skills of building nested families in the Revit Family Editor.

Varsity Tutors • Autodesk Revit • Nested Families — Use nested families conceptually (intro)