This blog post is a summary of all the amazing tricks taught by Purvi Gandhi Irwin in the fourth episode of Revit Pure Live. Check out the episode here:
All the credits go to Purvi. Follow her on Twitter her and check out the website of CADD Microsystems. Also, check out the original blog post series she wrote about schedules. Purvi is an architect and a Revit sherpa that is now working as a BIM consultant in the DC area. This guide would not be possible without her.
Schedules in Revit are amazing, because they really harness the power of the I in BIM. Sadly, they are rarely used to their full potential. Some of the best features are not well understood, maybe because they tend to be hidden and not often discussed. Well, we’ve got you covered.
Ideally, you would have some experience with schedules before using this guide. Check out our beginner blog post about schedules here:
9 TIPS TO MASTER REVIT SCHEDULES
All right, enough blabbing. Let’s get going!
1- Zoom in and Out of Schedules
Let’s start with a few quick tips that are made possible with improvements from recent releases of Revit.
The first is the ability to zoom in and out of schedules, which was introduced in Revit 2019.1. Simply hold the CTRL key and move your mouse wheel to zoom in and out of the schedule. Incredibly helpful, yet many people don’t even know about this feature.
2- Activating Stripe Rows for Visual Efficiency
Revit 2020.1 introduced the stripe rows feature, which was available in the Ribbon. It produces a similar effect to what is often used in excel spreadsheets to facilitate the reading of long schedules. You can see the impact here:
The problem with this tool was that it didn’t work in sheets, and there wasn’t any customization available. Revit 2021 fixed these issues. The Stripe Rows feature has been moved to the Appearance menu of schedules instead of being in the Ribbon. Here, you can see the available options when using the feature:
3- Freeze Headers for Long Schedules
Another feature introduced in Revit 2021 is the ability to freeze the headers. If you have long schedules in which you have to scroll down a lot, the headers won’t be visible. You can click on Freeze Header in the contextual tab. The headers will be displayed on the schedule even if you are scrolled down all the way to the bottom.
4- Create Different Working and Printing Scheduling
Sometimes, you have helpful information to understand your project, but that isn’t required on the sheets and the printed documents.
That’s why it’s helpful to duplicate schedules and create a version used internally and another used for printing.
Using a proper project browser organization, this is what it might look like:
In the “working” schedule, some extra fields and information are added to provide all the necessary information for users. For example, we might add the “Family and Type” parameter, phasing information, etc. Here are two door schedules, one “working” and one “sheet”.
5- Use Bright Colors in Working Schedules
As a follow-up to the previous post, a great idea to differentiate the working schedules from the sheet schedules is the use of colors. For example, we use bright colors in the work schedules. These colors are used on columns that aren’t present on the sheet schedule.
This way, if the schedule is placed by mistake on a sheet, it will be pretty obvious that it shouldn’t be there because of the bright colors. Here is an example using the previous door schedules example:
In the work schedule, you know that the pink and blue columns shouldn’t appear on sheets. You can develop a color code to convey specific information depending on the column it’s being used on.
Forgot how to apply colors? Click on the column's letter to select the whole column, then use the “shading” option.
6- Adding Instrtuctions Rows in Headers
During the live show I had with Purvi, this part really blew my mind. Usually, all rows in a Revit schedule represent an element in the model, right? Well, it turns out you can add rows and columns of data that aren’t linked to model information.
Select the title area of the schedule. In the ribbon, you can see the “Add Rows”. Click this button to add a new row below the title, like in the image below:
By default, the number of columns in the new row will be equal to the existing number of columns in the schedule. You can use the Delete button to remove some of them. You can also use the Add Columns tool if you want more.
Finally, make sure to use the Resize tool in the ribbon for both the height and width of these cells. This will allow you to type in a precise value instead of messing around inaccurately.
Remember: these rows are all dumb text, which means there is no link to the model information. Normally, deleting or adding information in the special custom rows doesn’t affect your model at all.
A great use of this is the ability to write internal notes to properly explain the use of schedules. Combine these special “dumb” rows with colors to create work schedules that are really easy to use and understand. Check out this work door schedules with instructions:
7- Creating a "Dumb" Code Schedule
In the last example, we’ve used custom rows and columns to add information to an actual schedule. But you can also create an entire schedule made of dumb text! In the example below, we create a schedule based on a type that will never be used. For example, if you are an architect, use a schedule element related to MEP that you know isn’t helpful for you and that won’t affect the mode. Add a single parameter like “comments”. Since there are no model elements from the category you’ve selected, this is what your schedule should look like:
Then, just add all the custom rows and columns you need for your code analysis. Adapt the fonts and resize the cells to fit your needs. In the appearance tab, uncheck the “Show Headers” box so you only see the titles. Check out what our schedule looks like once placed on the sheet:
Basically, this is a workaround to create tables in Revit without having to draw dumb lines in legend views.
8- Use Calculated Values to Verify Program
In tips 8 and 9, we’ll showcase how to create a room schedule that verifies if the area fits the program or not. First, we’ll add a project parameter to our rooms that is called “ProgrammedArea”. This allows us to enter a value for each room based on the value required in the program. Them, you can put the ProgrammedArea value next to the actual area field in your schedule. Your rooms schedule should look like this:
Now, we want to create a field that calculates the difference between the actual area value and the programmed area value. Go back to the field menu and click on Calculated Value:
Type in a formula to substract the actual value to the programmed value. Make sure the use the Area units. The formula is pretty simple:
Your schedule should now look this:
9- Use Conditional Formatting to Verify if Model Meets Criterias
Let’s say you want to use your schedule to verify if the program is respected. To make it really obvious, you want to add a red color to each room that doesn’t respect the minimum area value. That’s when conditional formatting comes into play.
Go to the Formatting menu of the schedule. Select the Name field and click on Conditional Format…
Enter the formula like in the image and select a color override for fields that matches the criteria. In this case, we select red.
With the conditional formatting added, the name of every room that doesn’t reach the minimum programmed area value will appear in red:
10- Invert Rows and Columns
All right, now we’re getting to the real nerd stuff.
Let’s say you want to have a schedule where the levels are used in the columns instead of the row. Maybe you want to indicate the count of a specific category of item for each level?
Well, that’s not possible by default in Revit because levels are considered as elements. Elements are displayed as rows, and parameters are displayed as columns.<
Purvi managed to find a way to invert the rows and the columns! It involves some tinkering with calculated values.
In this example, we’ll create a list where each type of furniture is displayed in a row, and each level is displayed in a column. The amount of each furniture element per level is indicated.
First, we need to create a new integer parameter called Scheduled_Level assigned to furniture.
Then, create a regular schedule that includes the Family and Type of the schedule, the Count, the Level and the new Scheduled_Level parameter. Then, you have to manually fill up the new Scheduled_Level parameter so it matches the level, just like this:
Now, create a calculated value for each level. Use this formula for each of them:
Create all the required calculated values. Only adjust the first number of the if statement formula like this:
Level 2: if(Scheduled_Level = 2, 1, 0)
Level3: if(Scheduled_Level = 3, 1, 0)
You get the idea.
Now, we get this schedule:
That’s not the final result we want, so there are still a few things to add up. Sort by Family and type, hide the level and scheduled level fields, uncheck “itemize every instance,” activate the totals for each level calculated value. Add a “grand total.” If you follow all these steps, you will get this cools schedule:
If you want, you can also add the “Count” parameter after the list of levels to show the total for each furniture type.
11- Fix the Rounding Issue on the Footer Total
When Revit calculates the total in schedules, it uses all the decimal of the value and not the displayed value.
That means that if you manually add the values in the column, you might not get the same number as what Revit will give you.
Here is an example of this. Manually add the square footage of these rooms, and you’ll get 961 ft². Yet, Revit displays 960ft².
That’s because if you were to use all the digits of all rooms, that would be the actual result. But meanwhile, your schedule looks inaccurate and dumb.
There is a way to fix it, but you have to mess around. First, create a calculated value of the area and use the Integer type of parameter. Divide the area by 1, else you’ll get a problem with units.
Now, create another calculated value and use the settings like in the image below. Basically, we just converted the integer back to an area field. But this time, all the extra hidden digits are gone and the totals will be fixed.
Make sure to activate the totals for this new Area Final field. Let’s add the colors to the columns that won’t be used in the sheet schedule. That’s what you should get:
As you can see, Area Final displays the correct 691ft² that we are looking for.
12- On Your Master Sheet List, Use Symbols for Revisions
This trick is a throwback to a previous entry on this blog: 7 Steps to Create a a Yes/No Dot Schedule in Revit.
Sometimes, clients or project managers want to display the revision of each sheet with a symbol… Like this:
First, create yes/no project parameters (or shared parameter) for each revision you want to indicate on your schedules. Assign these parameters to sheet. Your sheet instance properties should look like this:
Quick time saving tip: Do you need to add a lot of parameters all at once? Consider using the free ParaManager plugin by DiRoots.
This is what your “work” sheet list should look like:
It’s now time to create calculated values for each revision. Use this formula:
if([Revision 1], “●”, “”)
The symbol needs to be copy/pasted from the character map. Here is the full calculated value. Make sure to use the “text” type of parameter.
Create the calculated value for each revision. Your work schedule should now look like this:
Now, you just need to create a Sheet schedule. Duplicate your work schedule and hide the blue revisions columns. You can see here how we use Purvi’s color system to clearly showcase columns that shouldn’t show up on sheets.
Anyway, this is the finished “sheet schedule” that is placed on a sheet. Why not use hearts instead of boring dots?
A thing to be careful about is that these revision parameters aren’t linked to the actual revision parameter. Still a cute schedule 😘
13- Using Images in Schedules
There are two ways to add images to schedules.
The first is to add type images directly inside of the family. In this case, you embed images inside the family, which can add to the file size of the .rfa file. Since there can be multiple types inside a family, there can be various images inside a family.
Go to the type properties and find the “Type Image” parameter. Click on the three small dots to select the image.
In this example, we add images to a few different types of the same table family. You can see that inside the schedule view, the name of the image file is displayed. When placed on a sheet, the images will appear.
You can adjust the image column width to change the size of the images.
You’ll have to think of a system to manage your images properly. Aim for consistent dimensions and proportions. A vertical image will create a huge row, so be mindful of that.
Oh, and to be clear, these images are screenshots, so you’ll have to make sure they correctly match the type they are assigned to.
In this case, we’ve used loadable families. If you want to add type images to system families like walls and ceilings, you’ll have to do it directly inside the project.
Now, let’s try to add instance images. Instead of being done inside of a family, this is done directly in the project. Select the element and add the image.
We’ve decided to use the instance image to show the face of each furniture user. There is now both a type and an instance image in the schedule. How cool is that?
14- Create a Master View List to Keep Control of Your Project
Want to maintain control of what’s going on in your project? You need to create a view list. This isn’t to be placed on a sheet; it is to manage the views. Include these parameters:
-
Associated Level
-
Group and subgroup parameters (used for project browser)
-
Type
-
View name
-
Title on sheet
-
Phase
-
Phase filter,
-
View template
-
Sheet Number.
-
Scale
This is what your list should look like:
With this schedule, it becomes super easy to modify the view name, control the view templates, verify the associated level, and so much more—a must for serious BIM managers.
15- Star Wars Schedule
Let’s conclude this post with an oddball trick: the star wars schedule.
This is a trick to use Revit for management work not related to AEC.
In this case, Purvi wanted to create a schedule for her training courses, with a list of all students for all classes. First, create a Generic Model family shaped like a small square of about 1m x 1m (3’ x 3’). Create a type of this family for each student. Create a new shared parameter to indicate the name of the student in the family. You can also create a "skill level” parameter for each user.
Then, create a room for each class session. Add the generic models representing a student for all rooms. Like this:
Here are the type parameter for each “student”:
Now, we apply view filters so each student has it’s own specific color. You can also use a plugin such as Colorsplasher by BIM One to save some time. Check this out:
Back to the schedule part of it. Create a Room schedule. Pick any field, it doesn’t matter ;)
Go to the Embedded Schedule and select the Generic Models category. Create your schedule like you normally would.
Hide the field from the main room schedule to only keep the Embedded schedule visible. You should have something like this. Cool, eh?
Anyway, that’s it for now, if you’ve enjoyed the post, make sure to let Purvi know about it because she deserves all the credit.