AUTODESK REVIT • FAMILIES AND PARAMETERS

Creating Family Types — Create family types and test flexing behavior

Master the art of building parametric family types that flex predictably to accelerate your design workflow.

Historical Context & Motivation

Before parametric modeling software existed, architects and designers drafted every variation of a building component — a door, a window, a piece of furniture — as a separate drawing. If a client wanted a narrower window, the designer literally redrew it from scratch. This tedious redundancy consumed enormous amounts of time and introduced inconsistencies across drawing sets. The emergence of Building Information Modeling (BIM) in the late twentieth century promised a radically different paradigm: a single intelligent model where changing one dimension would ripple through every affected view, schedule, and detail automatically.

Autodesk Revit, first released in 2000 by Charles River Software, was conceived from the ground up as a parametric BIM platform. Unlike AutoCAD — where geometry is essentially a collection of lines and arcs — Revit treats every building element as a family: a rule-driven template that can generate multiple family types (sometimes called "type variations") from a single definition. Understanding how to create and test these types is foundational to professional Revit work and, increasingly, to digital design in the visual arts.

1975
BIM Concept Proposed
Charles Eastman at Carnegie Mellon publishes early research on the Building Description System, laying the theoretical groundwork for parametric building databases.
2000
Revit 1.0 Released
Charles River Software launches Revit with a parametric change engine that propagates edits instantly — a core innovation that makes family types viable at scale.
2002
Autodesk Acquires Revit
Autodesk purchases the platform and accelerates its integration into the AEC industry, broadening the family system with system, loadable, and in-place family categories.
2010–Present
Parametric Families in Visual Arts
Exhibition designers, set designers, and installation artists adopt Revit families to prototype variable spatial elements — from gallery partitions that flex in height to stage sets with interchangeable components.

The central question this lesson addresses is deceptively simple: how do you create multiple variations of a Revit family and verify that each variation behaves correctly when its parameters change? Answering it well separates novice Revit users from those capable of producing robust, production-ready content.

Core Principles & Definitions

Before diving into the mechanics, you need a clear vocabulary. A Revit family is a template file (.rfa) that defines the geometry, parameters, and behavioral rules for a category of building elements — think of it as a master mold from which individual pieces are cast. Within that family, a family type is a named preset of specific parameter values: a particular width, height, material, or any other variable you've exposed. When you load a family into a Revit project, each type appears as a selectable option in the Type Selector — the dropdown you click when placing a door, window, or furniture piece.

1

Family (.rfa)

The parametric template file containing geometry constrained by reference planes, dimensions, and formulas. One family can host many types.
2

Family Type

A named set of parameter values within a family. For example, a "Door" family might include types "900 × 2100" and "1200 × 2100," each describing a different size.
3

Parameters

Named variables — such as Width, Height, or Material — that control the family's geometry and metadata. Type parameters apply uniformly to every instance of that type; instance parameters can vary per placement.
4

Flexing

The process of changing parameter values to test whether the geometry updates correctly — no broken constraints, no overlapping elements, no error messages. Flexing is essentially the "stress test" for your family.
5

Reference Planes & Constraints

Non-printing datum planes to which geometry is locked. They form the skeleton that allows geometry to stretch, shrink, or reposition when parameters change.
KEY TAKEAWAY
Think of a family as a cookie cutter and each family type as a different size of that cutter. The cutter's shape (parametric logic) stays the same, but its proportions change per type. Flexing is like pressing the cutter into dough of varying thickness to confirm it still cuts cleanly every time — if the dough tears or the shape distorts, the cutter needs refinement.

Visual Explanation — Anatomy of a Family Type

The diagram above illustrates how a single family file (Custom Table.rfa) generates three types — Small, Medium, and Large — each with distinct parameter values. The bottom row shows the results of flexing: Types A and B pass their geometry checks (green dashed borders), while Type C reveals a constraint error (red dashed border) that the designer must resolve before the family is production-ready.

