Learning to create a Revit family is not hard at the level of clicks. It is hard in three places most tutorials skip: picking the right template set, building geometry so the component flexes correctly when sizes change, and declaring each parameter as the right kind from the start.
This article works through the whole process of building a parametric family. Every step and screenshot comes from Revit 2027, English interface.
If you are not yet clear what a family is and why it decides model quality, read what a Revit family is first. To learn it with someone marking your work, see the Revit family course. Everything else here is a practical answer to how to make a family in Revit that colleagues can reuse.
The three kinds of family, and which one is reusable
Before clicking anything, know which kind you are making. Revit has three, and only one exists as a separate file you can load into another project.
- Built into the software. Walls, floors, roofs, ceilings, stairs, railings. No separate file to load; edited only by duplicating a type and changing its settings. Their types can still be copied to another project with Manage › Transfer Project Standards.
- Loaded from a file, extension
.rfa. Doors, windows, furniture, sanitary ware. This is what the article builds, and the only kind that exists as its own file, ready to load into any project. - Built in place. For a one-off shape that exists in a single building. It goes nowhere else, and it inflates the file fast: each in-place mass is a separate family inside the file, even when ten of them are identical.
The rule in short: anything you will reuse becomes its own .rfa; anything that happens once in this project's life is built in place. The rest of this article is how to create a Revit family of the second kind.
Command names are kept in English exactly as the software shows them; they can be cross-checked in Autodesk's Revit help.
The biggest trap is in the very first dialog
Go to File › New › Family and Revit opens the template chooser. This is where people go wrong for months without noticing.
On the 2027 release this dialog opens in the English-Imperial folder, which is the inch template set. The files inside are named Baluster.rft, Casework.rft, Column.rft — no prefix, so nothing signals that they are imperial.
The metric set sits in the English folder right next to it. The default path is C:\ProgramData\Autodesk\RVT 2027\Family Templates\English. The giveaway is the Metric prefix: Metric Baluster.rft, Metric Casework.rft, Metric Generic Model.rft.
Build a component from an imperial template and load it into a metric project and it still works, but every round number becomes an awkward decimal and formulas return results that are hard to read. Checking the folder before clicking Open takes two seconds and saves hours.
Settle it once: go to File › Options › File Locations. In Default path for family template files, click Browse and pick the English folder. From then on the New Family dialog opens on the metric set. The Places button on the same tab only adds shortcuts to the left column of file dialogs; it does not change the folder that opens.
Five steps to a component that flexes
A parametric component has to change shape correctly when the numbers change. For that, the geometry must lock to a frame of reference planes, and the parameters must drive that frame. Geometry locked to its own edges will not follow.
Opening Metric Generic Model.rft creates a file called Family1 and opens the Ref. Level view. The drawing area is nearly empty: two reference planes crossing at the origin — the first piece of the frame you are about to extend.
The Family Editor ribbon is close to the in-place mass ribbon. The only difference is the last panel: instead of In-Place Editor you get Family Editor, with Load into Project and Load into Project and Close.
The solid in step four is built with the five tools on the Forms panel. Extrusion pushes a flat shape straight out and is the one used most. Blend joins two shapes at two heights, and Revolve spins a shape around an axis. Sweep runs a profile along a path, for cornices and handrails, while Swept Blend runs a changing profile. All five need a closed flat sketch on a work plane.
Revit family parameters: type or instance
The Properties panel of the Family Editor has two buttons. The upper one, Family Category and Parameters, changes the category of the whole file. The lower one, Family Types, is the door into the entire parameter system.
| No. | Part | What it does |
|---|---|---|
| 1 | The Type name field | The name of the type. It is empty until the family has a type. The three small buttons to its right create, rename and delete types |
| 2 | The four-column table | Parameter is the name, Value the number, Formula the formula, Lock the padlock |
| 3 | The row of parameter buttons | The second one is New Parameter, which opens the declaration dialog |
New Parameter opens the declaration dialog, which contains two decisions that matter.
First, family parameter or shared parameter. A family parameter lives inside the file and cannot appear in schedules or in tags. To have it show up in either, it must be declared as a shared parameter. This is why people finish a component and only then discover it cannot be scheduled.
Second, type or instance.
A few conventions worth adopting immediately. Name parameters without diacritics, short and meaningful, such as Chieu_rong — accented names run but cause trouble in formulas. Leave Discipline as Common for architectural parameters. Choose Length for dimensions, Material for materials, Yes/No for checkboxes and Text for text.
Revit family formulas and nested families
The Formula column in Family Types lets one parameter be calculated from another.
| Group | What is available |
|---|---|
| Arithmetic | Add, subtract, multiply, divide, power. Written as in maths: Chieu_rong / 2 |
| Conditional | if with three parts — test, value if true, value if false. For example if(Chieu_rong > 1200 mm, 3, 2) for the number of doors |
| Maths functions | sqrt, abs, round, roundup, rounddown and the trigonometric functions |
Three rules to remember: parameter names are case sensitive; both sides must use the same kind of unit; and a parameter driven by a formula can no longer be typed into. On units, write mm after a number compared with a Length parameter, as in the example — Revit may reject a bare number with Inconsistent units.
Nested families. One family file can load another inside it. The loaded one is called a nested family, and it saves redrawing things that already exist.
The classic case is a run of kitchen units. The handle is built once as its own file and loaded into the unit. Change the handle type in one place and every unit follows.
- Build and save the child file first, for instance the handle.
- Open the parent file and use Load Family to bring the child in.
- Place the child with the Component command and lock it to a reference plane.
- Select the child, click the small square button beside a parameter, and associate it with a parameter of the parent.
Step four is called associating the parameter. Without it the child keeps its own size no matter what the parent does, and that is the most common mistake in nesting.
Try it: build a parametric box
Stage 1 — open the right template (step 1)
Go to File › New › Family. The New menu has five entries; the one you want is Family, while Title Block and Annotation Symbol are for title blocks and annotation symbols.
The template chooser opens in English-Imperial.
| No. | Part | What it does |
|---|---|---|
| 1 | The Look in box | The open folder is English-Imperial, the inch template set |
| 2 | The file list | No file carries the Metric prefix, so nothing signals that they are imperial |
Open the Look in list, go up to the Family Templates folder, then open the English folder.
| No. | Part | What it does |
|---|---|---|
| 1 | The Look in box | Now on the English folder, the metric template set |
| 2 | The file list | Every template has the Metric prefix. Scroll down, pick Metric Generic Model.rft and click Open |
Stage 2 — build the frame and label it (steps 2 and 3)
Open the Ref. Level view in the Project Browser. On the Create tab, use Reference Plane to draw four planes forming a rectangle around the origin.
Type DI for Aligned Dimension, which also sits on the Annotate tab, Dimension panel. Dimension each pair of opposite planes, then press Esc.
Select one dimension. On the Modify | Dimensions tab, in the Label Dimension panel, click Create Parameter to open the parameter dialog and name it Chieu_rong. Do the same for the other dimension and name it Chieu_sau.
| No. | Part | What it does |
|---|---|---|
| 1 | Parameter Type | A Family parameter stays inside the family file and cannot appear in schedules or tags; a Shared parameter can |
| 2 | Parameter Data | Name is the name; Discipline the discipline; Data Type the data type, Length for a dimension; Group parameter under the group it appears in |
| 3 | Type and Instance | These two buttons decide whether the parameter belongs to the type or to the individual object. This is the most important choice in the dialog; it can be changed later, but values already set on instances may be lost |
In this dialog leave Family parameter, set Discipline to Common, Data Type to Length, and choose Type.
Stage 3 — build the solid and lock it (step 4)
The five form tools sit on the Forms panel of the Create tab.
Click Extrusion. The ribbon switches to sketch mode, where the Depth field sets how far the solid is pushed out.
The ribbon starts on the Line tool. Click Rectangle in the Draw panel and snap two opposite corners to the plane intersections. Once drawn, each edge shows an open padlock — click it to lock that edge to its plane. Lock all four, then click the green tick.
Stage 4 — add a formula, flex it and load it (step 5)
Open Family Types, click New Parameter to create a Length type parameter Chieu_cao, then click OK to close the dialog. Select the solid. In Properties, click the small button at the end of the Extrusion End field (Associate Family Parameter), pick Chieu_cao and click OK.
Open Family Types again and add an Integer parameter So_canh with the formula if(Chieu_rong > 1200 mm, 3, 2).
Flex it: set Chieu_rong to 800, 1200 and 1600 in turn and check that the solid follows and So_canh changes correctly. Create three types named 800, 1200 and 1600 using the new-type button beside Type name.
Save under an unaccented name, click Load into Project and Close, then place the component in the project with the Component command and switch between the three types to check.
If the solid does not follow when flexed, one edge is almost certainly not locked to its plane. Select the solid, click Edit Extrusion and check each padlock.
Load family into project, and what to do about name clashes
When the component is finished, load it with one of the two Family Editor buttons. Load into Project loads it and leaves the family file open, for when you are still editing. Load into Project and Close loads and closes, for when you are done.
If the project already holds a family of the same name, Revit asks what to do. There are three answers, and the wrong one breaks things at scale.
| Option | What happens |
|---|---|
| Overwrite the existing version | Replaces the family geometry and definition; every instance using it updates to the new version. Parameter values already set in the project are kept. This is how you fix things in bulk |
| Overwrite the existing version and its parameter values | Also overwrites the type parameter values with those in the family file — any type parameter edits made in the project are lost. Instance parameters are untouched |
| Cancel | Nothing is loaded. Choose this when you realise you are loading an older file by mistake |
On organising a library, four rules are enough for a small office. Split folders by category. Name files as category, then description, then size, for example CUA-DI-1C-900x2200.rfa. Keep diacritics out of file and folder names. And maintain a template project that already contains the families you use constantly.
Adding the office library folder under Options › File Locations › Places gives the Load Family dialog a shortcut straight to it, so nobody has to remember the path.
Common problems when building families
- The component breaks when resized. The geometry was locked to its own edges rather than to reference planes. It has to be rebuilt following the five steps; there is no patch.
- The Component button is greyed out. A sketch-based command is still running, such as a Ramp that was never finished.
- A parameter will not appear in a schedule or a tag. It is a family parameter and must be redeclared as a shared parameter.
- The nested component does not resize with the parent. The parameter was never associated, which is step four of nesting.
- Every number turns into an awkward decimal. The component was built from an imperial template. Check the template folder.
Frequently asked questions
Which template should I use when I do not know the category?
Metric Generic Model.rft works for most cases. But once you know the category, pick it, because the category decides where the component appears and which schedule it joins. A planter should be Planting rather than Generic Models for convenience.
Why will my loaded component not align to a wall?
A component built from a template that needs no host will not host to a wall. Wall hosting requires a wall based template, and that has to be decided when choosing the template; it cannot be changed afterwards.
Can I change a parameter from type to instance later?
Yes, in the Family Types dialog, but changing the kind can discard values already set on instances in the project. It is better to decide correctly at the start.
Will a family built in Revit 2027 open in an earlier release?
No. Revit does not open files from a newer release. If it has to go to someone on an older version, it must be rebuilt there.