User Attributes for Block Objects

Is there a way to pass a user value from a block instance to an object inside? here is an example of what I want.

I have a block with some surfaces inside. The block instance has user data of <Color, purple>, <Thickness, 5>, and <Boarder, True>. Each of the surfaces as user data keys of and without any values. I want to pass the Color and Thickness values from the block instance to the surfaces inside, since I will have other instances where my user data will be <Color, Green> and <Thickness, 1>. Is there a way to do this so I can use the same block with just different instances?

Hi Cameron - I do not know of a way in plain Rhino, but it looks like a script can do it, I’ll have a look. It would of course change all instances’ contents for a given block and for all blocks where that geometry is used.
@cameronbehning , do you want to copy all keys and values, only ones for which keys already exist on the block contents, or picj and choose, or?


Hi Cameron,

The block instances can have different user data but the internal surfaces would all be the same.

Here’s a grasshopper solution that outputs the surfaces with the unique data per block. This could be done via worksession as well. Elefront 4.3 req’d (11.2 KB)
re_block_Atts.3dm (46.9 KB)