Parameter's storage type is not a string (trying to change to drop-down box option)


#1

Hi all,

I’m trying to change the “Start Connection” of beams in Revit to either “None” or “Moment Frame”, depending on the string that they hold in another option box. I’ve pulled a list of the status of these elements from said option box, and replaced their string values with “None” or “Moment Frame”.

However, setting them by parameter name generates an error as per the title.

I’ve tried changing the values to “1”, “2” and “3” (without the inverted commas) in case the options are tagged to integers. Unfortunately, they do not work and an error saying that the values in the drop down box are non integers.

Any idea how to get around this? Screenshot

Thank you.


#2

The storage type for that parameter is ElementID.
It is expecting a connection “Element Type” refer below.


#3

That’s great, but I’ve bumped into another challenge. Say if I select 100 beams, and I want to change their “End Connection” from “None” to “Moment Frame” if their “StartConnection” is currently “None” (or whichever other value for discussion sake). Is there a way to integrate that?

The example you showed requires a pre-selection of elements without being able to filter out elements that don’t require a change in their “End Connection”. I want to integrate a conditional rule to the elements in the list that will be affected.

Cheers!


#4

Something like this?
Logic = Filer Elements where Start Connection equals Moment Connection


#5

I mimicked your workflow but the warning code block displays a completely different list. Any idea why mine is returning a null?


#6

Probably due to the first input value on the list being a “null”
This method isn’t always reliable (just being lazy on a Friday :yum:)
Replace this with the GetParameterByName node and a string input with “Name” and it should work no worries.


#7

Brain ain’t working too good on a Friday. Is this right? Seems to be malfunctioning the same way.

Sorry for the bother on a Friday! Have to sort this out before I can end the week. :sleepy:

Edit: Isolated two beams that wouldn’t return a “null” value on the first input value, and your last mentioned fix worked. There’s no way to get around it if the first value is a “null”, is there?


#8

If the first value is null then, yep, it doesnt work.
You will need to pre-sort your Elements before feeding them into e.Name… then making sure to use the pre-sorted list for filtering later.

A thought would be to use Element.ID’s and grouping, but alas, I am on my way out of the office.

Good luck, persevere!