Hi
I dowloaded Revit 2023 with the lates dynamo but I cant get the Element.SetParameterByName node to work any more. What is I have a Yes or No Paramenter. How am I know suppose to use Element.SetParmeterByName. I also stoped working for Interger parameters.
Help?
Is it a normal parameter or a Global Parameter?
Yes I feel I tried everthything you se it gives values 1. But when I like feed back value to use the Element.SetParameterByName it dose not work anymore
What does the error message say?
Same problem here when trying to set a checkbox with an integer (used to work in Revit 2021)
It appears that there was a change allowing type conversion for setting Y/N parameters… @solamour can we get the Revit team to confirm? This will be rather breaking for many a graph updated from the old version.
You beat me to it, but I just submitted a issue as it looks like this will not currently work.
The Revit team are already on top of this change - but I’ll ping this thread as additional context to them!
If the integer still doesn’t work in revit 2023, feed the true/falses into an equals node to see if the values equal 1. That turns 1 to true, 0s to false.
Unfortunate I have industry standard for a elements height, length and width. To not have to remember them, it was turned into integers to choose from. So you saying I cant use integers for productions length and width anymore but I have to change it into a length parameter?
This thread is about setting boolean parameters using integers I think, different topic. I would have expected integer parameters can be set using integers in Revit 2023… what does your warning say.
Well I’ll be damned… Revit 2023 out for 4 months and the set parameter node can’t handle integers. Yikes.
Try this Python based approach as an alternative.
Set integers.dyn (13.3 KB)
# Made by Gavin Crump
# Free for use
# BIM Guru, www.bimguru.com.au
# Boilerplate text
import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *
# Current doc/app/ui
doc = DocumentManager.Instance.CurrentDBDocument
# Define list/unwrap list functions
def tolist(input):
result = input if isinstance(input, list) else [input]
return result
def uwlist(input):
result = input if isinstance(input, list) else [input]
return UnwrapElement(result)
# Preparing input from dynamo to revit
elements = uwlist(IN[0])
pname = IN[1]
pvals = tolist(IN[2])
results = []
# Do some action in a Transaction
TransactionManager.Instance.EnsureInTransaction(doc)
for e,v in zip(elements,pvals):
param = e.LookupParameter(pname)
try:
param.Set(v)
results.append(True)
except:
results.append(False)
TransactionManager.Instance.TransactionTaskDone()
# Output and Changing element to Dynamo for export
# <element>.ToDSType(True), #Not created in script, mark as Revit-owned
# <element>.ToDSType(False) #Created in script, mark as non-Revit-owned
# Preparing output to Dynamo
OUT = [elements,results]
Disappointing, right? It’s on Autodesk’s radar–they provide some Python as a workaround in the link here too.
I used Python in my workarounds for integer set issues when getting scripts ready for R23 use.
Hello all - as per 📢 Dynamo 2.13 - Revit 2023 Set Parameter Issue(s) - Hotfix Out Now this is now fixed in the Revit Hotfix, so please go download
Hello - Just wanted to report that this issue still persists after the 2023 Hotfix, at least on my end. I know I’m sorry I know this is the last thing you guys want to hear! In my case, the Material class is unable to accept values of Integer type as shown below. @GavinCrump 's Python snippet above worked just fine for the time being. However, the Dynamo OOTB node continues to fail.
I am running Revit 2023.0.2 and Dynamo Core 2.13.1.3887.