Autodesk Revit • Families and Parameters

Placing & Swapping Families — Load families and place instances; swap types

Master the workflow of loading Revit families into projects and swapping types to iterate designs efficiently.

A building model with layered plans and dimension marks.
Inside this lesson 10 sections 5 questions 5 figures

SECTION 1

Historical Context & Motivation

Before parametric Building Information Modeling (BIM) tools arrived, architects and designers relied on drafted symbols—blocks in AutoCAD or hand-drawn legends—to represent real-world building components such as doors, windows, and furniture. Every unique object required its own drawing, and substituting one fixture for another meant erasing geometry and redrawing from scratch, a labor-intensive process that scaled poorly as projects grew in complexity. The concept of a reusable, data-rich family emerged from the recognition that most building elements share structural logic—a door is always a door, even when its width, material, or panel style varies—and that encoding that logic once should let designers produce infinite variations without redundant work.

Autodesk's development of Revit in the late 1990s crystallized this idea into a family-based parametric system in which every element placed in a model is an instance of a family type, governed by parameters that control its geometry, materiality, and metadata. This paradigm shift paralleled broader trends in object-oriented design thinking across software engineering and product design, where encapsulation and reusability became cardinal principles. For Visual Arts students accustomed to thinking about iterative form-making—swapping palettes, adjusting proportions, or testing alternative compositions—the family system offers an analogous digital toolkit: load once, place many, swap freely.

1982 • AutoCAD Blocks Emerge

Autodesk releases AutoCAD with the block concept—reusable 2-D symbol groups that can be inserted multiple times. Blocks save drafting time but carry no parametric intelligence or 3-D awareness.

1997 • Parametric Modeling Takes Root

Charles River Software (later Revit Technology Corporation) begins developing what would become Revit, envisioning an architecture tool built entirely around parametric, data-rich families rather than static geometry.

2002 • Autodesk Acquires Revit

Autodesk acquires Revit and begins integrating its family system into mainstream architectural practice. The .rfa file format becomes the standard container for loadable families.

2010–2015 • Cloud Family Libraries & Content Ecosystem

Manufacturers begin publishing BIM-ready families online. Platforms like BIMobject and Autodesk Seek let designers load families directly, dramatically expanding the variety of types available for placement and swapping.

2020s • Generative Design & Family Automation

Dynamo scripts and generative design workflows automate family placement and type swapping at scale, enabling parametric exploration of thousands of design options from a single family definition.

The central question this lesson addresses is deceptively practical: how do you bring external family files into a Revit project, place instances in your model, and then swap those instances to different types when your design direction shifts? Answering that question well means understanding the hierarchical relationship between families, types, and instances—a relationship that underpins nearly every operation you will perform in Revit.

SECTION 2

Core Principles & Definitions

Every element you see in a Revit model—from structural columns to custom art installations—belongs to a family. A family is essentially a template that defines an element's geometry, behavior, and available parameters. Within each family live one or more types (sometimes called family types), which are specific size-and-property presets—think of them as stylistic variations on a theme. When you place an element in a view, you create an instance, a concrete occurrence of that type at a particular location, elevation, and host. This three-tier hierarchy—family → type → instance—governs how data flows through a Revit project and determines what you can change globally versus locally.

1

Family (.rfa)

A reusable definition stored as a .rfa file. It contains the parametric geometry, reference planes, connectors, and parameter definitions. Families are categorized as system (built into Revit, e.g., walls), loadable (externally authored, e.g., furniture), or in-place (project-specific one-offs).
2

Type

A named preset within a family that locks specific parameter values—dimensions, materials, visibility settings. For example, a 'Single-Flush' door family might contain types '0864 × 2134 mm' and '0762 × 2032 mm.' Changing a type parameter updates every instance of that type in the project.
3

Instance

A placed occurrence of a type in the model. Each instance has its own location, orientation, and instance-level parameters (such as a door's flip state or a column's offset). Instance changes affect only that single element—other instances of the same type remain unaltered.
4

Loading a Family

