Advertisement
IvaSerge

ChangeElSysMode

Mar 24th, 2018
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.49 KB | None | 0 0
  1. import clr
  2. clr.AddReference('RevitAPI')
  3. import Autodesk
  4. from Autodesk.Revit.DB import *
  5. #Для далнейшего сокращения записи используем "маску"
  6. #Длинное: Autodesk.Revit.DB.Electrical.ElectricalCircuitPathMode
  7. #Краткое: pMd
  8. from Autodesk.Revit.DB.Electrical import ElectricalCircuitPathMode as pMd
  9.  
  10. clr.AddReference("RevitServices")
  11. import RevitServices
  12. from RevitServices.Persistence import DocumentManager
  13. from RevitServices.Transactions import TransactionManager
  14.  
  15. doc = DocumentManager.Instance.CurrentDBDocument
  16.  
  17. #Мне не хочется брать Динамовские системы, потом их Анврапать
  18. #Я сразу получаю системы из Ревита напрямую
  19. elSys = FilteredElementCollector(doc)\
  20.         .OfCategory(BuiltInCategory.OST_ElectricalCircuit)\
  21.         .WhereElementIsNotElementType()\
  22.         .ToElements()
  23.  
  24. outlist = list()
  25.  
  26. for sys in elSys:
  27.     #Проветка систем. Если мод системы AllDevices - изменения не вносим
  28.     if sys.CircuitPathMode != pMd.AllDevices:
  29.         #Почему-то работает когда транзакция индивидуальна для системы
  30.         TransactionManager.Instance.EnsureInTransaction(doc)
  31.         sys.CircuitPathMode = pMd.AllDevices
  32.         TransactionManager.Instance.TransactionTaskDone()
  33.    
  34.     #Проверка, что на выходе
  35.     sysMode = sys.CircuitPathMode
  36.     outlist.append(sysMode)
  37.    
  38. OUT = outlist
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement