Hi
I’m trying to control schedule instances (on a sheet) based on a template schedule instance. I want to be able to:
Then once I have this:
I can’t see any OOTB or third-party nodes that would solve this. Any ideas if this functionality already exists?
Hi @Paul_Wintour i have never seen such a node in package…havent test but isnt that way if we split a scheduleonsheet it create a new instance scheduleonsheet…not sure havent tried
Splitting a schedule results in two scheduleSheetInstances, with different ids. They point to the same ScheduleID but have a different SegmentIndex.
Anyone have any ideas how to solve?
1 Like
Please clarify what you are wanting to do after checking if the schedule is split?
If it is split, you don’t want to do anything from this point.
If it isn’t split, you want to get the segment height and divide that into two equal parts and split the schedule or…?
1 Like
Apologies if my initial question was unclear. Once the schedule is placed it becomes a schedule instance and I can use the name to help workout if it has been split. I’m sure there is a more robust method, but Revit adds a 1/2 or 2/2 suffix to the view name. So checking if it the scheduleInstance is split is acheivable.
The next step is to find out what the segment heights are. This should be a standalone node for flexibilty (Workflow 1)
I then have a list of scheduleInstance placed on OTHER sheets that I want to modify. So I need these scheduleInstance to be split (if needed) based on a segment height (which I’ll know from workflow 1).
Does that make sense?
1 Like
Hi,
here is some research carried out
Python Script 1
import sys
import clr
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import ViewSchedule
scheduleview=UnwrapElement(IN[0])
conditionnal=[s.IsSplit() for s in scheduleview]
print (conditionnal)
OUT = [s for s in scheduleview if s.GetSegmentCount()>1]
Python Script 2
import sys
import clr
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import ViewSchedule
scheduleview=UnwrapElement(IN[0])
scheduleinstanceId=[]
scheduleinstanceId2=[]
for s in scheduleview:
for a in range(s.GetSegmentCount()):
z=s.GetScheduleInstances(a)
scheduleinstanceId2.append(z[0])
scheduleinstanceId.append(scheduleinstanceId2)
scheduleinstanceId2=[]
OUT = scheduleinstanceId
We can do everything in 1 I think, but I’m still not alert enough on this point (one day maybe…)
Sincerely
christian.stan
2 Likes