How To Modify An Assembly Schedule?

Hi All,

I am looking for some help to apply filters to my schedules automatically when I create an assembly schedule possibly using some tools from the Archi lab package. I am lost on how to get started. Please Help!



So I was able to get the schedule that I want from my project. Now I am lost on how to apply the filters and sorting parameters. Does anyone have suggestions on where I go next?

Thank you

Hi Jake,

As far as I’m concerned, there is no node to adjust the schedules with desired fields.

And going to the schedules created automatically by the assemblies, the API allows only to create them with a AssemblyViewUtils.CreateSingleCategorySchedule Method, which includes by default the fields “Family and Type” and “Count” with no possibility to change it. So a python node would also do no good here.

Or maybe someone else will enlight me, I would also see such feature beneficial :slight_smile:


Thanks for responding Pawel.

Yeah this would be huge for me. This project I am working on has around 500 assembly’s right now with 2-3 schedules each and that is one floor only. You can imagine how this would speed things up for me. Each of those schedules i have to go through and set the filters, sorting, grouping ect. Hopefully someone looks at this post and has encountered this same scenario and has some kind of fix. Thanks again



1 Like


im new to here, but I have same problem. Actually thats why i started exploring dynamo. I know there are some APIs for that but they are pretty expensive. I have many projects that have over 100 assemblys and its so time consuming to do all the schedules manually, the parameters part. I hope someone can enlighten us with some quality advice. Thank You.

Hi Kalev,

In Dynamo you can automate your process. There are lots of topics on parameters. Try searching the forum according to your needs else can you be more specific what kind of workflow your looking.

can this help?
I manage to duplicate a schedule formatted the way I wanted, but need to filter it for assembly name.

var availableParameterIds = TableView.GetAvailableParameters
(RevitDoc, new ElementId(BuiltInCategory.OST_DuctTerminal));
foreach (var pid in availableParameterIds)
var builtinParameter = (BuiltInParameter)pid.IntegerValue;
//work with the BuiltInParameter

try scrolling through this page to maybe get an idea how to start. I haven’t tested these in recent builds of Dynamo but give it a try and post something that we can all work with rather than what you have posted so far.

I appreciate your response. I’ll post here since you responded. I might need to start a new post. trying to get a handle of using dynamo to filter assemblies from template schedule. Although your page does give me options to manipulate schedules, format and sort. I will take a closer look at it and see if I can use some of these nodes. Like the posters above I’m looking to Filter my schedules. New to Dynamo and have only glance at the API/python scripts. Below is my graph where I created multiple schedules to be filtered, but I’m stuck at creation and have to manipulate filters manually.

This link here shows TableView API option that may help get me there, but I need to API my head before I can figure out if its useful.

Found this Code from an old AU CLASS by Scott Conover, hoping this could lead to what we are looking for.

        /// <summary>
        /// Adds a new filter to the schedule
        /// </summary><
        /// <param name="schedule"></param>
        /// <param name="levelId"></param>
        public static void AddFilterToSchedule(ViewSchedule schedule, ElementId levelId)
            // Find level field
            ScheduleDefinition definition = schedule.Definition;

            ScheduleField levelField = FindField(schedule, BuiltInParameter.ROOM_LEVEL_ID);

            // Add filter
            using (Transaction t = new Transaction(schedule.Document, "Add filter"))

                // If field not present, add it
                if (levelField == null)
                    levelField = definition.AddField(ScheduleFieldType.Instance, new ElementId(BuiltInParameter.ROOM_LEVEL_ID));

                // Set field to hidden
                levelField.IsHidden = true;
                ScheduleFilter filter = new ScheduleFilter(levelField.FieldId, ScheduleFilterType.Equal, levelId);



I’ve read this topic and it seems like Wuillian Medrano posted a way to add filters to a schedule?
Have you managed to get it working? if so i’m very interested in finding out how to do that =)


check it out, thank to resent schedule node posted in the forum


Schedules Filtering - Add More Schedules

Wuillian Medrano
WM Consulting Service

Here is a video of the entire documentation package for assemblies

1 Like

Wuillian what is the Python Script in the end of the Duplicate Template.

Thanks Scott

I think it was this one. look for duplicate view node.