Hi All,
found this plugin from Dynamo package called -MEPover
code is as below.
import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
toggle = ""
if isinstance(IN[0], list):
lines = IN[0]
else:
lines = [IN[0]]
FirstPoint = [x.StartPoint for x in lines]
SecondPoint = [x.EndPoint for x in lines]
conduittype = UnwrapElement(IN[1])
if isinstance(IN[2], list):
level = UnwrapElement(IN[2])
toggle += "0"
else:
level = [UnwrapElement(IN[2])]
if isinstance(IN[3], list):
diameter = IN[3]
toggle += "1"
else:
diameter = [IN[3]]
elements = []
if toggle == "":
TransactionManager.Instance.EnsureInTransaction(doc)
for i,x in enumerate(FirstPoint):
conduit = Autodesk.Revit.DB.Electrical.Conduit.Create(doc,conduittype.Id,FirstPoint[i].ToXyz(),SecondPoint[i].ToXyz(),level[0].Id)
param = conduit.get_Parameter(BuiltInParameter.RBS_CONDUIT_DIAMETER_PARAM)
param.SetValueString(diameter[0].ToString())
elements.append(conduit.ToDSType(False))
TransactionManager.Instance.TransactionTaskDone()
elif toggle == "0":
TransactionManager.Instance.EnsureInTransaction(doc)
for i,x in enumerate(FirstPoint):
conduit = Autodesk.Revit.DB.Electrical.Conduit.Create(doc,conduittype.Id,FirstPoint[i].ToXyz(),SecondPoint[i].ToXyz(),level[i].Id)
param = conduit.get_Parameter(BuiltInParameter.RBS_CONDUIT_DIAMETER_PARAM)
param.SetValueString(diameter[0].ToString())
elements.append(conduit.ToDSType(False))
TransactionManager.Instance.TransactionTaskDone()
elif toggle == "1":
TransactionManager.Instance.EnsureInTransaction(doc)
for i,x in enumerate(FirstPoint):
conduit = Autodesk.Revit.DB.Electrical.Conduit.Create(doc,conduittype.Id,FirstPoint[i].ToXyz(),SecondPoint[i].ToXyz(),level[0].Id)
param = conduit.get_Parameter(BuiltInParameter.RBS_CONDUIT_DIAMETER_PARAM)
param.SetValueString(diameter[i].ToString())
elements.append(conduit.ToDSType(False))
TransactionManager.Instance.TransactionTaskDone()
elif toggle == "01":
TransactionManager.Instance.EnsureInTransaction(doc)
for i,x in enumerate(FirstPoint):
conduit = Autodesk.Revit.DB.Electrical.Conduit.Create(doc,conduittype.Id,FirstPoint[i].ToXyz(),SecondPoint[i].ToXyz(),level[i].Id)
param = conduit.get_Parameter(BuiltInParameter.RBS_CONDUIT_DIAMETER_PARAM)
param.SetValueString(diameter[i].ToString())
elements.append(conduit.ToDSType(False))
TransactionManager.Instance.TransactionTaskDone()
OUT = elements
any idea how to convert it to Grasshopper for usage???