Assigning materials to block instances

How can I assign different materials to various block instances of the same block? For example, I select the block instance, select “assign by object”, assign a color (e.g. red), and the rendered view of this block instance still shows the default grey color.

Despite the fact that you can assign a material to individual block instances (as well as display color, etc.) all instances will remain the same as the original because you are not actually assigning the material to the objects inside the block. Therefore it is not possible via standard Rhino functionality as far as I know.

You could, however, write a script that makes a copy of the blocks, explodes them and assigns the material which was assigned to the block instance to the objects exploded out of the block.


Believe it or not, what you’re talking about is absolutely possible. The material of the object inside the block must be set to “by parent,” and then whatever material is assigned to the block itself will be applied to the rendered appearance of the objects within.


wow! that just blew my mind!

It works indeed - thanks