Add Schedule on Sheets

Well, thanks for you advices Jacob, but adding a schedule to an existing sheet is not possible, or seems not to be… here is the error I get :image

And I can’t realy modify the schedule once it’s place, cause would be too long. The main purpose of this program was to duplicate an existing schdule by just modifying a single parameter and to place it on a sheet…

So when you say you’ve duplicated the schedule do you mean you have multiple schedules showing in your Project Browser or that you’ve created new schedule graphics? Schedules are views but they work more like families. The schedule view is like the family type but you actually place schedule graphics, think of it as the family instance, on the sheet. I believe you have to create the schedule graphic as a function of the schedule view and the sheet it’s going on.

I don’t realy understand the difference between schedule views and schedule graphics. I have duplicated schedule so I can see many schedules in my project browser. When I drag them and drop them in a sheet, it works perfectly, but when I try to do the same with dynamo (as shown in the picture from my previous post), it doesn’t seems so recognize it…

When you drag a schedule view onto a sheet it creates a new schedule graphic instance. Part of the point of schedules/legends is that they can be placed on multiple sheets. You don’t need to duplicate the schedule. You need to create a new schedule graphic. I know it’s available somewhere in the API but I’m having trouble finding it right now.

newSchedule = ScheduleSheetInstance.Create(doc,sheet.Id,scheduleId,point)

1 Like

Have you come across this topic…it places schedule on sheets

@Nick_Boyts, how do I use this? I mean, is there a way getting it in dynamo without “coding”. If I can, I don’t want to do some python or C#…

@4bimfercesp, thanks, but I don’t realy see how it helps… I try using the node with schedule and it didn’t work, without any error…

Afraid not. You’d have to use Python. Which I would highly recommend you look into at some point. This is actually a fairly simple method to code.

1 Like

Have you checked out this forum post?

You have to place one legend/schedule on a sheet, and then it will copy to the same place on all other sheets you choose. Very good, and works straight out the box!

Sorry to bring up an old thread, but this is the only information i have found for placing schedules on sheets. However i would like to have a script that places 4 different schedules on any sheets with the name “footing”, negating the need for datashapes and the user having to select which schedules are placed and on which sheets. I’ve looked at trying to modify this script to get it to work but it’s completely different from what i would expect. Is it possible for a script to be able to do this with schedules?

For starters, I would recommend that you start a new topic rather than comment on a post that is several months old. You can then link this post for reference, but may get you and others a better result.

That said, may I ask what you would expect?

Here is what you should do.

  1. Sheet Category

  2. All Elements of Category

  3. Filter with Bool mask by Sheet Name contains “footing” (sheet input of Viewport Node)

  4. Schedule Graphics Category

  5. All Element of Category

  6. Filter with Book Mask by Schedule Name for the ones you need or select another way. (View input of Viewport Node)

Get the location information for where you want the four schedules to be. This is why using the template schedules in my post is easy because you don’t have to do any work, just lay them out and let Dynamo get the location. (Location input of Viewport Node)


Just make sure you cycle the views for each of the sheets or use some other list management to make them equal length.

Thanks Sean, sometimes people ask to keep all relevant questions in the one thread but i will remember this for next time. Thanks for helping me out - I think i’m pretty close, but cant seem to get the schedule to filter/bool. I have attached my graph, and the name of the schedule i am trying to add to my sheets. The sheets are selected fine, but my dictionary “match” list is empty, to me it looks like Dynamo is not selecting the schedule - possibly due to the way i have named it? Either that or i shouldnt be using the list.filterbystring node.


Use and Element.Name node between the All Element and the List.FilterByString. Right now you are trying to filter against what you see in the preview which are just instances and not anything you can match.

Ah ok. I have done that and am getting a new error. The “viewport.create” node has an error of ‘viewid cannot be added to the viewsheet’ (see attached “run 1”)

I currently have two zones setup in my project - Zone A & Zone B. I had originally manually placed the schedule on both sheets, but then deleted the schedule from Zone A, but left it on Zone B for this trial.
When i delete the Zone B sheet that I am trying to add the schedule to, I don’t get the error but i get an empty list in my “list.filter bystring”.

I would say this is because there is no ‘instance’ of the schedule on any sheets now, it is only in my schedules list. Would this be correct? Would it be easier to upload the revit file and dyn script for troubleshooting?

Well for starters, I think you need to make sure that your units are correct and in FT. Try making the X and Y something like 1 or .5 and see if that helps. I am guessing a bit, but I would think right now its trying to place it over 400 & 700 feet away from the origin of the sheet.

And yes, you are correct that when you delete the holder sheet, the view instance goes away. You could solve this by getting ViewSchedules by category rather than Schedule Sheet Instances, but the nice thing about the Viewport node is that it will get it from the instance which I why I used it initially, but it is not the only way.

We work in Millimetres here, and I took a script i had written for other notes to be added which uses the 745 as a point and had no worries. Regardless i changed the coordinates to 0.5/1 and am still getting the same error. Any idea what might be causing it? Is it a case of needing to create an instance of the schedule; because i would rather not have them already setup on a dummy sheet so that i then select them and move/copy them to the relevant sheets. I’ve just tested again, this time removing the location input node and get no errors, however the schedule still does not show up on the drawings.

If you don’t want to use a placed view, then as I mentioned before, try using Element Types node with ViewSchedule and All Elements of Type to get a list of the base schedules. Then you can filter as needed and use in the Viewport.Create node.

1 Like

Ah thankyou! seems like i’m nearly there - it has now added the schedule to the first of my two selected drawings, but has not added it to the second sheet (and some jobs may have 4 or more Footing Marking Plans). So how would i get the script to create the schedule and place it on more drawings (hopefully without duplicating these nodes within the script - because again i want it to be able to do it for any amount of plans)

Set the lacing on the Viewport node to Longest or Cross Product to get the results you need.

1 Like

Sean, you are a champion! Anytime you come to Australia it is my shout for beers :slight_smile: Thanks very much for your help and putting up with my silly questions!

1 Like