Monday, July 23, 2007

Best Practices for Autodesk Revit Parametric Components (Families)

Autodesk Revit Parametric Components (also referred to as Families) offer an open, graphical
system for design thinking and form making. A powerful feature in the Revit suite of products,
families help users manage data and make changes easily. This white paper examines Best Practices relating to Autodesk Revit Families.

Revit Parametric Components are called families because one family type can contain many variations. A family can be anything in Autodesk Revit software, from a table to a window to a two-dimensional representation of an anchor bolt. Any item that may need to be represented in a project can be created in a family.

A large number of predefined families are included with Revit. Manufacturers are creating Autodesk Revit Families that are available from their websites or included on product disks. Despite the availability of large family libraries, users sometimes need to create custom components for a project. This can be easily accomplished using the Autodesk Revit Family Editor; a simple graphical interface that allows users to model any object and apply the power of parametrics to that object.

Users do not need to know any programming language to create content for Autodesk Revit. Family creation is made easy through the use of templates, which are provided with the software to help users get started with families. These templates allow Revit users to focus on the geometry of the object, as they contain all the programming necessary “behind the scene”.

Autodesk Revit Families are extremely powerful because they are driven by the Revit parametric change engine. The parametric change engine enables a change made to a family to propagate throughout the entire project. Once created, a family’s parameters remain exposed and can be edited directly within the Revit project. Ultimately, it is the parameters that drive a family’s geometry. Mathematical formulas can be used in these parameters to create complicated geometry, or to drive parameters in a user defined solution (for example, using a formula in a window family that always makes the width of the window twice its height).

Revit Families also feature nested families - one family residing in another family. For example, a user might nest a door hardware family into a door family. Nested families add a level of strength and capacity to the process. Users can create a single family file that includes dozens of different options.

This paper explores the use of families in Autodesk Revit - from the basics of the Family Editor to advanced topics and considerations when using families - all of which will provide the reader with a Best Practices approach to creating parametric component families in Revit.

Design Considerations
Before creating a family in Revit, users should consider the following questions regarding their intended use of a family:
  • What size(s) does this family come in?
Is this a custom piece of furniture that only comes in one configuration, or is this a window that is available in several preset sizes? Perhaps, this is a bookshelf that can be built in any length from between 2’-0” to 5’-0” wide. This is an important point to consider before building a family, as it will dictate decisions that need to be made in the near future.
  • How should this family appear in different views?
Is this an object that should be seen from plan view, elevation view, and/or sectional views? Maybe this is a 2D object that should only be seen in plan or elevation. In any case, the way that this object should appear in views will determine how to define its visibility.
  • Does this family require a host?
Is this family typically attached to another design element - a wall, or maybe a ceiling? Possibly it is a roof mounted mechanical unit. How this family is hosted (or what it does or does not attach to) will determine which template file should be used to start the family.
  • How much detail should be modeled?
Is this family an electrical wall outlet that will only be seen in interior elevations from a distance, or is it a door family with raised panels and a sidelight that will be seen in an interior rendering of the project? This determination will help decide how much detail to provide in the family.
  • Where should the origin point be?
Is this a column family that would use the center of the circular base as the insertion point, or is this an accessible toilet that must always be placed 18 inches off the adjacent wall to meet code? This decision will help users when they start placing geometry.
Recapping these important first questions to consider before creating a family:
  1. What sizes does the family come in?
  2. How does this family appear in different views?
  3. What hosts might this family be attached to?
  4. How detailed should this family be?
  5. What is the origin point of this family?
Creating a New Family
Once the basic questions listed above are considered, a user is ready to create a new family. There are three types of Autodesk Revit families:
  • System families,
  • In-place families, and
  • Standard component families.
System families are predefined within Autodesk Revit, and comprise the basic building components such as walls, floors, and roofs. Users can create their own versions of system families by duplicating an existing version and modifying its properties. Users cannot create new system families.

In-place families are components that are created specifically for a single project only. They are created from within the current project, and cannot be used in other concurrent or future projects. The best time to use an in-place family over a standard component family is when creating a component unique to a specific project. For instance: a reception desk in the lobby of a law firm may have a very unique design featuring curving shapes requested by the client and finishes unique to that lobby. In this situation, an in-place family should be used because there is little chance that this custom-designed piece will be repeated in another project.

Standard component families are the most common families in Autodesk Revit, and are the focus of the remainder of this paper. Standard component families can be placed in project template files so that they preload with each new project, or they can reside in libraries to be loaded on demand.

While working in the Family Editor, users can: 1) open an existing family and modify it to suit their needs, or 2) start a new family using the appropriate template. To start a new family, choose the File pull down menu and then select New >> Family.

TIP: To save time, users should duplicate and modify a similar existing family to suit their needs instead of starting a new family from a template.

Templates
Templates for family creation are supplied with Autodesk Revit. The various templates cover a broad range of possibilities from 2D annotation objects to 3D roof-based spot lights. Each template has been pre-configured to aid in the construction of a specific object type.

Figure 1
Autodesk Revit includes many templates to create families of parametric components.

Some templates have a combination of reference planes and pre-defined parameters to guide users during creation. Family templates for hosted objects will contain a host to build from. For example, in roof-based families a portion of a roof will be exposed in the template for the user to reference as a base. Still other templates have text notes embedded in them that may define the interior and exterior faces of a wall.

Another item that is found in some family templates are controls. Controls placed in families allow the user to change the position of the geometry in a family after it’s loaded into the project. An example of these controls can be seen in a door family, where controls allow the swing and the hinge-side of the door to be reversed.

Figure 2
The template for a door family includes controls to easily reverse the swing and hinge-side of the
door..

To create a family based on a template, browse the list of templates, and choose the one most appropriate to the object being built. If the object does not fall into a specific category, the Generic Model template may be the best choice. After picking the template, the user is ready to launch the Family Editor.

Family Editor
The Family Editor is built into Revit, and is launched by opening an existing family (those with an RFA extension) or by starting a new family from within Revit. The Family Editor launches within the Revit application, and employs the same user interface. The Design Bar on the left of the drawing window changes to a unique set of tools for family creation, and the Project Browser updates to show specific views depending on template selection.

Figure 3
The Family Editor user interface matches the general Revit user interface.

At a minimum, the drawing window will display two crossing Reference Planes - and possibly some dimensions, text, and notes to the designer. The crossing Reference Planes are important because they define the origin of the family. It’s a Revit Best Practice to leave these existing items (preloaded from the family template) alone. Users should not move or delete these items, as they play an important role in the family. In fact, there are some items (such as dimensions) in some family templates that cannot be deleted by the user - underscoring the general principal that if an item is in the template when it's first opened, it should be left there.

Reference Planes
A common mistake among users is to start adding objects and solids at this point. While it’s almost time to start modeling, there is still some more preparation that will later serve a significant purpose. After opening the template, the first thing a user should do - before creating model geometry - is use Reference Planes and Reference Lines to create construction lines for the geometry that will be added later.

Start in a view that best fits the family being created, such as a plan or elevation. Reference Planes should be used as datum lines that extend beyond the edges of the visible drawing area. Drawing a reference plane (often called ref planes) in a plan view will also cause that same reference plane to be seen in a crossing elevation or section view, because it is literally a plane that extends in a horizontal and vertical direction simultaneously.

Figure 4
Reference Planes should be defined before creating geometry.

Unlike reference lines, reference planes do not have “defined” endpoints. They consist of two associated planes: one parallel to the view and one perpendicular. Ref Lines can be used in rotational control of families, because the endpoint can be constrained. Reference Lines and Planes can be renamed, so that users can easily refer to them at another time.

Creating Parameters
Reference planes that have been laid out should align with the major axes of the planned geometry. Users should begin to add dimensions to specify parametric component geometry. Start by thinking how the object should be controlled. Height, width, and depth are three dimensions often used in families, and these dimensions and parameters are pre-loaded with many of the templates. Users may need to add more dimensions to describe other geometry - for instance; trim, width, and depth are common in a Window family.

Once the dimensions have been added for the major pieces, users can start adding labels to dimensions, creating parameters. There are two categories of parameters: instance parameters and type parameters. Changing an instance parameter affects the parameters of a single entity (or instance) of an object. Changing a type parameter affects all parameters of the same type.

If there are several instances of the same family loaded into a project, and each individual representation of that family needs to be a different length, then use instance parameters. For example, consider two counter tops in the same project. One instance of the counter top is placed and its length (an instance parameter) is set to 5’ – 0”. A second counter top is placed and its length (an instance parameter) is set to 5’ – 5 ¼”, spanning the distance between two walls. The instance parameters easily allow these two counter tops to be set to different lengths. Instance parameters have another unique characteristic: dimensions that are controlled by instance parameters will display shape handles when selected in a Revit project. Shape handles allow the user to click and stretch the shape of a family to a new position or size by using the mouse.

Figure 5
Instance parameters display shape handles (shown here in blue), a convenient way to stretch the shape of a family.

Type parameters control families at a higher level. They control the predefined types of families used in the project. Use type parameters to load an object repeatedly in a project and control those repeated objects as if they were one. For example, consider a door family. A users places a door repeatedly in the model as a 6’-8” tall door, but later decides to change the height of all the doors to 7’-0”. Changing one type parameter will cause all of these doors to update their height simultaneously.

To add a parameter, click on a dimension then add a label. Once the dimension is labeled, it becomes a parameter. In the Options Bar, a drop down list of available parameters will appear. If the parameter needed is not available, select Add Parameter. When adding a new parameter, specify whether it's an instance or type parameter. After adding the parameter, the dimension changes to include the parameter name and the dimensional length.

Figure 6
Add a new parameter using the Revit Family editor.

As parameters are created, they are added to the parameter list in the Family Types dialogue box (selecting by clicking Family Types in the Design Bar). This Family Types dialogue box contains several key areas. Most noticeable is the list of defined parameters in the main window, arranged into logical parameter groups (Construction, Dimensions, and Identity Data in the example in Figure 7). During creation or editing, users can assign which category is assigned to a parameter.

Figure 7
Family parameters are listed in the Family Types dialog box.

On the right side of the dialog box, users can create new Family Types, or rename or delete existing Family Types. Revit features Family Types to predefine a set of parameters - making a particular “type” of object.

Returning to the door family as an example, several door types can be defined in this dialog box. One type might be a “3068” door (a door that is 30” wide and 6’-8” tall). Another type might be a “3668” (36” wide and 6’-8” tall). A user could then define a “3070” and a “3670” door in this dialog box. Family Types allow Revit users to quickly define a multitude of sizes and combinations of an object, based on just one family and one set of parameters.

The lower group of three buttons in the Family Types dialog box is specifically for parameter creation; Add, Modify, and Remove. Click the Add button to launch the Parameter Properties dialog box to add a parameter to this family.

Notice the Parameter Types section of this Parameter Properties dialog box (see Figure 8). There are two types of parameters available in Revit: family parameters and shared parameters. A family parameter is specific only to this particular object and its value cannot appear in a schedule or tag. A shared parameter can be shared across multiple families and projects. Its value can appear in schedules and tags, and can also be exported out to ODBC. Family parameters are stored within the family file, whereas shared parameters are saved in an external text (TXT) file, typically on a network where other users can access the text file to use the shared parameters.

Figure 8
Family parameters are listed in the Family Types dialog box.

Parameter data for a family parameter is entered in the Parameter Properties dialog box.:
  • Name: The parameter's name is completely left to the user. It’s a Revit Best Practice to keep these names simple, short, and concise whenever possible. When using formulas (described later in this paper), these parameter names will have to be retyped exactly as entered here.
  • Discipline: A parameter's discipline can be set to Common or Structural.
  • Type: This drop-down list contains several pre-defined categories for the value of the parameter, such as Text or Number, or Yes/No.
  • Group Parameter Under: This area allows users to classify the parameter in a logical grouping. When the family appears in a project, the parameters are listed in groups of common elements to make it easier to enter the data by logical groups.
  • Instance and Type. Select the radio buttons that best fits the parameter.
