I am a new Dynamo user, having used Revit for a couple of years now, and have made a start on my second program…
I am in the process of creating room data sheets for a large project with lots of rooms. I have created sheets with plans and internal elevations and am now looking to add schedules of each room to each sheet.
My process in Revit would be to make the first schedule with appropriate fields (room number , name, area floor finish etc.), add a filter to show only the room relevant, add it to the correct sheet, then duplicate the schedule, change the filter to the next room, add it to the next sheet, duplicate… etc.
So far I have made a program which gets the rooms, creates schedules for each room with a name based on the room number:
However, when I try to add the fields I want to each schedule I get an error.
But if I include the ‘List.GetItemAtIndex’ node I can add fields to one schedule… I think I’m almost there but perhaps there’s something about organising lists I’m not understanding…
Hopefully the attached image explains what I’m trying to do!
Any pointers would be much appreciated. I have trawled through lots of posts on the forum relating to schedules and the AddFields node but haven’t been able to spot anything, apologies if I have missed an obvious topic!
Room Schedules.dyn (35.0 KB)
AddFields is expecting a list of fields per schedule. The easiest way to fix this is to change the list levels on that node to scheduleView @1 so that each schedule in your list will be evaluated separately.
Thanks Nick, I’ll go do some more reading on list levels as I’m unsure how to do what you say…
For now I’ve taken a step back and tried to get this working with a single room with the filter I mentioned in my first post:
However the ‘ScheduleFilter.ByFieldTypeAndValue’ node is giving me trouble, I think I’m not feeding it what it wants…
Warning: One or more of the input types are not matching. Couldn't find a version of ByFieldTypeAndValue that takes arguments of type (Revit.Schedules.SchedulableField,function,string)
I’m not sure which input could be incorrect though, I assume that a field is coming out of ‘ScheduableFields’ (this inputs into the ‘field’ port of ‘ScheduleView.AddFields’ without error), Code.Block is Equals (easy enough) and the ‘List.GetItemAtIndex’ is outputting a var (room number).
Has anyone used this node with success? What inputs did you use?
Anyway, updated file:
Room Schedules With Filters.dyn (18.2 KB)
On a side note, I think maybe the ‘ScheduleFilter.ByFieldTypeAndValue’ node has been behaving slightly buggy for me, if I run the above program I get a warning returned (fair enough), if I then delete the whole group ‘filter by room number’ and hit the run button again, nothing happens. Dynamo says run completed but it has done nothing. However if I close the file, open it again and delete the group before hitting run, hey presto, I get a schedule with fields as expected…
The expected inputs for the ScheduleFilter.ByFieldTypeAndValue are ScheduleField, String, & value (will depend on the parameter storage type).
Right now you are giving the node “SchedulableField” rather than “ScheduleField” as you are using the output from the ScheduleView.SchedulableFields node. Use the output from your ScheduleView.AddFields node with a ScheduleView.Fields node to get ScheduleFields.
Next you are giving the node a function for filterType because you haven’t formatted your Equals code block to be a string (alternatively you could use the Schedule Filter Type drop down node as to assure you are inputting a correct filter type, as it is actually “Equal” and not “Equals”). See here and adjust :
Thanks so much Amy, this was a massive help!
(apologies for the slow reply, I’m new to the forum and didn’t have my notifications set up properly yet)