“Hey Michael, got a second?”
I looked up from my desk to see my project manager standing at my desk. He had a mischievous look on his face.
“I have a special project for you.”
Uh oh, I thought. This isn’t going to be good. The last time he had a “special project” for me, I spent a week field verifying a (very) creepy wing of an old hospital building. It took weeks to get all the cobwebs off my clothes.
“Um, sure” I answered with some trepidation.
“Great!” He handed me five E-sized sheets covered in red pencil.
“Here’s the revised room finish schedule. I spent all weekend marking it up. I need you to make the updates in Excel then reprint the sheets and double check them.”
Ugh. We were using regular AutoCAD on the project so there was no hope of getting out of this the easy way. I was going to have to make all the updates manually.
If only we’d had Revit at the time. Key schedules would have saved me a LOT wear and tear on my fingers.
What Are Revit Key Schedules?
A key schedule is a special type of Revit schedule that lets you assign groups of parameter values to elements, like rooms or doors, based on a shared key value.
It’s kind of like ordering a combo meal. Number 1 gets you a hamburger, fries and a soda. Number 2 gets you a turkey burger, salad and a water. Each meal contains a specific sandwich, side and beverage.
In Revit, each key schedule defines specific parameters. Each key has its own values for the parameters. When you set the key value for an element, its parameters are automatically filled in per the value defined in the key schedule. If you update the key schedule, each element’s values will update as well. Pretty cool!
Why Use Key Schedules?
The major advantage to using key schedules is they can save you a lot of time entering data. You enter the parameter values once in the key schedule. Any object that has the same key value will automatically get those parameter values. What’s better, any change you make to the key schedule will automatically update all the elements keyed to it.
For example, say you’re working on a large hospital project. You have a lot of typical rooms, like patient rooms, exam rooms, operating rooms, and offices.
You can create a key schedule which sets all the finishes for each room type. All you need to do to populate a room with the correct set of finishes is assign the room the correct key value. It’s that easy!
How to Use Key Schedules
Key schedules require a little bit of planning but they’re easy to set up. Simply follow the step-by-step guide below and you’ll save lots of time on your next project.
Step 1 – Create Project Parameter for Key
Create a new project parameter for the key value. In this example, I’m going to create a project parameter called “Room Type”. This parameter is an instance parameter and is set to “Text”. Apply the parameter to the “Room” category.
Click “OK” to create the parameter.
Step 2 – Create Key Schedule
Create the key schedule by going to View > Schedules > Schedule/Quantities. In the “New Schedule” dialog box, click the option next to “Schedule Keys”. This will identify the schedule as a key schedule as opposed to a building component schedule.
Next, specify the key parameter name. In the “Key Name” field, enter the project parameter you’re using as the key. I’m going to enter “Room Type”. Give your schedule a name so you can easily identify it as a key schedule. I’ll call this one “Room Type Key Schedule”.
Lastly, specify the category for the schedule. This is a room key schedule so I choose the “Rooms” category.
Click OK to create the key schedule.
Step 3 – Define Key Schedule Fields
Once you’ve created the key schedule, you need to specify the parameter fields that will be driven by the key schedule. In this example, I want to drive all my finish fields from the key schedule. I select them from the list and add them to the key schedule. You’ll notice there’s one field already added for the key.
Click “OK” to define the schedule properties and close the dialog box. You’ll then see your new schedule.
Step 4 – Enter Key Data
The “Key Name” field is where you’ll enter the name for each individual key. This is what creates the link between the element and the key parameters. To add a new key, click the “Insert Data Row” button on the ribbon.
Since we’re working with rooms, I’ll give each key a name corresponding to the room type. I will also input the data for all my key fields. Once I update a room with the correct key name, all the data from the key schedule will flow into the correct parameter fields.
Step 5 – Add Keys to Elements
Create a new schedule or edit an existing schedule to include the key project parameter. We’ll use this schedule to specify the key value for our rooms.
Revit will recognize the relationship with the key schedule and provide a drop-down from which you can select the defined keys. Select a key from the list and the key fields will update automatically
Any changes you make to the key schedule will update automatically in the building component schedule. You can also update the key type directly from the model. Since the key value is a project parameter, simply select the element and change the key value in the properties window.
That’s it! You can add additional keys as your project evolves. Likewise, if you no longer want to drive an element’s parameters from the key, simple set its key value to “none”. This will reset all the parameter values.
Conclusion
With a little bit of planning, key schedules can save you a LOT of time over the course of your project. Managing a handful of keys in a key schedule is certainly a lot easier than updating hundreds or thousands of individual elements. Plus, all of the specified parameters will be consistent for each key. That’s more than you can say for the room schedule I had to update manually.
So what do you think? Do you use key schedules? If so, what do you use them for? Leave a comment below!
I don’t understand why you would use one schedule to fill out another. In your example, why not simply put the Room Type (Key) Schedule on the drawings, and put the Room Type on the Room Tags in the plan view? It seems using layered schedules that way requires far too much planning.
Also if you want to change a single value of a scheduled item to something different from the Key value, do you have to re-enter each cell of data, or can you “override” a single cells data from the Key value?
Dan Pecor, if I understood correctly from the article, I think that key schedules are a means of controlling the updates of “instance parameters” only. Type parameters can already be mass updated using the “Type Properties” dialog box for a Revit family, but instance parameters, as you know, must be entered one by one in a schedule or through an “Excel-to-Revit” plugin. I believe a good use for key schedules is configuring the hardware sets for the doors in using instance parameters. It would be ridiculous to create a door type for each door and hardware set, because it will result in hundreds of type combinations and confusion. So a hardware set key parameter can be the code which you enter for the hardware sets, which drives the values in the door parameters that indicate the hardware components. This will allow the user to only change the hardware set code and, BOOM, 10 more related parameters get filled automatically. I hope that explains the use of key schedules.
That’s exactly right Saji. Door hardware and door details are perfect uses for key schedules.
Hi Saji, I am using key schedule for Door hardware’s sets in my door schedule. But, the problem is I have more than 5000 doors, So choosing key in Door schedule for each door one by one manually takes lot of time. I can do writing values from excel to Revit for all other parameters using either dynamo or other plug – ins. Unfortunately, excel to Revit is not working for choosing the key in Door schedule. Is there any way you can suggest me to automate this step..Thanks a lot in advance.
If you can group or filter the doors you want to change in some way and then use the options to not sort/group the schedule with “Itemize every instance”, then you can change multiple doors at the same time.
Dan,
With a key schedule you maximize productivity by controlling less doors rather than single items. In large projects, usually with hundredths of doors, it is crucial to maintain door and frame types the same, controlling one door type in the key schedule and applying this to all the doors needed to be the same, avoids future problems. I’ve done this method for years and it is the best way and most efficient to coordinate doors and frames in large size and medium size projects.
You’re absolutely right David. For large projects, key schedules can save a ton of time, especially for repetitive elements like doors and rooms.
Micheal
Funny you bring this up now… So my door schedule is almost all automatic (can’t tell how I hate typing in HM, WD 1000’s of times, now they are parameters in the doors themselves. But for all that I’m still only about 80% automatic in the door schedule, because of course I have Head, jamb & sill details to still fill out!!!! So low and below comes Key schedules now I can (in theory) make separate cases for where detail go with what types of doors. Well Key Schedules has come to the rescue in this case!!! I’ve use them once so far in practice on just a few types, but it works GREAT for what I need to automatically feed into the Main Door Schedule. GOTTA LOVE these kinds of schedules!!!
Any advice on using key schedules with linked files?
We use linked files a lot because we deal with sites with multiple buildings on. Each building is built in a separate model file and we then link these in to another single file to set up and create working drawings – as they will use standard details etc across buildings these get drawn in the combined file, sheets etc and references can all be coordinated much easier than trying to manually do it across files.
Only problem is if you set a key schedule parameter (e.g door ironmongery set) in a particular building file, it won’t then show up in schedules in the file you link it in to.
I thought you had solved a problem i was running into – but it looks like you haven’t. You didn;t actually pre-set the Key Parameter to be classified as a Text Project Parameter – you just made two project parameters with identical names.
Look at the bottom image from step 5. You have a Room Style parameter in both the Text and Identity Data sections of the room’s properties. The Text one is the one you made by adding a new Project Parameter, and the one in Identity Data is the one that got created by making the Key Schedule. The two parameters do not communicate with one another.
I was really hoping to make a Key Schedule, where the generated key parameter was classified in something other than Identity Data – but I don’t think it is possible.
how do you create a key schedule with parameters from another key schedule?
Is there any way to get the Key Value (1, 2, 3…) into a room or space tag?
Great tutorial, thank you!