Map Room Properties to 3d Tag

revit

#1

Trying to get this script to work. Need to take room properties and feed them to a 3d object/ tag.

I have two lists and need to map them but something on the final step seems to go wrong.

Please enlighten me.

Thanks.

John


#2

Hi @i.tzivanidis,

The “setparameterbyname” node takes 3 arguments:
• Element - an instance of and element - you are giving it a type?
• Parameter - the parameters name of what you wish to modify (currently not assigned)
• Value - the value you are want to pass to that parameter. (Currently not assigned)

This is failing because the last two inputs are not assigned and you have also assigned the elements family type rather than the elements of that type to the “Elements” input.

There is also one other matter which is how do you know which 3D tag is associated with which room?

This post by sixtysecondrevit may help you out in 3D room tags.

Cheers,
Dan


#3

Thanks for your reply. @Daniel_Woodcock1

I have seen that but want to make custom object tag with 3D model text that “picks up” the names from each 2D room tag if that makes sense.

And it is really close.

Remapped the laces according to your latest insightful post. But still get an error.

Practically is there a simple way to populate the attributes of the “Space Name, Space Level, Space Number” with the list i get from my room tags?

Thanks

John


#4

Funnily even though my script is not functioning, the change went through in Revit.

As you understand I am very new to Dynamo and in a state fascination-exploration.

Any guesses on why my script works while my Set.Parameter.Node is not


#5

Still doesnt work :frowning:


#6

Hmm, at a glance, I would say it might be something to do with your list levels. The data you’re plugging in for elements and values are nested lists with two levels (so lists within a list) whereas your parameter names are a single list (so one level). Try clicking on the little “>” symbol and set to use Levels in the set parameter node. Use Level 1 for the parameter names. And then use Level 2 for the others. Alternatively, you might want to match the list structure for parameter names using the list cycle. That’s what I can see wrong with it at a glance.

If you are still having problems with it I can most likely have a quick stab at it tomorrow when I’ll have a PC around so link the working files. I think one of the above should work though.

Cheers,
Dan


#7

Got it to work. Clarify only one thing for me

The problem I believe was that setparameterbyname node cannot handle the mapping of all three parameters at once.

Therefore I created a similar workflow for each parameter and works fine.

Is that right.

Thank you for your time.

John


#8

Hi @i.tzivanidis,

Yes, that is correct. You have to be mindful of how data is handled from node to node. Also read about lacing in the Dynamo Primer and how different lacing settings change how multiple data threads are manipulated on each node.

The new “ByLevels” feature in Dynamo 1.2 is very handy to be a little lazy in the graph, but I always try get my data structure matching when possible or use different lacing where necessary.

Glad you got it working though! Don’t forget to mark as resolved! :wink:

Cheers,
Dan


#9

Did you ever get this idea to work? I am wanting to achieve the same result. Looking for good ideas to get me started, do you have any advice?