Notice how the family file sits at the top of the hierarchy, acting as the single source of geometric logic. Each family type inherits the same reference-plane skeleton and constraint rules but populates them with different numeric and material values. The flexing test row at the bottom represents the critical quality-assurance step: switching between types in the Family Editor and verifying that the geometry regenerates without errors. A failed flex test — represented here by the red dashed border on Type C — signals that a constraint is over-determined, an equality is unsatisfiable at that size, or geometry is colliding in ways the parametric logic cannot resolve.

How Family Types Work — The Parametric Engine

Revit's parametric engine operates on a system of constraints — dimensional locks, alignments, and formulas that tie geometry to reference planes. When you define a type parameter such as Width = 1200, the engine evaluates every constraint that references Width and repositions the dependent geometry accordingly. If any constraint produces a contradiction — for instance, a minimum clearance rule that cannot be satisfied at the given Width — the engine throws a warning. Understanding this mechanism is essential because the order in which you build constraints directly determines whether your family flexes successfully.

Parameter Types and Scope

Revit distinguishes between type parameters and instance parameters. A type parameter is shared by every instance of that type placed in the project — change the Width of "Type B: Medium" and every Medium table in the model updates. An instance parameter, by contrast, can differ from placement to placement: you might allow the user to override the table's rotation angle per placement without affecting the others. When creating family types, your primary concern is type parameters, because each type is essentially a saved snapshot of all type-parameter values.

Formula-Driven Parameters

PROPORTIONAL DEPTH FORMULA
Depth = Width × 0.667
Where Depth is derived from Width by a fixed ratio. In Revit's formula syntax this is entered as Width * 0.667 in the formula column of the Family Types dialog.
CONDITIONAL VISIBILITY
Show_Stretcher = if(Width > 1500, 1, 0)
A Yes/No parameter that controls the visibility of a structural stretcher bar. When Width exceeds 1500 mm, the stretcher appears to reinforce the tabletop. This is entered as if(Width > 1500 mm, Yes, No) in Revit's formula field.
🎨 Visual Arts Tip
For exhibition furniture or gallery partitions, formulas let you tie panel thickness to panel height for structural plausibility — a detail that matters when fabricators build from your Revit model. Even if you never calculate structural loads, maintaining proportional relationships ensures your designs look right at every scale.

Detailed Breakdown — The Flexing Workflow

Creating a family type is only half the job; the other half — and arguably the more important half — is flexing. Flexing means systematically changing parameter values across all your types and verifying the geometry updates without errors. Professional Revit content creators flex at multiple stages: after adding each new constraint, after introducing formula-driven parameters, and in a final comprehensive pass before loading the family into a project.

This flowchart traces the complete flexing workflow. Note the iterative loop: when an error is detected during Step 4 (Flex), you return to Steps 1–2 to debug the constraint logic before attempting to flex again. The checklist at the bottom summarizes the four critical scenarios every family type should be tested against.

Step-by-Step Type Creation in the Family Editor

  1. Open Family Types dialog — in the Family Editor ribbon, click Create > Family Types (or press keyboard shortcut). The dialog lists all current types and their parameter values in a spreadsheet-like interface.
  2. Add a new type — click New... at the top of the dialog. Enter a descriptive name such as "1200 × 800 Walnut" that communicates key parameter values at a glance.
  3. Set parameter values — with the new type selected, enter values for Width, Depth, Height, Material, and any other exposed parameters. Formulas will compute automatically for derived parameters.
  4. Apply and verify — click Apply (not OK) to update the geometry in the background views while keeping the dialog open. Switch to a plan or 3D view behind the dialog to inspect the result.
  5. Repeat for each type — create all planned types, then cycle through each one using the type dropdown at the top of the dialog, clicking Apply after each switch to confirm the geometry regenerates correctly.

Worked Example — Creating a Gallery Pedestal Family

Imagine you are designing a series of gallery pedestals for a contemporary art exhibition. The curator wants three sizes — Small (for jewelry), Medium (for sculpture), and Large (for mixed-media pieces) — and the fabricator needs each size fully documented in Revit with accurate dimensions and material data. Let's walk through the process of building this family with three types and flexing each one.

