Is it possible to change the draw order for detail components in multiple views?
I tried modifying your code as attached:
bring to front.dyn (7.1 KB)
"
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('System')
from System.Collections.Generic import List
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
#Converting input from Dynamo to Revit
detailItems = UnwrapElement(IN[0])
#collecting views
viewcollector = FilteredElementCollector(doc).OfClass(View)
#viewcollector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Views)
views = list()
viewIds = []
for view in viewcollector:
if view.IsTemplate == False:
views.append(view)
for v in views:
#viewId = v.Id
viewIds = List[View]([v])
#Creating collection of elementIDs
elemIds = []
for el in detailItems:
elId = el.Id
elemIds = List[ElementId]([elId])
#Bring detail item to front in a transaction
TransactionManager.Instance.EnsureInTransaction(doc)
#for i in range(0,len(elemIds)):
for v in views:
btf = DetailElementOrderUtils.BringToFront(doc,v,elemIds)
TransactionManager.Instance.TransactionTaskDone()
OUT = btf
";