HELP! Activate multiple views on multiple sheets

Hey,

Slightly modifying this…

Means I can edit the python to get a different PostableCommend Enumeration…

Which seems to work…

PostableCommandEnumeration.dyn (3.7 KB)

import clr

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIDocument
uiapp = DocumentManager.Instance.CurrentUIApplication

clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *
clr.AddReference('System.Core')
from System.Collections.Generic import HashSet

def tolist(obj1):
if hasattr(obj1,'__iter__'): return obj1
else: return [obj1]

# IN variables...
run = tolist(IN[0])[0]
elems = tolist(UnwrapElement(IN[1]))

# Main Code...
if run:
# Get ElementIds to list...
elemIds = HashSet[ElementId]([e.Id for e in elems])
# Set Selection (required for the postable command)...
uidoc.Selection.SetElementIds(elemIds)
uidoc.RefreshActiveView()

# Get RevitCommandId of PostableCommand...
rvtComId = RevitCommandId.LookupPostableCommandId(PostableCommand.ActivateView)
# Run PostableCommand...
uiapp.PostCommand(rvtComId)

OUT = 'Command Has Run'
else:
OUT = 'Please set Run to True';

Hope that helps,

Mark

1 Like