Once these decisions regarding a parameter are made, enter the necessary data into the fields in this dialog box, and click the OK button, which returns the user to the Family Types dialog box. The user will now see the new parameter listed under the Parameters heading, and organized into the groups defined in the previous step.

To change the parameter, users can click the Modify button, or remove the parameter from the family entirely with the Remove button. Continue to add additional parameters by repeating the steps above to complete the design of the family.

Testing the Family
Before finishing a family, it’s very important to "flex" or test the model - to check that the elements created are reacting as expected when parameters change. Users should develop a habit of flexing the model repeatedly when creating families, especially after adding parameters.

To flex the model, click the Family Types button in the Design Bar. In the Family Types dialog box, the various parameters of the object are listed. Pick a parameter, and change the dimension value associated with it, then click Apply and see how the model changes. The intention is to see if the reference planes have moved to a new position as expected. Change the parameters to a range of numbers (clicking Apply each time) to test a range of values from which the family would normally operate - to assure the planes are moving to the correct lengths and dimensions.

Occasionally a user will see an error such as “Constraints not Satisfied.” This usually means that the parameter is trying to control a part that is already constrained by another parameter. As more parameters are added to the model, be sure to flex multiple parameters to test them. For instance, if flexing the width works well, then set a new width, and flex the height. Try different combinations to assure all is moving as expected.

Once a user is satisfied that reference planes, dimensions, and parameters are all working as expected, it's finally time to add some real geometry in the form of Solids and Voids.

Adding Geometry
There are several choices for creating geometry in Revit: Extrusions, Blends, Sweeps, and Revolves. These four geometry types can either be solids or voids. The type of geometry used depends on what is being modeled. For example, in a door family, the door panel itself could be an extrusion of a rectangular shape. The door frame could be a sweep - a profile in the shape of the door frame would be swept along a path defined by the sides and top of the door opening. The door knob might be a revolve. A void-blend could be used to cut the raised panel into the surface of the door panel.

The method for adding geometry is similar for all geometry types. The rest of this section will use extrusions as an example. From the Design Bar in the Family editor, choose Solid, then Extrusion. Revit will switch to Sketch Mode, and the user will have two options for sketching a shape. The first option is to draw the shape using tools from the Options Bar such as Line, Arc, Circle, Polygon, etc. The second option is to use the Pick tool from the Options Bar to pick reference planes, lines, or other existing geometry. As the user begins to draw or pick, magenta sketch lines appear. These lines could be drawn over the top of the reference planes, or more loosely sketched and then moved into alignment with the reference planes. The key is to make these sketch lines lock to the reference planes.

Using the Pick tool, the user has the option to lock the sketch lines upon placement. Blue padlock symbols will appear when lines can be locked to other geometry, lines, or reference planes. To lock and unlock relationships, simply click the lock symbol to toggle it opened (unlocked) and closed (locked). Sketch lines can be moved using a 'press and drag' technique; clicking on the line and moving the mouse while holding down the mouse button. When using this method, notice that sketch lines will automatically snap to reference planes and other relationships while being moved. Moving a sketch line off and back onto a reference plane will cause the lock symbol to appear, allowing the user to choose to lock it or not. The Align tool also allows the user to create constraints using the lock symbols.

TIP: When flexing the model, move the dialog box to the side of the screen, to better see the family in the drawing area.

After sketching the shape, and locking the sketch to the appropriate reference planes, the Extrusion properties in the Design Bar are used to define the thickness of the extrusion. This number can also be set in the Options Bar. When satisfied, click Finish Sketch and the geometry will appear. Flex the model again from various views, including 3D, to make sure the geometry behaves as expected. If it doesn’t, highlight the geometry and stretch it, using the blue shape handles that appear, to align and constrain to a reference plane.

