Filtering Schedules

I had a question earlier in the week via Linkedin from Marvin, the question was

Ryan, I was wondering if you could tell me how do I split my schedules per level?

It’s a question that crops up eventually for most users, and it’s an easy one to implement.

Tucked away in the list of parameters you can work with is the Level parameter, Simply add it to your list of scheduled parameters. My example will be scheduling plumbing fixtures. I’m scheduling the Family and Type and Level built in parameters as well as a shared parameter that I have created named FixtureAbbreviation.


My schedule lists out all the toilets in my model and is showing me what level they’re sitting on, you can see that I’ve highlighted elements on level 0 in yellow and elements on level 1 in a red-ish colour.


Now I have this information, I have a few different options to work with to separate elements by level. First, I can group my elements by level in a single schedule. To do this I simply open the Schedule Properties dialogue and head to the Sorting/Grouping tab.


From here, choose Level from the drop down list. You can choose to sort the groups in ascending or descending order, insert blank lines between groups or add headers and footers to each group as well. You can see in the example below, the schedule has been grouped by level and a blank line has been inserted splitting the groups.


The other option is to filter by level, when doing this you’re going to create a schedule per level, meaning that any elements that don’t match the filter won’t appear in the schedule. This is great for showing the number of items on a level, in the past I have done this for plumbing fixtures and sprinkler heads.

To filter by the level, head back to  the Schedule Properties dialogue and head to the Filter tab. First select the Level parameter and then choose the level you want to filter by.


In this example, I have filtered my schedule by Level 0. You can see that the schedule now only shows those elements located on Level 0.


You can quickly replicate schedules for other levels by duplicating the schedule, renaming it and then changing the level it is filtered by.


When working with schedules, you can filter and sort by almost any parameter available to you, the main exception is also the most annoying one, you can not filter your schedule by your family type name. An easy way to work around this is to utilise another parameter that is consistent for that family type, in my example if I was to filter or sort based on individual plumbing fixture types, I could use my FixtureAbbreviation shared parameter.

Schedules have a lot of uses and are really quite powerful once you get your head around them.

3 thoughts on “Filtering Schedules

  1. avatar Marvin Mercado says:

    Thanks Ryan.
    But what about Pipe Schedule per Level : Size, Length. When you’re in Schedule Properties for Pipes there’s no Level to choose.

  2. avatar Ryan Lenihan says:

    Hey Marvin,

    There is no easy way to do it with pipework unfortunately. You need to add another parameter that will indicate the level to filter by.

    The easiest way to populate these parameters is probably going to be with BIMLink. If your company doesn’t already have BIMLink I highly recommend that they get it.

    If you don’t have access to BIMLink you can use Dynamo. You can download Dynamo from

    First, create a parameter named Level or something similar. The parameter could be a project parameter or a shared parameter. I’ve called my parameter “MyLevel” and I’ve made it a project parameter.

    Create a parameter

    Once you have the parameter created, use Dynamo to replicate the following graph

    Dynamo graph to generate level parameters

    When you run Dynamo, it will take all the reference level names and populate your “MyLevel” parameter, you can see here that I have a pipe selected and the MyLevel parameter is filled in.

    Parameter is now filled in

    You can then select your MyLevel parameter in your schedule and use it to filter or sort your schedule.

    create and sort your schedule

    And the end result will look like this

    finished schedule

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: