Revit and Dynamo 2023 with Element.SetParameterByName

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?

Hello,

Did you try open/close Dynamo?

KR

Andreas

Is it a normal parameter or a Global Parameter?

No it is Normal

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)

Looks like I am seeing the same issue, and here is a way to solve it with a bit of design script.

5 Likes

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.

2 Likes

You beat me to it, but I just submitted a issue as it looks like this will not currently work.

2 Likes

The Revit team are already on top of this change - but I’ll ping this thread as additional context to them!

3 Likes

Thanks this worked for Y/N but what do I for a list of integer?


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]
2 Likes

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.

1 Like

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 :partying_face:

3 Likes

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.

1 Like