Gallery Pedestal Family — Three Types with Flex Testing
1
Step 1 — Start a New FamilyOpen Revit and choose File > New > Family. Select the Metric Generic Model.rft template (or the Imperial equivalent). This template provides two intersecting reference planes — the horizontal and vertical center — which you'll use as the origin for all geometry.
A blank Family Editor workspace opens with center reference planes visible.
2
Step 2 — Add Reference Planes for Width and DepthIn the plan view (Ref. Level), draw two vertical reference planes equidistant from the center to define the left and right edges (Width). Draw two horizontal reference planes equidistant from the center to define the front and back edges (Depth). Add equality constraints (EQ) between each pair to keep the geometry centered. Dimension between the outer planes and label each dimension: "Width" for the horizontal span, "Depth" for the vertical span.
Width and Depth are now type parameters visible in the Family Types dialog.
3
Step 3 — Create the Extrusion GeometrySwitch to the front elevation view and draw a rectangle snapped (locked) to the Width reference planes. Set the extrusion's bottom to the Ref. Level and dimension the top to create a "Height" parameter. Lock the sketch lines to their respective reference planes using the padlock icon — this is the critical step that makes the geometry parametric. In the plan view, lock the extrusion's depth sketch lines to the Depth reference planes.
A simple rectangular extrusion is fully constrained to Width, Depth, and Height.
4
Step 4 — Define Three Family TypesOpen the Family Types dialog (Create > Family Types). Click New... and name the first type "Small — 300 × 300 × 900". Set Width = 300, Depth = 300, Height = 900. Create a second type "Medium — 450 × 450 × 750" and a third "Large — 600 × 600 × 600". Optionally add a Material parameter of type "Material" and assign Painted White, Raw Birch Plywood, and Brushed Stainless Steel to each type respectively.
Three family types with distinct parameter sets are listed in the dialog.
5
Step 5 — Flex Each TypeWith the Family Types dialog open, select "Small" from the type dropdown and click Apply. Look at the 3D view: the pedestal should display as a 300 × 300 × 900 box. Switch to "Medium" and apply — the box should shrink in height and widen. Finally switch to "Large" — the box should become a 600 × 600 × 600 cube. If any switch triggers a Revit warning dialog ("Constraints not satisfied"), you have an over-constrained or under-constrained dimension. Return to the elevation and plan views, check that all sketch lines are locked to reference planes, and verify your equality constraints are intact.
All three types flex cleanly — the family is ready to be loaded into the project.

Strengths, Common Pitfalls, and Comparisons

Revit family types offer tremendous workflow advantages, but they come with pitfalls that can frustrate newcomers — especially designers from visual arts backgrounds who may be more accustomed to direct-modeling tools like SketchUp or Rhino. The following table outlines the key strengths and limitations of the family type system.

Strengths, limitations, and mitigations for Revit family types
StrengthsLimitationsMitigation
One file manages dozens of variations — no file-proliferation chaosComplex families with many types can become slow to open and editLimit types to genuinely needed sizes; use instance parameters for one-off adjustments
Schedule data (sizes, materials, costs) updates automatically per typeIncorrect parameter grouping can cause schedule fields to be blank or misalignedAlways assign parameters to the correct group (Dimensions, Materials, Identity Data, etc.)
Formula-driven relationships enforce design intent across all typesCircular references in formulas cause Revit to reject the family outrightMap parameter dependencies linearly; never reference a parameter within its own formula chain
Flex testing catches errors before the family reaches the project environmentForgetting to flex is the #1 source of family errors in productionAdopt a habit: flex after every constraint change, not just at the end
Types appear as dropdown options in the project, simplifying placement for team membersNaming conventions can become inconsistent across different family authorsEstablish a firm naming standard (e.g., "Width × Depth × Height — Material") and enforce it
KEY TAKEAWAY
In sculpture, you might test a maquette at small scale before committing to the full-size piece — probing for structural weaknesses, visual imbalances, and material behavior. Flexing a Revit family is the digital equivalent: a low-risk rehearsal that exposes problems before they become expensive fabrication errors or project-wide coordination failures.

