I want to place a certain amount of schedules (205) on corresponding sheets (205).
I already created the needed lists and coordinates. See picture: On top the sheets and on the bottom the schedules.
However schedule views don’t seem to be corresponding as a ‘normal’ view. Is there a special node to place schedules on sheets?
I hope somebody can help.
Schedules and views have different placement methods in the Revit API. If you’re curious - when placing views you use Viewport.Create, and for schedules you use ScheduleSheetInstance.Create.
Unfortunately, I don’t know of an existing node that places schedules, however you’re in luck because I have a python script that does this. I modified it a bit to act more like I’m guessing the one in your image does, based on what your Watch nodes are showing.
It expects there to be an equal number of schedules, sheets, and points and matches them up based on their order in the lists.
# Enable Python support and load DesignScript library
# Import RevitNodes
# Import Revit elements & geometry conversion methods
# Import RevitAPI - This gives general access to Revit tools.
from Autodesk.Revit.DB import ScheduleSheetInstance
# Import DocumentManager & TransactionManager
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
# The inputs to this node will be stored as a list in the IN variables.
dataEnteringNode = IN
views = [UnwrapElement(x) for x in IN]
sheets = [UnwrapElement(x) for x in IN]
points = [x.ToXyz() for x in IN]
zip_list = zip(views, sheets, points)
created = 
for view, sheet, point in zip_list:
new = ScheduleSheetInstance.Create(doc, sheet.Id, view.Id, point)
OUT = created
I see now it looks like SeanP beat me to the punch, but I already wrote this out so may as well share it.
This is a great script, and will come in handy. Thanks for the tip.
However, this way I can only select one schedule, to place on multiple sheets.
I need to place schedule 001 on sheet 001, schedule 002 on sheet 002, schedule 003 on sheet 003, etc. (400 times in total).
Is there any way to achieve this with your script? Any help is welcome.
Wow this is great. It works perfectly! Thanks a lot