News

How to create a Revit family, from template to parameters and formulas

How to create a Revit family: pick the metric template, lock geometry to reference planes, declare type and instance parameters, write formulas, load it in.

  • Dr. Nguyen Manh Tuan
  • 15 min read
The New Family dialog as it opens in Revit 2027: the English-Imperial folder is already showing, and this is where the job goes wrong if you click Open straight away Photo: Captured on Revit 2027 at the Institute of Information Technology in Civil Engineering

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 following Chapter 11 of the Institute's textbook Autodesk Revit 2027 for Architectural Documentation. 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.

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 travels to another project.

The three kinds of Revit family Photo: The three kinds of family, how far each one can be reused, and the kind this article builds
  • 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.
  • Loaded from a file, extension .rfa. Doors, windows, furniture, sanitary ware. This is what the article builds, and the only kind that carries across projects.
  • 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 full path on the machine used for the book 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 Options › File Locations › Places and add the path to the English folder. From then on the New Family dialog opens in the right place.

Five steps to a component that flexes

This is the single most important principle in family building, and it separates careful work from sloppy work.

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.

Five steps to a component that flexes correctly Photo: The five steps in order, the last of which is the one most often skipped

Step five is not optional. A component that has never been flexed will break the first time someone resizes it, and that happens mid-project when fixing it is expensive. Flexing it the moment you finish is the cheapest test there is.

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.

Declaring 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.

The Family Types dialog of a newly created family Photo: Family Types with its three areas numbered
No.PartWhat it does
1The Type name fieldThe 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
2The four-column tableParameter is the name, Value the number, Formula the formula, Lock the padlock
3The row of parameter buttonsThe 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.

Type parameters and instance parameters Photo: The two kinds of parameter, how to choose, and an example on a run of kitchen units

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.

Formulas and nested families

The Formula column in Family Types lets one parameter be calculated from another.

GroupWhat is available
ArithmeticAdd, subtract, multiply, divide, power. Written as in maths: Chieu_rong / 2
Conditionalif 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 functionssqrt, 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.

On where to use them: write formulas for geometric relationships that are certain, such as a handle always centred on a door. Do not write them for relationships that might change, such as deriving cabinet height from width. A wrong formula makes a component rigid rather than useful.

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.

  1. Build and save the child file first, for instance the handle.
  2. Open the parent file and use Load Family to bring the child in.
  3. Place the child with the Component command and lock it to a reference plane.
  4. 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

This is exercise 21 of the chapter, condensed into four stages. Each stage shows the dialog you will actually see on screen.

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 File New menu in Revit 2027 Photo: File › New: the Family entry is the one used here

The template chooser opens in English-Imperial. Switch to the English folder and pick Metric Generic Model.rft.

Stage 2 — build the frame and label it (steps 2 and 3)

On the Create tab, use Reference Plane to draw four planes forming a rectangle around the origin.

Use Dimension between each pair of opposite planes. Select each dimension, open the Label box on the Options Bar and choose Add parameter to label them Chieu_rong and Chieu_sau.

The Parameter Properties dialog Photo: The parameter dialog with its three areas numbered
No.PartWhat it does
1Parameter TypeA Family parameter stays inside the family file and cannot appear in schedules or tags; a Shared parameter can
2Parameter DataName is the name; Discipline the discipline; Data Type the data type, Length for a dimension; Group parameter under the group it appears in
3Type and InstanceThese two buttons decide whether the parameter belongs to the type or to the individual object. Changing it later means rebuilding the parameter

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.

The Forms panel with the five form tools Photo: The Forms panel: Extrusion, Blend, Revolve, Sweep, Swept Blend, and Void Forms for cutting shapes

Click Extrusion. The ribbon switches to sketch mode, where the Depth field sets how far the solid is pushed out.

The Modify Create Extrusion ribbon Photo: The sketch ribbon: Mode with the red cross and green tick, the Draw panel, Work Plane, and the Depth field

Draw a rectangle exactly on the four planes. As the cursor touches a plane a padlock icon appears — click it to lock that edge. Lock all four, then click the green tick.

Stage 4 — add a formula, flex it and load it (step 5)

Open Family Types, create a Length type parameter Chieu_cao and associate it with the Extrusion End of the solid. 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.

Loading into the 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.

OptionWhat happens
Overwrite the existing versionReplaces the old family; every instance using it updates to the new version. This is how you fix things in bulk
Overwrite the existing version and its parameter valuesAlso overwrites the parameter values on each instance — per-instance edits are lost
CancelNothing 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.
  • Model Text is greyed out. Three-dimensional text needs a vertical work plane, so open an elevation or set the work plane first.

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.

Why not use a void to fix a solid that came out wrong?

Editing the solid directly is always cleaner. Voids belong where the shape genuinely needs an opening, such as a cut-out in a door leaf.

How long does it take to get good at families?

A simple parametric component takes an evening. Nested families with formulas that flex reliably take a few weeks of real work, because the difficulty is not in the commands but in how the frame is set up.

About the author

Dr. Nguyen Manh Tuan — BIM lecturer at the Institute of Information Technology in Civil Engineering – Hanoi University of Civil Engineering, co-author of the textbook Autodesk Revit 2027 for Architectural Documentation