The act of importing a .rfa file into a project so its types become available for placement. Loading copies the family definition into the project file; subsequent edits to the external .rfa do not automatically propagate unless you reload.
5

Swapping Types

Selecting one or more placed instances and reassigning them to a different type—either within the same family or from a different loaded family of the same Revit category. This is the primary mechanism for rapid design iteration without deleting and re-placing elements.
✦

KEY TAKEAWAY

Think of a Revit family like a master mold in ceramics: the mold defines the overall form (family), each glaze variation is a type, and every pot you actually pull from the mold and set on a shelf is an instance. Loading a family is like bringing a new mold into your studio; swapping types is like deciding to apply a different glaze to an existing pot without re-throwing it on the wheel.

SECTION 3

Visual Explanation — The Family Hierarchy

FAMILY → TYPE → INSTANCE HIERARCHYFAMILYSingle-Flush-Door.rfaTYPE A0762 × 2032 mmTYPE B0864 × 2134 mmTYPE C0915 × 2134 mmInst 1Inst 2Inst 3Inst 4Inst 5Inst 6SWAP OPERATIONInst 4 (B)→Inst 4 (C)Type Selector changeLocation, host, and instance parameters preserved; type parameters update.
The diagram shows a single family (purple outline) branching into three types (cyan, pink, amber), each spawning instances (filled boxes). The bottom panel illustrates a swap: Instance 4 changes from Type B to Type C while its position in the model remains fixed.

The diagram above visualizes the core data model you interact with every time you use Revit. Notice that the family occupies the top tier, acting as the structural container for all geometric and parametric logic. The types beneath it are essentially named configurations—each one locks a particular set of type parameters (dimensions, material assignments, visual overrides) while inheriting the shared logic of the parent family. At the lowest tier, instances are the tangible objects placed in your model views. They carry instance parameters—values unique to that specific placement, like orientation and elevation offset. The swap panel at the bottom demonstrates the key insight: reassigning an instance's type changes its inherited properties without disrupting its spatial position or host relationship, which makes type swapping an extraordinarily efficient design iteration tool.

SECTION 4

How It Works — The Load, Place, and Swap Workflow

Step 1: Loading a Family into the Project

Loading a family begins with navigating to Insert → Load Family on the Ribbon, or by using the keyboard shortcut. A file browser opens, pointing by default to the Revit content library installed with your software. You can also browse to manufacturer libraries downloaded from sites like BIMobject, NBS Source, or Autodesk's own content delivery network. When you select a .rfa file and click Open, Revit reads the family definition—its parametric skeleton, embedded types, and metadata—and copies it into the current project's internal database. From this point forward, the loaded family and its types appear in the Project Browser under the corresponding category node (e.g., Doors, Furniture, Generic Models). Importantly, loading does not automatically place any instances; it simply makes the family available for future placement.

⚠

Overwrite vs. Preserve

If you load a family that shares the same name as one already in the project, Revit presents a dialog asking whether to overwrite the existing version (and all its types) or to cancel. Overwriting updates every placed instance of that family's types to reflect the new definition—powerful but irreversible without Undo. Pay close attention to this dialog in collaborative projects.

Step 2: Placing Instances

Once a family is loaded, you place instances through the Architecture (or Structure / Systems) tab, or more commonly by selecting Component → Place a Component for generic model families. The Type Selector dropdown in the Properties palette lets you choose which type within the loaded family you want to place. As you move your cursor into a plan, section, or 3-D view, Revit shows a preview of the element snapping to relevant hosts—walls for doors and windows, floors or ceilings for face-based families, and open space for freestanding components. A single click (or click-and-drag for hosted elements) creates the instance. Repeated clicks create additional instances, each independent in position but sharing the same type definition.

Step 3: Swapping Types

Swapping types is the operation that makes family-based modeling genuinely iterative. Select one or more instances in any view (use Ctrl+click for multi-selection, or filter selections by category). With the selection active, open the Type Selector dropdown in the Properties palette. It will display every type belonging to the same Revit category that is currently loaded in the project. Choose a different type, and Revit instantly reassigns the selected instances. Their positions, host associations, and instance-parameter values remain intact; only the type-level parameters—dimensions, materials, subcategory visibility—update to match the new type. This workflow is non-destructive and fully undoable, making it ideal for exploring design alternatives quickly during schematic and design development phases.

