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.
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.
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.
Family (.rfa)
.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).Type
Instance
Loading a Family
.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.Swapping Types
Visual Explanation — The Family Hierarchy
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.
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.
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.
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 Category | Typical Content | Host Requirement | Swap Scope |
|---|---|---|---|
| Doors | Single-flush, double, sliding, pocket, bi-fold | Wall-hosted | Any loaded Door type |
| Windows | Casement, fixed, double-hung, curtain wall panels | Wall-hosted | Any loaded Window type |
| Furniture | Tables, chairs, desks, shelving | Freestanding or face-based | Any loaded Furniture type |
| Generic Models | Custom sculptures, installations, site elements | Varies by template | Any loaded Generic Model type |
| Lighting Fixtures | Pendant, recessed, sconce, track light | Ceiling-hosted or freestanding | Any loaded Lighting Fixture type |
.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.
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.
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 : Double-Head. All twelve instances update simultaneously.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.Strengths, Limitations, and Common Pitfalls
| Strengths | Limitations / 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. |
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 Lesson | Advanced Extension |
|---|---|
| Loading a family from a file browser | Type Catalogs (.txt lookup tables) that let users select which types to load, keeping projects lean |
| Placing instances one at a time | Dynamo visual scripting to place hundreds of instances along curves, grids, or adaptive surfaces |
| Swapping types via the Type Selector | Dynamo 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 category | Shared parameters and keynote systems that enable cross-category data queries and export |
| Manual selection for batch swap | Filters, schedules, and selection sets to target instances by parameter value before swapping |
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.
Practice Problems
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.Lesson 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.