Revit Room/Door/Colour Schedules & Key Schedules
I’ve started work at an Architectural firm and am trying to setup some room, door, window and colour schedules.
Currently the office uses excel to do their Room schedules then puts the excel sheet on a title block to issue. The danger with this process is that you update something in Revit and you have to remember to come out into Excel and update it there too. I would rather update in one location and not have to remember to update it elsewhere.
- Speed up the tedious stuff and enjoy designing and documentation more
- Works in all versions of Revit
- Information to PROVE your increased speed
I’m looking to setup Room Schedules within Revit. I’ve had a couple of attempts at it to date. I find the task boring and mundane and am looking to see how I can use the leverage of Revit to make the task easier.
I need to make a comment here that this is an existing building, so I have only some control over room/door/window types and so there are quite a few variations (this will affect Key Schedules below). This complexity may not be as marked on new builds.
Revit data to Asset Management Database and use formulas on shared parameters at WCC.
When working at WCC and pushing data into Asset Management Database we pushed data into the Revit Room, door & window elements and then extracted them, after validation of the data, to an external database using RTV Reporter Pro from RTV tools. We created Shared parameters (as we were using them across multiple models) and within the RTV Reporter Pro tool we could use Revit Built-In parameters and use formulas on them. This allowed us to be quite specific in what we were getting out of the model.
An example was calculating the skirting length in a room using 1/ the perimeter and 2/ number of doors in the room. Each door would have a wall opening and we could create a formula that would be Skirting (m) = perimeter – Door opening widths.
This was great, as we could go further and do a check to see if the window sill was at 0.00 in the room, and if it was, also subtract this from perimeter, to five an accurate skirting length.
But in the office I’m now working we have Revit OOTB (out of the box) with only free add-ins to use. So back to basics.
There is a way to use Dynamo to get Built-In parameters, but you have to regularly update the process to keep the data valid. Refer to http://dynamobim.org/leveraging-built-in-revit-parameters/ article that discusses how this can be done.
Attempt One. Revit Schedule , shared parameters and BimOne Export/Import
I immediately created a whole lot of shared parameters and started to fill them in. I Set up the schedule using abbreviation codes and a legend. The reason for this is that there would be a lot of column headers and I wanted it all to fit on a sheet width, the office setup using an A3 format, so not a lot of space.
In the Excel schedules, for the wall orientations (N, E, W & S) they could use separate rows for each of these, so keep the column widths down. I could not see a way to do this in the Revit Schedule, so used abbreviations to make the column widths skinnier.
Because Revit schedules are pigs as far as filling in multiple rows at a time, I used BIM One Export/Import Excel tool Free add-in to take the setup Room schedule and export it to Excel, un-protect the cells, populate the cells with standard data or general data and then re-import that data back into Revit. That way you could copy/paste or multiple-cell fill data quickly in Excel.
Along with this I setup a Word document to do a legend with code for items and then pasted this into a Legend in Revit (I sometimes find Revit text editing tool a bit unresponsive, so exiting large amounts of text outside of Revit is sometimes easier.

( Note, for indenting schedule columns (Floors, Ceilings, Walls etc) watch this YouTube video.
I have ordered the rows by level, and hidden the level column. This video uses the process on Sheets.
Creating some quantities for others downstream
Within Revit there are bits of information that are generated and for free. It would be nice to see if I could leverage some of this information. Things like Floor Area, room perimeter etc
Although we can generate this information, we do not tend to display it, although the information is useful to others.
In an Architectural finishes schedule we are interested in floor type and finish, but not area, although someone has to measure this for getting quantities for pricing.
If this is automatically generated why not put it into the schedule? We can always say that people use this information at their own risk. If they are not comfortable with it, they can always 1/ check some random elements to see if it is the case, or 2 use another method.
If there is a way to make others job easier to get your building built with minimal extra effort, why not do it?
We automatically cover our documentation with a standard disclaimer about checking dimensions on drawings prior to building, so why is this any different? It falls into the same category.
I recently did some preliminary plans and schedules for pricing by the Quantity Surveyor. I put in area in the Room tag and in the schedule showed area and perimeter. I also exported the schedule to Excel so that QS had that information readily to hand.
I’m not sure if it was used but the effort of me generating it in a way that that information could be readily used by others was minimal.
In the schedule above you will see Volume – not computed. This is because I’m only using Area calculation settings at present as its faster. Prior to issuing the schedule I’d need to turn on Room Area & Volume calculations for the schedule to read correctly.

The building I’m working on has tiered seating so the ceiling height varies, even within a single room, so to get Room Ceiling height I have to go for:
Room Average Ceiling Height = Volume/Area. One thing you do have to check, in 2D section views, is that the Room height is pulled up to or above the ceiling height of the room or the slab above (otherwise the Rm Average Height Calculation will be wrong).
Then if you have Room Average Height, you can get Gross wall area by:
Gross Wall Area = Room Average Height x Room Perimeter.
For Nett Wall area you’d have to subtract all wall openings. Now in WCC a tool was developed by a number of people and refined to do this, unfortunately it requires you to have access to Revit Built-In Parameters, which we dont with Revit OOTB. But Gross Wall Area is a start for others.
Attempt 2. Revit Key Schedules.
Whilst looking at how to do Schedules in a smart way on You Tube, I came across Schedule Keys. I’d like to make the comment that I was pretty disappointed with the sophistication of the YouTube Revit Schedule videos, all pretty crude. I’d like to see some more information on how companies are doing schedules and really getting leverage out of Revit. This article is an attempt to do a pretty common schedule.
This video gives a reasonable overview of Key Schedules.
After populating the shared parameters in the Schedule above, if an item changes, I can go into the model and change that instance of the shared parameter. All well and good. Generally though, in Design, we have styles of things, where we try and combine certain things together, in doors, for a type of door, we try and standardise door hardware, jambs, etc. With windows, the hardware and window style and finishes, and with rooms certain stylistic patterns, as per colour schemes, we may have a pastel theme where we have selected a blue, green, red and purple pastel colour schemes that we propogate through the building.
This standardisation is fine, as it makes a lot of these complex issues become more simple as we apply them to better manage the variations. One thing though with these decisions is that they do change as the project progresses. Instead of the purple colour theme a rose one is substituted. In a normal schedule process the original rooms that were purple would need to be individually identified and then updated to the new rose scheme. But, by using Key Schedules you can update the purple scheme and this automatically changes all rooms that have that selection. Also, using the key and referencing it to a number of parameters, eg wall colour, skirting colour, ceiling colour, door frame colour, scotia colour , when you update the key row of data it updates all these parameters at the same time.
So this is magic and wonderful. Up to a point.
Upside. Allows for late changes to be managed efficiently and quickly.
Downside 1. Can get very complex if lots of variations. Eg For a room finish you may have vinyl floor and west wall a different finish to N,E & S walls, and ceiling suspended. For another room, almost identical but concrete floor, and East wall a different finish to N,S, W walls, and ceiling plasterboard. As you can see, the more items you cluster together, the more likely there are multiple variations that need to be managed. So the solution to this is? Multiple Key Schedules. Do one for Floors w/ skirting, one for Walls at different orientations, one for Ceiling and Scotia. This way you are only managing a few parameters in each schedule so should not have many variants.
Downside 2. Key schedules cannot use Shared parameters, only project parameters.
See this video on different parameter types in Revit. This thread on Project/Shared parameters.

To create a Key Schedule, go to Views Tab & select schedules, then Schedules/Quantities
Then select the category that you want your schedule to be about (this example rooms) then select Schedule Keys, give it a different name if you already have a Key Schedule in this category (I have one Floor Key, Wall Keys, Ceiling Keys to differentiate between them)

By default, it automatically puts Key Name in the scheduled field.

Under Rooms there are other available fields. The blue ones are System Parameters (there is also Comments but I’m already using that in another Key Schedule) and there are only a few of them (Blue Arrows). Also there are some Project Parameters that I have created (the Red Arrows). You can select any of the ones in the left hand column (or create some new Project Parameters) and you need to put them in the Scheduled Fields by selecting them on the left and clicking the green arrow to move them to the right hand field.
To make a new Project Parameter:

Some key Schedules for Room Schedules.
This one is for colour. The Key name I have used a descriptor that can easily be picked from a pull down so you know which colour scheme you are choosing. Note the Red Arrow on the left, this is the column header name that will be the Key Name selector.

For the floor I have been a bit more verbose on the Key Name descriptor as this is the only column that will come into the schedule that you will be selecting, so you need to be clear on what you are populating the rest of the parameters with. Note again the Red Arrow on the left (RSflr), this is the column header name that will be the Key Name selector.

For room walls, the one Key Name will drive the 8 Wall substrate/finish fields. This will be called RSWall in the main schedule. Again a rather verbose description so you are clear on what you are selecting for all the8 parameters you will be populating with the single selection
The red arrows show how to add another row to the Schedule to add another selection.

In the main room schedule, we now add the RSFlr & RSWall parameters to the schedule. We need them visible to start with so we can make our selections for all the rooms. Then when this is completed we can make these 2 column HIDDEN.
So in the RSFlr field, we pull down the tab and choose a selection for a specific room:

Our specific selection populates those parameters for the room

Same with walls. We select a wall type. In the RSWall column, we select a wall type. Note, at the top of the selection is (none) . If we choose that option we can populate that row of parameters manually one by one.

And it populates the 8 parameters in the table. Note, if this type changes, we have a P3 type paint, or wallpaper, we only need to change the Key Schedule (either update all the concrete, painted wall types, or we create another Key Type with concrete, wallpaper and then change the key name in this specific room to this type.

Once we have populated the schedule we can then hide the Key Schedule Columns:

And we end up with the Room Schedule populated with the legend (the one below only partially complete)

There is always the issue of transferring these parameters to another project, or else you may want to tag items in your sheet elevations/drgs or model. To do this you’d need to copy the populated Project parameters across to shared parameters. To do this you would:

Create a set of shared parameters (different names but representing the same elements (green box above are Project Parameters, the Red Box ones are Shared Parameters). You’d export the Schedule to Excel. Copy the Project Parameter Column Data to the equivalent Shared Parameter equivalent and then re-import the schedule into Revit. Then you’d be able to tag the shared parameters (note the shared parameters for walls could be in Room & Wall categories, so you could tag Room Wall Elevations). The issue with this is its a static process that you’d need to update through the project.
There seems to be a bit of a grizzle on the web about Key Schedules only being Project and not Shared Parameters.
Anyway, its still early days for my schedules. I’m sure there will be a few more challenges along the way.
Related Posts

aText Premium Bash & Adding your own scripting programs – Confusing

Python Remote Trigger from subdomain on Website
