Script for a string parameter

I’m looking to take several Revit parameter values and combine them into one parameter for use in a schedule. At this point in time, this seems as if it cannot be accomplished using formulas to drive the combined parameter’s value directly in Revit. Dynamos seems to be the only option. I’ve attached a Dynamo Script and the Shelving Revit family in which I’m trying to accomplish this. I’m trying to combine 3 text parameters into 1 text parameter so it reads fluidly.
The text parameters are Shelving Size Override, Tier Report, and Mobile.
I’m attempting to create a text parameter that will read these parameters in string along with “shelving unit” in front. The desired outcome as an example would be “Shelving Unit, 24"x36”, 4 Tier, Mobile"

I put together a script but I’m not seeing the output in my family. I’ve ran the script and haven’t gotten any errors so I’m not sure what the issue is. Anyone else run into this issue or have any guidance?

Shelving Parametrics.rfa (1.4 MB)

Shelving Description.dyn (10.1 KB)

I am not behind a pc, but if you would also post an image i probably could help you.

PS
Posting the .rvt and .dyn is allways useful, but an image would be great too.

2 Likes

Sharing the graph and support files are much appreciated for more complex problems, but I think you’ll have more replies if you post full images of the graph (with node previews) so that people don’t have to go through the extra effort of trying to reproduce your work.

1 Like

Thanks for the heads up! I’ve updated my post to include an image of the script.

Apologies. I’ve added the full image above.

Thank you. Can you show that with the node previews pinned so we can see the outputs? Specifically the individual parameter values, the final combined value, and the final output after applying the new parameter values. Is the new parameter, Descriptive Long, a type parameter or an instance parameter?

For what it is worth, Combine Parameters is a native Revit feature and pretty decent.

image

Next, I took a quick peek into your family file - all of the referenced parameters are Type Parameters, not Instance parameters. You’ll want to pull the Element Type for this instead of the Element.

Lastly, here’s another way to streamline your script:

2 Likes

I’ve made the Descriptive Long parameter a Type. Nick, looks like all the previews are reading “Null”.
I originally had all these parameters as Instance but another forum recommended I change them to Type

Combine Parameters was my original go to and it works great but this prevents our team from being able to copy the data in that column of the schedule. Not a big deal but I was looking for a way to achieve the same look of the combined parameter inside the family itself.

thanks for the input! I’ll see if I can throw something together similar to what you have.

This is one example of going from instance level to type level, though the type list will have duplicates. It’s probably fine to Get/Set Parameters this way for most projects but for a really large dataset you’ll want to grab the Type Elements directly to keep the list short.

As @Robert_Younger mentioned, you’ll need to get the FamilyType to query type parameters. Are all the nodes showing null? A codeblock string shouldn’t show null. Can you confirm you don’t have a command running in Revit?