LOAD → PLACE → SWAP WORKFLOW1 · LOAD FAMILYInsert → Load FamilyBrowse to .rfa fileFamily appears in Browser2 · PLACE INSTANCESSelect type in Type SelectorClick in view to placeInstance created at location3 · SWAP TYPESelect instance(s)Change Type SelectorPosition preservedPROPERTIES PALETTE DURING SWAPType Selector:0864 × 2134 mm ▾Instance ParametersLevelLevel 1Sill Height0 mmOrientationFace FlipDropdown Expanded0762 × 2032 mm0864 × 2134 mm ✓0915 × 2134 mm1220 × 2134 mm
Top row: the three-stage workflow from loading to placing to swapping. Bottom panel: a simulated Properties palette showing the Type Selector dropdown with four available types. The pink-highlighted row is the currently assigned type; selecting a different row executes the swap.

SECTION 5

Detailed Breakdown — Family Categories & Swap Compatibility

Not all families can be swapped with one another freely. Revit enforces swap compatibility through its category system. Every family belongs to exactly one category—Doors, Windows, Furniture, Generic Models, Lighting Fixtures, and so on—and the Type Selector only presents types from families within the same category. A door instance can be swapped to any loaded door type (even from a completely different door family), but it cannot be swapped to a window type because Windows is a separate category. Understanding categories is therefore essential when you plan which families to load: if you want maximum swappability, ensure all related design options are authored under the same Revit category.

Family CategoryTypical ContentHost RequirementSwap Scope
DoorsSingle-flush, double, sliding, pocket, bi-foldWall-hostedAny loaded Door type
WindowsCasement, fixed, double-hung, curtain wall panelsWall-hostedAny loaded Window type
FurnitureTables, chairs, desks, shelvingFreestanding or face-basedAny loaded Furniture type
Generic ModelsCustom sculptures, installations, site elementsVaries by templateAny loaded Generic Model type
Lighting FixturesPendant, recessed, sconce, track lightCeiling-hosted or freestandingAny loaded Lighting Fixture type

Common family categories and their swap compatibility boundaries

ℹ

System Families vs. Loadable Families

System families (walls, floors, roofs, ceilings, stairs) are built into every Revit project and cannot be loaded from external .rfa files. You create new system-family types by duplicating and editing existing ones within the project. However, you can still swap an instance of a wall from one wall type to another using the Type Selector, following the same selection → swap workflow described for loadable families.

For Visual Arts students, the Generic Models category is particularly valuable. If you are modeling custom installation pieces, sculptural elements, or exhibition display systems, authoring all related components under Generic Models ensures you can swap freely between them. This is analogous to working within a single material family in sculpture: bronze castings can be swapped with other bronze castings of different form, but you cannot swap a bronze piece into a ceramic slot without fundamental process changes. In Revit, the category acts as that material-class constraint.

SECTION 6

Worked Example — Gallery Lighting Redesign

Imagine you are designing a university gallery space and have initially placed pendant light fixtures throughout. The curator requests you explore track lighting as an alternative to better illuminate moveable exhibition walls. This worked example walks through the complete load → place → swap cycle.