Formulas
Formulas are one of the many powerful aspects of Revit Families - used to control families in a variety of ways. Formulas can use logic such as IF statements (IF the width is 1’-0”, set the height to 4’-0”) as well as mathematical expressions. They can be used to control Yes/No parameters, and to control parametric arrays.

Formulas are typed directly into the Family Types dialog box, where all of the parameters for a family are listed. Simply place a formula into the cell adjacent to the value, beginning with an equal sign. When entering a formula, abbreviations (such as +, *, sin, and so forth) can be used.

The following are valid formula abbreviations:
+ Addition
- Subtraction
* Multiplication
/ Division
^ Exponentiation, i.e. x^y = x raised to the power of y
log Logarithm
sqrt Square root, i.e. sqrt(16)
sin Sine
cos Cosine
tan Tangent
asin Arcsine
acos Arccosine
atan Arctangent
exp e raised to an x power
abs Absolute Value

Referring back to the family parameters listed in the Family Types dialog box in Figure 7, notice that there are parameters for height and width. In the figure, the height = 4’-0” and width = 3’-0”. To set the width of this family to always be one half the height, click in the Formula column of the width parameter and enter “=Height/2”. The values are case sensitive, and must be typed exactly as they are defined. This is why it is important, when naming parameters, to be concise about the name chosen (as described above in the Creating Parameters section). Test how formulas work by changing the value of height, and watching the width value change automatically.

There are many complex mathematical functions that can be used. Logical functions include IF, AND, OR, and NOT statements. Formulas can also use greater than/less than signs (< >). Experimenting with formulas will allow users to create some very powerful Revit Families, such as a book shelf that automatically adds support brackets as the length of the shelf increases or a window family where the muntins turn off when the window size decreases beyond a defined limit.

Saving a Revit Family
When the Revit Family is ready to be used in a project, save the family with an appropriate name, and store it in a location that is easy to find. A Best Practices tip is to organize family content into a system that mimics the Revit Library. This makes it much easier for users to find what they're looking for.

To load the family into a project, select File >> Load From Library >> Load Family, and then browse to the saved file and select it. Alternately, for many component types, when the tool is selected, a Load button becomes active in the Design Bar.

Create a keyboard shortcut to automatically open the Load Family dialog box, or click the Load button in the Options Bar for many component types such as doors and windows when the tool is selected in the Design Bar.

Once loaded into a project, the family can be moved and copied as needed. To edit the family, simply select the object, and click the Edit Family button in the Options Bar. This will launch the Family Editor and open the selected family. When finished editing, the family can be loaded directly back into the project by clicking the Load into Project button in the Design Bar. Saving the family from the Family Editor using this method will overwrite the file that was originally the source for the object in the project. Simply modifying and reloading without saving will update ONLY the project into which the family is loaded.

There are many resources available if users need assistance or are have problems with Autodesk Revit families. First, file a Support Request through the Help Menu in Revit. This puts users directly in touch with the Autodesk Revit team for assistance. The Revit Forums at AUGI.com are also an invaluable resource. Membership is free and there are thousands of people from around the world logged in 24 hours a day - ready and willing to help.

Summary
Autodesk Revit Families and the Family Editor are extremely powerful. One of the best ways to become familiar with the Family Editor is to open an existing family - investigate how it was built and what parameters or formulas were used. Start by watching the effect of changing parameters. After becoming comfortable with existing families, try making a new family. Users will soon come to realize and appreciate the full power of the parametric technology inherent in Autodesk Revit.

Final Review
Steps to create a family in Autodesk Revit:
  1. Select the appropriate family template.
  2. Lay out reference planes to aid in drawing component geometry.
  3. Add dimensions to specify parametric component geometry
  4. Add labels to dimensions to create type or instance parameters.
  5. Flex the new model to verify correct component behavior.
  6. Add geometry in Solids and Voids, locked to reference planes.
  7. Specify 2D and 3D geometry display characteristics with sub-category and entity visibility settings.
  8. Define family type variations by specifying different parameters.
  9. Save the newly-defined family, then load it into a new project and see how it performs.

No comments:

Post a Comment