Here’s my Python Script corrected with mistakes I made. But it still bugs at line 43 for some reason…
Warnings_NoLossDefined_20160106
import clr
clr.AddReference(“RevitAPI”)
import Autodesk
from Autodesk.Revit.DB import *
from Autodesk.Revit.DB.ExternalService import *
from Autodesk.Revit.DB.ExtensibleStorage import *
from System.Collections.Generic import*
clr.AddReference(“ProtoGeometry”)
from Autodesk.DesignScript.Geometry import *
clr.AddReference(“RevitNodes”)
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference(“RevitServices”)
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from System.Collections.Generic import *
doc = DocumentManager.Instance.CurrentDBDocument
uidoc=DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument
def getServerByID(serverGUID, serviceId):
service = ExternalServiceRegistry.GetService(serviceID)
if service != “null” and serverGUID != “null”:
server = service.GetServer(serverGUID)
if server != “null”:
return server
return null
lc=[]
def getLossMethods(serviceID):
service = ExternalServiceRegistry.GetService(serviceID)
serviceIDs = service.GetRegisteredServerIDs()
list=ListElementId
for serverId in serverIds:
server = getServerByID(serverID, serviceId)
#ductServer = server.IDuctFittingAndAccessoryPressureDropServer
id=serverId
name=server.GetName()
lc.append(id)
lc.append(name)
lc.append(server)
return lc
elems=UnwrapElement(IN[0])
SetNew = IN[1]
elem=[]
for el in elems:
eleId = el.Id
fitting = doc.GetElement(eleId)
param = fitting.get_Parameter(BuiltInParameter.RBS_DUCT.FITTING_LOSS_METHOD_SERVER_PARAM)
lc = getLossMethods(ExternalServices.BuiltInExternalServices.DuctFittingAndAccessoryPressureDropServices)
schema = lc[8].GetDataSchema()
field = schema.GetField(“Coefficient”)
entity=fitting.GetEntity(schema)
oldval = entity.Getfield.ValueType # obtaining values
TransactionManager.Instance.EnsureInTransaction(doc)
entity.Set[field.ValueType](field, SetNew) # installation of a new coefficient value of certain
fitting.SetEntity(entity)
TransactionManager.Instance.TransactionTaskDone()
elem.append(fitting)
OUT = elem