Swapping Gallery Pendant Lights to Track Lighting

  1. 1

    Step 1 — Load the Track Light Family

    Navigate to Insert → Load Family on the Ribbon. Browse to the manufacturer's Track-Light-Adjustable.rfa file (downloaded from BIMobject). Click Open. Revit imports the family and its three types: Single-Head, Double-Head, and Triple-Head. Confirm the family appears under Families → Lighting Fixtures in the Project Browser.
    Track-Light-Adjustable family now loaded with three types.
  2. 2

    Step 2 — Select the Existing Pendant Instances

    Open the reflected ceiling plan for the gallery level. To select all pendant fixtures at once, right-click one pendant instance and choose Select All Instances → In Entire Project. Revit highlights every instance of that pendant type across all views. The status bar confirms the count—twelve instances selected in this scenario.
    12 pendant light instances selected across the project.
  3. 3

    Step 3 — Swap to the Track Light Type

    With the selection active, locate the Type Selector dropdown at the top of the Properties palette. It currently reads the pendant family name and type. Click the dropdown to expand it. Because the track light family is also categorized as a Lighting Fixture, its three types appear in the list alongside the existing pendant types. Select Track-Light-Adjustable : Double-Head. All twelve instances update simultaneously.
    All 12 instances swapped to Track-Light-Adjustable : Double-Head. Positions and ceiling hosts preserved.
  4. 4

    Step 4 — Verify and Adjust Instance Parameters

    Open a 3-D view and inspect the swapped fixtures. Because the track light family has a different geometry profile, some fixtures may need their rotation angle (an instance parameter) adjusted to point toward the exhibition walls. Select individual instances, modify the rotation in the Properties palette or by dragging the rotate grip in plan view. Confirm that the Offset from Host value (instance parameter) transferred correctly—if the pendant had a 300 mm drop and the track light expects a 0 mm offset, you may need to reset this value.
    Instance parameters verified and adjusted. Gallery ceiling plan now shows track lighting layout.
  5. 5

    Step 5 — Schedule and Document

    Open or create a Lighting Fixture schedule (View → Schedules → Schedule/Quantities). The schedule automatically reflects the swapped types, listing all twelve instances as Track-Light-Adjustable : Double-Head with updated wattage, lumen output, and cost data drawn from the new family's type parameters. No manual schedule editing is required—the BIM database propagated the changes throughout the project.
    Lighting schedule updated automatically. Project documentation reflects the new design intent.

SECTION 7

Strengths, Limitations, and Common Pitfalls

StrengthsLimitations / Pitfalls
Non-destructive iteration: swap types without deleting and re-placing elements, preserving spatial relationships and host connections.Category lock-in: you can only swap within the same Revit category. Changing categories requires deleting the old instance and placing a new one.
Batch operations: 'Select All Instances' lets you swap hundreds of elements simultaneously across an entire project.Geometry mismatch: swapping to a larger type may cause clashes with adjacent elements (e.g., a wider door cutting into a narrow wall segment).
Schedule fidelity: swapped instances immediately update in all schedules, tags, and keynotes—no manual corrections needed.Instance parameter reset: some instance parameters may not map cleanly between different families, requiring manual adjustment after the swap.
Design option exploration: load multiple families of the same category and swap to compare material palettes, form factors, or manufacturer products.File bloat: every loaded family increases project file size, even if no instances of that family are placed. Purge unused families periodically.
Reload updates: reloading an updated .rfa automatically refreshes all instances—ideal for family authors iterating on custom content.Overwrite risk: reloading can overwrite types accidentally, especially in workshared environments. Coordinate with your team.

Key strengths and common pitfalls when loading, placing, and swapping families

✦

KEY TAKEAWAY

Think of type swapping as a non-destructive filter in Photoshop: the underlying layer (your spatial layout and host relationships) stays intact while you change the appearance and data of the element above it. Just as you would not flatten a Photoshop file before trying different color grading options, you should avoid deleting and re-placing Revit instances when a simple type swap achieves the same result with zero positional risk. The discipline of keeping your project 'editable'—loaded with multiple type options, ready to swap—mirrors the non-destructive workflow that professional designers cultivate across all digital media.

SECTION 8

Connection to Advanced Family Authoring & Dynamo Automation

The load-place-swap workflow you have learned represents the foundational interaction with Revit families, but advanced practice extends each stage significantly. Family authoring—the process of creating or modifying .rfa files in the Family Editor—lets you define entirely new parametric geometry, set up custom type catalogs with dozens of presets, and embed formulas that constrain proportions mathematically. This is where Visual Arts students with an interest in computational or parametric design will find the deepest creative leverage: rather than relying on manufacturer-provided families, you author bespoke components whose parameters map to your specific aesthetic and conceptual vocabulary.

Concept in This LessonAdvanced Extension
Loading a family from a file browserType Catalogs (.txt lookup tables) that let users select which types to load, keeping projects lean
Placing instances one at a timeDynamo visual scripting to place hundreds of instances along curves, grids, or adaptive surfaces
Swapping types via the Type SelectorDynamo or Revit API scripts that automate conditional swapping (e.g., swap all doors wider than 900 mm to fire-rated types)
Working within one Revit categoryShared parameters and keynote systems that enable cross-category data queries and export
Manual selection for batch swapFilters, schedules, and selection sets to target instances by parameter value before swapping

From foundational workflow to advanced practice

As you move into advanced coursework or professional practice, the principle remains the same: the family system is designed so that intelligence lives in the definition, not in the instance. Every enhancement—whether it is a Dynamo-driven mass placement routine or a formula-driven type catalog with fifty glazing variations—simply extends the depth of that definition. The swap operation, in turn, becomes exponentially more powerful as the range of available types grows, enabling design exploration at a scale impossible with manual modeling.

SECTION 9

Practice Problems

Question 1: CONCEPTUAL

Explain the difference between a Revit family, a type, and an instance. Why does Revit maintain this three-tier hierarchy rather than treating every placed element as a unique object?
Show answer
A family is the overarching definition—a parametric template stored as an .rfa file—that encodes geometry rules, reference planes, and parameter structures. A type is a named configuration within that family, fixing specific values for type parameters such as dimensions and materials. An instance is a single placed occurrence of a type in the model, carrying its own instance parameters (position, rotation, offset). This hierarchy exists because it separates shared logic from individual placement data. Changing a type parameter propagates to every instance of that type simultaneously, which prevents the error-prone manual updating that would be necessary if every placed element were treated as a standalone object. It also dramatically reduces file complexity: instead of storing full geometry definitions for each of hundreds of similar doors, Revit stores one family definition and references it multiple times.

Question 2: BASIC

You have downloaded a custom furniture family called Lounge-Chair-Curved.rfa from a manufacturer's website. Describe the exact sequence of Revit commands to load this family and place two instances of its 'Walnut-Frame' type in a floor plan view.
Show answer
First, go to the Insert tab on the Ribbon and click Load Family. In the file browser, navigate to the folder containing Lounge-Chair-Curved.rfa and click Open. The family and all its types (including Walnut-Frame) will now appear in the Project Browser under Families → Furniture. Next, go to the Architecture tab and click Component → Place a Component (or simply type 'CM' for the keyboard shortcut). In the Properties palette, use the Type Selector dropdown to choose 'Lounge-Chair-Curved : Walnut-Frame.' Move your cursor into the floor plan view—a preview of the chair will follow the cursor, snapping to the active work plane. Click once at the first desired location to place the first instance, then click again at the second location to place the second instance. Press Escape or select Modify to end the placement command.

Question 3: INTERMEDIATE

A project contains 40 instances of a pendant light type from Family A (Lighting Fixtures category) and you need to swap 25 of them—specifically those on Level 2—to a new track light type from Family B (also Lighting Fixtures). Describe a strategy for selecting only the Level 2 instances and performing the swap efficiently. What should you verify after the swap?
Show answer
Open the Level 2 reflected ceiling plan so that the view scope isolates elements associated with that level. Select one pendant instance, then right-click and choose Select All Instances → Visible in View. This targets only the pendant instances visible in the Level 2 view—25 elements in this scenario. Verify the count in the status bar. With the selection active, open the Type Selector dropdown in the Properties palette and choose the desired track light type from Family B. Because both families belong to the Lighting Fixtures category, the swap is permissible. After the swap, verify three things: (1) Check that instance parameters like Offset from Host transferred correctly or reset them as needed. (2) Open a 3-D view to confirm that the new geometry does not clash with ceiling elements. (3) Review the Lighting Fixture schedule to confirm that 25 instances now list the new type and that electrical data (wattage, circuit assignment) is accurate.

Question 4: APPLIED

