Making Schedules Smart
Have you ever wanted Autodesk® Revit® to do more for you? Have you ever wished all the information that is populated inside elements would do more for you? Well it can! Revit has a way to make schedules “smart.” Revit allows for the input of formulas for calculations and it associates that information with the elements in the model. The smart schedule shows elements that exist in the model with their information; calculations are based on information populated in the model; and changes made in either place will directly reflect in the other.
How is this done? In order for everything to work together, three things are needed: Shared Parameters, Families, and Schedules. The foundation for bringing smart into your schedules is by using shared parameters. You can have a single shared parameter file with different groups of parameters as needed. You can also create a shared parameter file for each schedule that you want to create. These shared parameters are the link from the family to the schedule.
The schedule type we will be using is a quantities schedule, the most common type of smart schedule used. These schedules allow you to schedule based on model category and the schedules pull their information from the shared parameters that are loaded into the family and schedule. When creating a quantities schedule you will choose the desired parameters and build your own schedule. The customization/creation of these schedules involves the following: Fields, Filter, Sorting/Grouping, Formatting, Appearance, Embedded, and Phasing (Figure 1).
Fields acts as a parameter manager for the schedule. This tab allows you to add parameters, remove parameters, arrange the order of parameters, and provides the ability to create a calculated value parameter (Figure 2). As a rule of thumb, I never add a parameter from the left to the right. To ensure that the correct parameter is being added I always use the Add Parameter button and load it from the appropriate shared parameter file. Once the parameters are added use the Move Up and Move Down buttons to arrange the order as desired. An example of how to use the Calculate Value button is shown in Figure 2. Name the parameter for the calculated value (Area). Adjust settings as needed and then put in the formula. In my example I am referring to the parameters Length and Width that must already exist in the schedule parameter options.
Next, the Filter tab will help you sort through your scheduled model category items. In the instance where you want to schedule Air Handling Units, the entire model category of mechanical equipment will not work for this schedule. There are many different ways to filter and all of them depend on the desired outcome. However, this filter will be based on a parameter that exists in the schedule and equipment. An example of two different parameters to filter by are Mark and Schedule Number (Figure 3).
The Sorting/Grouping tab (Figure 4) will help to arrange the order in which the families appear. This can show all instances of the families or show one type. The type option is quite nice when working with something such as a diffuser where you would not want every instance to schedule. This tab also allows Headers, Footers, and Grand totals that are all beneficial in their own way. Try them out!
The Formatting tab shown in Figure 5 is where the fun begins. Here, the generic orientation and alignment are taken care of. The fun part is making Hidden fields, applying Field Formats, and applying Conditional Formats. Hidden fields are nice if there is information valuable to you in the schedule, but you don’t wish to print the information. Simply make it a hidden field while printing and turn it back on when needed. Field Format will adjust the parameter units independently of the base parameter units and project units.
The Conditional Format option gives preset options to adjust how cells appear in the schedule. I use this in QC schedules to alert me to either discrepancies or potential inaccuracies that could cause issues. For example, if my CFM is greater than 3000, the cell will turn red and then I know that something is not correct (see Figures 6 and 7).
The graphics and text options for the schedule reside on the Appearance tab (Figure 8). These can be adjusted per schedule or a view template can be applied in order to keep appearance consistent among all schedules for the project.
Every schedule has an assigned Phase and Phase Filter similar to views. Schedules can have a phase set to show elements as desired. This can help when phases are used in a project for different submittals. If there will be schedules for each phase, then assign the appropriate phase to the schedule so only elements of that phase will populate. On the flip side, the phase filter can be set to show all and include elements of all phases in the schedule.
Embedded schedules are an option inside some Quantity Schedules. The option is available in the following model categories: spaces, duct systems, piping systems, and electrical circuits. This allows you to include information from more than one model category and can be found on the Fields tab.
Now that the schedule aspects have been covered, it’s time to talk about parameters in families. How do we make these parameters work for us? We use formulas! These can be as simple as:
- + add
- - subtract
- * multiply
- / divide
Some simple and common formulas that can be used in family creations are half lengths, half widths, radius/diameter, offset values. Examples of these follow.
- Half Length = Length / 2
- Half Width = Width / 2
- Radius = Diameter / 2
- Diameter = Radius * 2
- Frame Offset = Length + 2”
Complex parameter formula examples:
If (x, *yes*, *no*) If statement
If (x, *yes*, if(x, *yes*, *no*)) Nested If statement
NOT(*checkbox parameter*, *yes*, *no*) Parameter reading from checkbox
There’s a saying, “Google is your oyster.” Oh wait, that might just be my interpretation. I use Google a lot for finding formulas to use in family creations.
Some model category families have a Room Calculation Point option in the Family Types dialog. This will make a small dot with a line attached to your element that is only visible in the family. When this is inside a space it will read the space information and relay it back to the family. These come in handy when scheduling the room name or number in which the element resides because it will automatically populate in your schedule with zero effort on your part.
Basic formulas build into complex formulas, which build into nested formulas, which lead to you being able to achieve great things.
I have used shared parameters in a family to relay information to the schedule and populate parts of it based on visibilities and connections. An example is the Area Alarm panel schedule. If the Area Alarm panel has connections for vacuum, oxygen, and air, then those boxes are checked in the Properties panel for the family (Figure 9). That information is relayed to the schedule and puts an “X” in the schedule for what gases the panel contains. The Room Name and Room Number shown are populated from the Room Calculation Point.
I have also used formulas and shared parameters to read a pipe connection size and input the information in the schedule. The connection information works by assigning a pipe size parameter to the pipe connector inside the family. A text shared parameter exists in the schedule and reads the connection size while converting the pipe size parameter to a text parameter. Last, a yes/no parameter exists in the family to identify if the connection point is used.
Example of the aforementioned formula and parameters required:
OSize – parameter, pipe size, exists in the family at the point of connection, instance
Schedule O – parameter, text, exists in the schedule, instance
O – parameter, yes/no, exists in the family, instance
Formula: Schedule O = if(not(O), " ", if(OSize = 0' 0 1/2", "1/2", if(OSize = 0' 0 3/4", "3/4", if(OSize = 0' 1", "1", if(OSize = 0' 1 1/4", "1 1/4", if(OSize = 0' 1 1/2", "1 1/2", if(OSize = 0' 2", "2", if(OSize = 0' 2 1/2", "2 1/2", " "))))))))
Formula explained in words: If the O system does not have the O box checked, populate the schedule with a space. If the O system does have the box checked and OSize is equal to 0’ 0½”, populate the schedule with ½” (repeat for all sizes shown).
The pipe size parameter will adjust to the size of pipe connected to the pipe connector. The sizes listed in the formula are all the typical sizes for connection. Side note: If you draw from the connection point, this does not work. You must draw the pipe and connect to the connection point. See Figure 10.
This completes my brief look into making Revit schedules work for you. An in-depth article on Revit schedules would take pages upon pages, so if you have questions about what is presented here, please feel free to reach out to me via LinkedIn.