Hello,
I want to create for each class in the document a SystemType…
i am not sure, wether i handle it well, my code so far
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
#from Autodesk.Revit.DB.Structure import *
#from Autodesk.Revit.DB.Mechanical import *
#from Autodesk.Revit.DB.Electrical import *
#from Autodesk.Revit.DB.Plumbing import *
import System
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI 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
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
tGroup = TransactionGroup(doc, "Create and Set MEP-Systems")
tGroup.Start()
#t1 = Transaction(doc, "UndefinedSystemClassification")
#t1.Start()
#_undefinedSystemClassification = MEPSystemClassification.UndefinedSystemClassification
#_uSC = Mechanical.MechanicalSystemType.Create(doc, _undefinedSystemClassification, "UndefinedSystemClassification")
#t1.Commit()
t2 = Transaction(doc, "ReturnAir")
t2.Start()
_returnAir = MEPSystemClassification.ReturnAir
_rA = Mechanical.MechanicalSystemType.Create(doc, _returnAir, "ReturnAir")
t2.Commit()
t3 = Transaction(doc, "SupplyAir")
t3.Start()
_supplyAir = MEPSystemClassification.SupplyAir
_rA = Mechanical.MechanicalSystemType.Create(doc, _returnAir, "SupplyAir")
t3.Commit()
_exhaustAir = MEPSystemClassification.ExhaustAir
_dataCircuit = MEPSystemClassification.DataCircuit
_powerCircuit = MEPSystemClassification.PowerCircuit
_supplyHydronic = MEPSystemClassification.SupplyHydronic
_returnHydronic = MEPSystemClassification.ReturnHydronic
_telephone = MEPSystemClassification.Telephone
_security = MEPSystemClassification.Security
_fireAlarm = MEPSystemClassification.FireAlarm
_nurseCall = MEPSystemClassification.NurseCall
tGroup.Commit()
OUT = [_undefinedSystemClassification,_returnAir,_supplyAir,_exhaustAir,_dataCircuit,_powerCircuit,_supplyHydronic,_returnHydronic,_telephone,_security,_fireAlarm,_nurseCall]
will there one day a autocomplete ? like in PyCharm f.e.?
with the look up - i was not realy sure to find the correct SystemType…
KR
Andreas
You will have to import the Mechanical namespace to access the classes and methods
add import Autodesk.Revit.DB.Mechanical
to your imports and after this you can access the classes via Mechanical.<ClassName>
2 Likes
@Mike.Buttery ,
i tested but it does not work
import clr
import System
import sys
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *
from Autodesk.Revit.DB.Mechanical import *
from Autodesk.Revit.DB.Electrical import *
from Autodesk.Revit.DB.Plumbing import *
clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI 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
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
tGroup = TransactionGroup(doc, "Create and Set MEP-Systems")
tGroup.Start()
#t1 = Transaction(doc, "UndefinedSystemClassification")
#t1.Start()
#_undefinedSystemClassification = MEPSystemClassification.UndefinedSystemClassification
#_uSC = Mechanical.MechanicalSystemType.Create(doc, _undefinedSystemClassification, "UndefinedSystemClassification")
#t1.Commit()
#t2 = Transaction(doc, "ReturnAir")
#t2.Start()
#_returnAir = MEPSystemClassification.ReturnAir
#_rA = Mechanical.MechanicalSystemType.Create(doc, _returnAir, "ReturnAir")
#t2.Commit()
#t3 = Transaction(doc, "SupplyAir")
#t3.Start()
#_supplyAir = MEPSystemClassification.SupplyAir
#_rA = Mechanical.MechanicalSystemType.Create(doc, _returnAir, "SupplyAir")
#t3.Commit()
_exhaustAir = MEPSystemClassification.ExhaustAir
_dataCircuit = MEPSystemClassification.DataCircuit
#t6 = Transaction(doc, "PowerCircut")
#t6.Start()
#_powerCircuit = MEPSystemClassification.PowerCircuit
#_pC = Electrical.ElectricalSystemType.Create(doc, _powerCircuit, "PowerCircuit")
#t6.Commit()
t7 = Transaction(doc, "PowerCircut")
t7.Start()
_supplyHydronic = MEPSystemClassification.SupplyHydronic
_sH = Plumbing.PlumbingSystemType.Create(doc, _supplyHydronic, "SupplyHydronic")
t7.Commit()
_returnHydronic = MEPSystemClassification.ReturnHydronic
_telephone = MEPSystemClassification.Telephone
_security = MEPSystemClassification.Security
_fireAlarm = MEPSystemClassification.FireAlarm
_nurseCall = MEPSystemClassification.NurseCall
tGroup.Commit()
OUT = [_undefinedSystemClassification,_returnAir,_supplyAir,_exhaustAir,_dataCircuit,_powerCircuit,_supplyHydronic,_returnHydronic,_telephone,_security,_fireAlarm,_nurseCall]
Online Documentation for Autodesk's Revit API: 2015, 2016, 2017, 2017.1, 2018
KR
Andreas
Hi @Draxl_Andreas
Here’s some corrected code
see my notes below in this code for explanationsn # NOTE :
import clr
import System
import sys
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.Structure import *
from Autodesk.Revit.DB.Mechanical import *
from Autodesk.Revit.DB.Electrical import *
from Autodesk.Revit.DB.Plumbing import *
# NOTE : NAMESPACE CONFLICTS
# NOTE : DO NOT IMPORT ALL from Autodesk.Revit.UI NAMESPACE
#clr.AddReference('RevitAPIUI')
#from Autodesk.Revit.UI import *
# NOTE : NOT NECESSARY TO LOAD ASSEMBLY SYSTEM WITH IRONPYTHON OR PYTHONNET IT'S LOADED BY DEFAULT
#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
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
tGroup = TransactionGroup(doc, "Create and Set MEP-Systems")
tGroup.Start()
# NOTE : THIS NOT POSSIBLLE TO CREATE AN UndefinedSystemClassification FOR MechanicalSystemType
# t1 = Transaction(doc, "UndefinedSystemClassification")
#
# t1.Start()
# _undefinedSystemClassification = MEPSystemClassification.UndefinedSystemClassification
# _uSC = Mechanical.MechanicalSystemType.Create(doc, _undefinedSystemClassification, "UndefinedSystemClassification")
# t1.Commit()
t2 = Transaction(doc, "ReturnAir")
t2.Start()
_returnAir = MEPSystemClassification.ReturnAir
_rA = Mechanical.MechanicalSystemType.Create(doc, _returnAir, "ReturnAir")
t2.Commit()
t3 = Transaction(doc, "SupplyAir")
t3.Start()
_supplyAir = MEPSystemClassification.SupplyAir
_rA = Mechanical.MechanicalSystemType.Create(doc, _supplyAir, "SupplyAir")
t3.Commit()
# NOTE : THIS NOT POSSIBLLE TO CREATE AN NEW ELECTRICAL SYSTEM TYPE IN REVIT
#t6 = Transaction(doc, "PowerCircut")
#t6.Start()
#_powerCircuit = MEPSystemClassification.PowerCircuit
#_pC = Electrical.ElectricalSystemType.Create(doc, _powerCircuit, "PowerCircuit")
#t6.Commit()
tGroup.Commit()
OUT = 0
2 Likes
Your code has imported every class from the Plumbing namespace with import *
but not the namespace itself
1 Like