Creating a family in Revit starts with opening the Family Editor, selecting the right template for your component, building the geometry with reference planes and extrusions, adding parameters to control dimensions and behavior, and loading the finished family into your project. The process is straightforward once you understand the logic behind templates, reference planes, and parametric constraints.
Open the Family Editor
From the Revit home screen or an open project, go to File > New > Family. This launches the Family Editor, a separate environment dedicated to building and testing custom components. You’ll immediately be prompted to choose a template file (.rft), which is the single most important decision in the process because it determines how your family behaves when placed in a project.
Pick the Right Template
Revit ships with dozens of family templates organized by category (doors, windows, furniture, generic models, and so on). The template you choose controls two things: the category your family belongs to (which affects scheduling, visibility, and graphic overrides in a project) and whether the family needs a host element to be placed.
Templates fall into a few broad groups:
- Host-based templates (wall-based, ceiling-based, floor-based, roof-based) require a host element to already exist in the project. A wall-mounted light fixture built from a wall-based template can only be placed on a wall. If no wall is present, you cannot place the family.
- Standalone templates are for components that are not host-dependent. A standalone family can be placed anywhere in the model and dimensioned to other elements freely. Freestanding furniture, equipment, and site objects typically use standalone templates.
- Face-based templates create families that attach to any surface regardless of its orientation. These families can also cut complex openings in their hosts, making them useful for MEP penetrations or specialty fixtures that might sit on a wall, floor, or angled surface.
- Line-based templates use a two-click placement method (pick start point, pick end point). These work well for linear elements like cable trays, countertops, or detail components that span a distance.
If you are unsure, the Generic Model template is a safe starting point for practicing. For production work, always pick the template that matches both the correct category and the correct hosting behavior.
Set Up Reference Planes
Before drawing any geometry, lay down reference planes. These are the invisible skeleton of your family. Every dimension and constraint you add later will snap to a reference plane, not directly to the solid geometry. This is what makes a family truly parametric: when a parameter value changes, the reference planes move, and the geometry follows.
At minimum, create reference planes for the overall width, depth, and height of your component. Use the “Is Reference” property on each plane to label it (Left, Right, Front, Back, Top, Bottom, Center) so Revit knows how to align and dimension the family when it is placed in a project. Lock your dimensions to these planes using the small padlock icon that appears after you place an aligned dimension.
Getting the reference plane framework right before you touch any extrusions saves enormous time. If you jump straight into drawing solids and try to add parameters afterward, you will often end up with geometry that breaks or moves unpredictably when you flex the parameters.
Build the Geometry
With reference planes in place, switch to the Create tab and choose a solid form. Extrusion is the most common starting point: you draw a 2D profile and Revit projects it to a depth you specify. Other form options include Blend (transitions between two different profiles), Revolve (spins a profile around an axis), Sweep (pushes a profile along a path), and Swept Blend (pushes a changing profile along a path).
Draw your profile sketch so that its edges align with and lock to your reference planes. Use the Align tool and click the padlock to lock each edge. This is the step most beginners skip, and it is the reason their families break when parameters change. Every edge of your geometry should be constrained to a reference plane, and every reference plane should be dimensioned and labeled.
For families that need voids (think a window cut in a wall, or a recess in a piece of furniture), use the Void Forms tools on the Create tab. Draw the void geometry, then use “Cut Geometry” to subtract it from the solid.
Add Parameters
Parameters are the variables that make a family adjustable. Select a dimension you placed between two reference planes, then click “Label” in the options bar and choose “Add Parameter.” Give it a clear name (Width, Height, Seat Depth) and choose whether it should be a Type parameter or an Instance parameter.
A Type parameter holds the same value for every instance of that family type in your project. Think of catalog-level properties: model number, standard width, material finish. If you change a Type parameter, every instance of that type updates at once. An Instance parameter is unique to each individual placement. Serial numbers, installation zones, or a piece of furniture that needs to stretch to different widths in different rooms are all Instance parameters. Changing one does not affect the others.
You can also create parameters that do not drive geometry at all but carry data for schedules and tags. A “Manufacturer” text parameter or a “Cost” currency parameter, for example, will show up in project schedules without affecting the 3D shape.
For parameters that need to appear in multi-category schedules or tags shared across different family categories, use Shared Parameters. These are defined in an external text file and can be loaded into any family or project. They take a few extra steps to set up but are essential for consistent data management across large projects.
Add Formulas for Smart Behavior
Revit lets you write simple formulas in the Family Types dialog so that one parameter can drive another. For example, if you want the shelf depth of a cabinet to always equal half the overall depth, set the Shelf Depth formula to “Depth / 2.” You can use conditional statements too: “if(Width > 900, 2, 1)” would set a mullion count to 2 when the width exceeds 900mm.
Formulas are powerful for building families that maintain correct proportions and automatically add or hide components as dimensions change. Use Yes/No (checkbox) parameters combined with visibility controls to toggle parts of the geometry on and off.
Flex and Test
Before loading the family into a project, open the Family Types dialog (Create tab > Properties panel > Family Types) and change every parameter to its minimum, maximum, and a few mid-range values. After each change, click Apply and watch the geometry in the editor. If anything breaks, stretches the wrong way, or throws a constraint error, fix it now. This testing step, called “flexing,” is the quality control gate for parametric families. It is far easier to diagnose and repair constraint issues in the Family Editor than after the family is loaded into a live project.
Control Visibility and Detail Level
A family that looks great in 3D can slow your project to a crawl if Revit has to calculate complex geometry in every plan and section view. Use 2D symbolic lines to represent complex 3D shapes in plan views. This prevents Revit from projecting detailed 3D geometry into model views, which is one of the most effective performance optimizations for large projects.
In the Family Editor, go to Create tab > Visibility/Graphics and control which geometry appears at Coarse, Medium, and Fine detail levels. A simple rectangular outline at Coarse level and the full detailed geometry at Fine level keeps your project responsive while still providing detail when you zoom in. Also avoid importing heavy CAD files (DWG, SAT) into your families. Imported geometry inflates file size and does not participate in Revit’s parametric framework. If you must reference CAD geometry, use it as a tracing guide and then rebuild the shapes with native Revit tools.
Load Into Your Project
When the family is ready, click “Load into Project” on the Create tab. If you already have a project open, the family lands directly in your project browser under the appropriate category. You can then place it using the Component tool on the Architecture or Structure tab, or from the project browser by dragging it into a view.
If you need to make changes later, select any instance of the family in the project, click “Edit Family” on the ribbon, make your adjustments in the Family Editor, and click “Load into Project” again. Revit will ask whether you want to overwrite the existing version. All placed instances update automatically.
Save the .rfa file to a shared library folder so your team can access it. Organizing families into folders by category (Furniture, Lighting, Structural Framing, etc.) and using consistent naming conventions will save significant time on every future project that reuses those components.