Connection to Advanced Family Concepts

Once you have mastered the fundamentals of creating family types and flex-testing them, the next layer of complexity involves shared parameters, nested families, and type catalogs. These advanced features build directly on the type-creation skills you've developed in this lesson — each one is essentially a more powerful way to manage the same parametric logic.

Progression from fundamental type creation to advanced family management
This LessonAdvanced Extension
Types defined manually in the Family Types dialogType Catalogs (.txt) — external text files that auto-generate hundreds of types on load, used for product libraries
Parameters scoped within a single family fileShared Parameters — parameters stored in an external file and reusable across families, enabling cross-family scheduling
Single-geometry family with dimensional variationNested Families — swapping sub-components (e.g., different leg styles) within a host family using a family-type parameter
Flex testing done manually by switching typesDynamo Scripting — automating flex testing by programmatically iterating through parameter ranges and flagging failures

For visual arts students, the most immediately relevant advanced topic is often nested families. Consider an exhibition display system where the base pedestal is one family and the vitrine (glass case) is another. By nesting the vitrine inside the pedestal family, you can create types like "Pedestal with Vitrine" and "Pedestal Open Top" within a single host family — all while maintaining independent flex behavior for each nested component. This modular approach mirrors the compositional thinking central to visual arts practice: assembling complex wholes from discrete, well-crafted parts.

Practice Problems

PROBLEM 1CONCEPTUAL
Explain the difference between a family and a family type in Revit. Why is it more efficient to create multiple types within one family rather than making separate family files for each variation?
PROBLEM 2BASIC CALCULATION
You are building a shelf bracket family with a formula-driven parameter: Bracket_Depth = Shelf_Width × 0.75. You create three types with Shelf_Width values of 200 mm, 400 mm, and 600 mm. What will the Bracket_Depth be for each type?
PROBLEM 3INTERMEDIATE
You have created a picture frame family with Width and Height type parameters. After adding a fourth type ("Panoramic — 1800 × 400"), the geometry breaks when you flex to it: the inner mat opening overlaps the frame edge. Describe a systematic debugging strategy using reference planes and constraints to resolve this issue.
PROBLEM 4APPLIED
An exhibition designer asks you to create a modular gallery partition family with four types: Short (1200 mm high), Standard (2400 mm), Tall (3000 mm), and Extra-Tall (3600 mm). The partition width is fixed at 1200 mm. For structural reasons, partitions taller than 2400 mm should automatically include a visible mid-height cross brace. Describe the parameters, formula, and visibility controls you would implement, and outline your flexing strategy.
PROBLEM 5CRITICAL THINKING
A colleague argues that creating family types is unnecessary — they prefer to use a single default type and modify instance parameters on each placement in the project. Construct a nuanced argument for when family types are clearly preferable, when instance parameters are more appropriate, and identify a scenario where a hybrid approach (some type parameters, some instance parameters) provides the best outcome for a visual arts project.

Lesson Summary

This lesson explored how to create family types in Autodesk Revit — named presets of type parameter values within a single family file (.rfa). We examined the historical evolution from manual drafting to parametric BIM, defined the core vocabulary (family, type, parameter, constraint, reference plane), and traced the complete workflow from building reference-plane skeletons to assigning formula-driven parameters that enforce proportional relationships across types.

Critically, we emphasized that flexing — the systematic testing of each type by switching parameter values and verifying geometry integrity — is the quality-assurance step that separates reliable families from fragile ones. The flexing checklist (minimum values, maximum values, intermediate values, and visibility toggles) provides a repeatable protocol for validation. Looking ahead, these foundational skills prepare you for advanced topics such as nested families, type catalogs, and shared parameters — each of which extends the parametric logic you've learned here into larger, more complex modeling ecosystems.

Varsity Tutors • Autodesk Revit • Creating Family Types — Create family types and test flexing behavior