You are designing an exhibition space with modular display walls. You have authored a Generic Models family called 'Display-Panel' with three types: 'Standard' (1200 × 2400 mm), 'Narrow' (600 × 2400 mm), and 'Wide' (1800 × 2400 mm). The curator now requests a fourth type, 'Extra-Tall' (1200 × 3000 mm), and wants six of the existing 'Standard' instances in the main gallery to become 'Extra-Tall.' Outline the full workflow, from creating the new type to completing the swap.
Show answer
Begin by opening the Display-Panel family in the Family Editor (right-click it in the Project Browser and choose Edit). In the Family Types dialog, select the 'Standard' type and click Duplicate. Name the new type 'Extra-Tall.' Change the height parameter from 2400 mm to 3000 mm while keeping width at 1200 mm. Verify that the parametric geometry responds correctly—check reference planes and constraints in the elevation view of the Family Editor. Click Load into Project on the Family Editor Ribbon, which will return you to the project and prompt you to overwrite the existing Display-Panel family definition. Accept the overwrite; this adds the 'Extra-Tall' type to the project without altering existing 'Standard,' 'Narrow,' or 'Wide' instances. Now, in the main gallery plan view, select the six 'Standard' instances that should change—Ctrl+click each one, or use a selection box with a subsequent filter to isolate Display-Panel elements. With the six instances selected, go to the Type Selector dropdown and choose 'Display-Panel : Extra-Tall.' The six panels will increase in height to 3000 mm. Finally, check for clashes in a section or 3-D view—the taller panels may intersect overhead lighting tracks or ceiling elements—and confirm the schedule updates.

Question 5: CRITICAL THINKING

A colleague argues that rather than learning the family system, it is faster to model every unique element as an in-place family directly within the project because it avoids the overhead of external .rfa files and type management. Construct a reasoned counter-argument addressing scalability, swap capability, collaboration, and file performance. Under what narrow circumstances might in-place families be justifiable?
Show answer
While in-place families offer convenience for one-off elements, they carry significant disadvantages at scale. First, scalability: each in-place family is a unique definition tied to the project, so placing 50 similar elements creates 50 separate family definitions rather than 50 instances of a single family—this increases modeling time linearly and makes global edits impossible. Second, swap capability: in-place families do not appear in the Type Selector the same way loadable families do, so you cannot batch-swap them. Every design change requires editing each in-place element individually. Third, collaboration: in workshared projects, an in-place family can only be edited by one user at a time and must be checked out, creating bottlenecks; loadable families can be edited externally and reloaded without checkout conflicts. Fourth, file performance: the accumulated geometry of many in-place families inflates the project's internal database, degrading open and save times. In-place families are justifiable only when an element is truly unique to a specific project context, will never be reused or swapped, and interacts with project geometry in ways that are difficult to parameterize in the Family Editor—for example, a sculptural atrium feature that wraps around existing structural members. Even then, converting it to a loadable family after the design is finalized is considered best practice.

SUMMARY

Lesson Summary

Summary

Every element in a Revit model exists within a three-tier hierarchy: the family defines parametric geometry and parameter structure; the type locks specific dimensional and material presets within that family; and the instance is a placed occurrence at a specific location and host. Loading a family (Insert → Load Family) imports a .rfa file into the project, making its types available in the Project Browser and Type Selector. Placing instances creates concrete elements in model views, and swapping types via the Type Selector reassigns selected instances to a different type within the same Revit category, preserving position and host relationships while updating all type-level parameters.

This workflow is the backbone of non-destructive design iteration in BIM: rather than deleting and re-placing elements, you load alternative families, select existing instances (individually or via Select All Instances), and swap in a single operation. Schedules, tags, and documentation update automatically. Key pitfalls include category incompatibility (you cannot swap across categories), geometry clashes after swapping to larger types, and file bloat from accumulating unused families. Mastering this cycle—load, place, swap—prepares you for advanced family authoring, Dynamo-driven automation, and collaborative BIM practice.

Varsity Tutors • Autodesk Revit • Placing & Swapping Families — Load families and place instances; swap types