The Three Family Types: A Conceptual Framework
Every piece of building content in Revit — every wall, door, structural beam, light fixture, and custom millwork piece — belongs to one of three family types. Understanding the distinction is not academic; it determines what you can modify, how the element behaves in schedules and views, and what happens when you need to change the design. Choosing the wrong family type for a task is one of the most common sources of bloated, inflexible Revit models.
System Families: The Building's Skeleton
System Families define the fundamental building elements that Revit assembles from layers and rules rather than from external geometry files. They include:
- Walls (basic walls, curtain walls, stacked walls)
- Floors (structural and architectural)
- Roofs (by footprint, by extrusion, by face)
- Ceilings
- Stairs and Railings
- MEP Distribution Systems (duct, pipe, conduit, cable tray)
- Grids and Levels
- Reference Planes
System families cannot be loaded from an external file or saved as a standalone .RFA. They exist only within the Revit project. You create new types within a system family by duplicating an existing type (select a wall, click Edit Type > Duplicate) and modifying the type parameters — layer materials, thicknesses, wrapping behavior. You can transfer system family types between projects using Manage > Transfer Project Standards, but you cannot export or import system family types as files.
This architecture has a profound implication: when a project team needs a non-standard wall assembly (say, a 3-5/8" metal stud wall with 5/8" type-X GWB on both faces and R-19 batt insulation), they create it as a new wall type within the project by editing the wall's compound structure layers. No external file is needed, but also no file can be sent to a colleague — they must create the same type in their project by hand or via Transfer Project Standards.
Loadable Families: The Workhorse of BIM Content
Loadable families are external .RFA files created in Revit's Family Editor and loaded into projects as needed. They represent the vast majority of BIM content: doors, windows, furniture, structural columns, beams, MEP equipment, lighting fixtures, electrical devices, plumbing fixtures, casework, and virtually any discrete building component that a manufacturer or designer needs to model.
Loadable families are stored in the file system (your firm's BIM library, Autodesk's content folder at C:\ProgramData\Autodesk\RVT [year]\Libraries, or a third-party content service like Bimobject or Autodesk Seek). When you need a family in a project, go to Insert > Load Family, navigate to the .RFA file, and click Open. The family and all its types load into the project.
Creating a Loadable Family from Scratch
Go to File > New > Family. Revit presents a list of family templates (.RFT files). The template you choose determines the family's category, hosting behavior, and available connectors. Key templates and when to use them:
- Generic Model.rft: Unhosted, uncategorized geometry. Use as a starting point when you have not yet determined the category, or for annotation symbols and detail components.
- Door.rft: Wall-hosted, places into wall opening, includes standard door parameters (Width, Height, Thickness).
- Mechanical Equipment.rft: Unhosted, includes MEP connector support for duct and pipe.
- Structural Column.rft: Column-category, aligns to grids, participates in structural analysis.
- Face Based.rft: Hosts to any face (wall, floor, ceiling, sloped roof). Use for items that need to attach to surfaces without a specific hosting category.
Once in the Family Editor, build geometry using the solid creation tools: Extrusion (sketch a 2D profile, define depth), Blend (two profiles at different levels connected by interpolated faces), Revolve (profile rotated around an axis — ideal for round fixtures, columns, pipes), Sweep (profile extruded along a path — ideal for handrails, custom trim), and Swept Blend (profile changes shape along a path). Use Void versions of these tools to cut geometry.
Type Parameters vs. Instance Parameters
This is the most important concept in family authoring. Every parameter in a Revit family is either a Type parameter or an Instance parameter, and the distinction fundamentally changes how the family behaves on a project.
- Type Parameters are shared by all elements of the same family type. Change a type parameter on one element and every element of that type in the project changes simultaneously. Use type parameters for dimensions and properties that define a product model: door width, door height, beam depth, beam flange width, pump flow rate, fixture catalog number.
- Instance Parameters belong to a single placed element. Change an instance parameter on one door and only that door changes. Use instance parameters for properties that vary by location: sill height, mark number, comments, orientation, installed elevation. Structural column base and top offsets are classic instance parameters — each column may have different top and bottom constraints.
A common mistake is making dimensions instance parameters when they should be type parameters. If every 3'-0" x 7'-0" door should look identical, Width and Height must be type parameters. If they were instance parameters, each door could have a different width — creating a scheduling nightmare and a model that does not reflect a real product.
Formulas between parameters make families truly parametric. In the Family Editor, open the Family Types dialog (Create > Family Types) and click the formula field for any parameter. Examples:
- Setting frame width relative to door thickness:
Thickness / 2 - Controlling a clearance zone:
Width + 6" - Conditional visibility:
IF(Show_Hardware = 1, true, false) - Calculating weight from volume:
Volume * 490 / 1728(steel at 490 lb/ft³ with volume in cubic inches)
Adding Type Variants: Size and Material Options
A single .RFA file can contain multiple types representing different sizes or configurations. In the Family Types dialog, click New to add a type. Each type stores its own values for type parameters. A structural wide-flange beam family might contain types W8x31, W10x49, W12x65, W14x90 — each with the correct depth, flange width, web thickness, and flange thickness parameters.
Material parameters allow one family to support multiple finish options. Add a Material type parameter (parameter type: Material), assign it to the material of the solid geometry, and then set different material values for each type — or leave it as an instance parameter so users can set material per placed element.
Family Hosting: Where Elements Can Live
Hosting determines which surfaces or objects a family instance can attach to:
- Wall-Hosted: Doors, windows, electrical outlets, wall-mounted light fixtures. The family must be placed on a wall and moves with the wall. If you delete the host wall, the family is deleted too.
- Floor-Hosted: Floor boxes, floor drains, floor-embedded equipment. Placed on floor surfaces.
- Ceiling-Hosted: Light fixtures, sprinkler heads, HVAC diffusers. Placed on ceiling faces.
- Face-Based (Generic): Can host on any planar or curved face regardless of category. The most flexible option, but elements placed on a face are more fragile — if the face is deleted or significantly modified, the hosted element may become unhosted.
- Unhosted (Work Plane-Based): Furniture, freestanding equipment, structural columns. Placed on a work plane or level; not attached to any specific building element face.
- Line-Based: Used for elements that span between two points, such as structural beams, railings, and some linear MEP equipment.
Never create a wall-hosted family for an element that might need to be placed on a floor or ceiling. If the hosting requirements are unclear, use Face-Based hosting as a flexible default.
Family Categories and Their Effects
Every family belongs to a Revit category set in the Family Editor via Create > Family Category and Parameters. The category determines:
- Visibility controls: Which categories checkboxes in VG/VV toggle this family on and off.
- Scheduling: A door family in the Doors category appears in Door Schedules. A family mistakenly set to Generic Models does not appear in the Door Schedule no matter what parameters it contains.
- Cut patterns and projection: Walls, structural elements, and doors have specific cut patterns defined by their category when the view cuts through them.
- System behavior: MEP families must be in specific categories (Mechanical Equipment, Electrical Equipment, Plumbing Fixtures) for their connectors to function in Revit systems.
- Filter applicability: View filters that target the Doors category will not affect Generic Model families even if they look like doors.
In-Place Families: Custom Geometry Unique to the Project
In-Place families are created directly inside the project file for one-of-a-kind elements that exist only in this specific building: a custom reception desk, a unique architectural feature wall, a bespoke stair detail. Unlike loadable families, they cannot be loaded into other projects.
Create an in-place family via Architecture > Component > Model In-Place (or equivalent in other discipline tabs). Select the category, name the family, and you enter a dedicated modeling environment within the project — the same solid creation tools as the Family Editor. Click Finish Model when done.
Use in-place families sparingly. They cannot be scheduled by quantity (one instance = one in-place family), they inflate project file size, and they degrade performance on large projects. If you find yourself creating the same in-place family shape multiple times, convert it to a loadable family instead.
Best Practices for Family Development
- Simple geometry: Revit families are not renderings — they are coordination and documentation tools. Model only the geometry needed for coordination clearance, visual representation at the required level of detail, and schedule data. Complex NURBS surfaces and high-polygon solids slow view regeneration and NWC export.
- Meaningful naming: Family name should identify manufacturer, product line, and key specifications:
Trane-CVGF-CentrifugalChiller-400ton.rfa. Type names should identify the specific variant:CVGF400-460V-3PH. - Test on a blank project: After authoring, load the family into a new blank project. Verify all types load, all parameters display correctly in Properties, the family schedules properly, and it appears in the correct VG category. Check Section and Elevation views for correct cut patterns.
- Constrain geometry to Reference Planes: Solid geometry should be dimension-constrained to named Reference Planes, not to absolute coordinates. This is what makes families parametric — changing a parameter moves the reference plane, which moves the constrained geometry.
- Version control: Store family files in a version-controlled library (even a dated folder system works). Never overwrite a production family without archiving the previous version — a bad family update can break hundreds of placed instances project-wide.