See image
I created 2 floors and
4 parameters (c1, c2, c3, c4) with 4 data points (data1, data2, data3, data4)
I use the node
Element.SetParameterByName(element, parameter, value)
element = 2 floors
parameter = 4 parameters
value = 4 data points
I'm getting an error in Python
Help?
Thanks
hi
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# do you have import this lines under
#---------------
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
#---------------
elts=IN[0]
param=IN[1]
vals=IN[2]
OUT = [e.SetParameterByName(p,v) for e in elts for p,v in zip(param,vals)]
cordially
christian.stan
1 Like
Hi,
Check that the names of your parameters are correct.
Here is a solution.
import sys
import clr
import System
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# do you have import this lines under
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
import Autodesk.Revit.DB as DB
clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
#---------------
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
#---------------
elts=UnwrapElement(IN[0])
param=IN[1]
vals=IN[2]
TransactionManager.Instance.EnsureInTransaction(doc)
for e in elts:
for p_name,value in zip(param,vals):
# check if parameter exist
para = e.LookupParameter(p_name)
if para:
# using Revit Dynamo
e_dsType = e.ToDSType(True)
e_dsType.SetParameterByName(p_name,value)
# OR using Revit API
para.SetValueString(str(value))
TransactionManager.Instance.TransactionTaskDone()
1 Like
if parameter don’t exist
try this
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
# do you have import this lines under
#---------------
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.GeometryConversion)
clr.ImportExtensions(Revit.Elements)
#---------------
elts=IN[0]
param=IN[1]
vals=IN[2]
OUT = [e.SetParameterByName(p,v) for e in elts for p,v in zip(param,vals) if p in [e.Name for e in e.Parameters]]
cordially
christian.stan
1 Like
Thanks for your help...solved
1 Like
Thanks for your help......solved
1 Like
Hi @ingalvolt please mark Cyrils solution if it work for you, can probably help other as well ![]()
1 Like
I sent it to both of them....(christian.stan and c.poipin)
What should I do?
I don't understand
Maybe I'm doing something wrong?
1 Like
yeah you can only make one solution…soooo
and its great if both work…so try thats there fit you best
![]()
2 Likes
Done
awesome
![]()
1 Like





