Blocks are tricky with layers

I’m having trouble using blocks and layers together. I’m modeling a house to generate construction drawings for a remodel. I’m making Rhino Blocks for toilets, faucets, shower valves, etc. I’ll generally make a layer for the kind of material, e.g. porcelain or chrome. And I’ll have another layer for the area of the home like Floor 2 Bathroom. The instance of the block I will place on “Floor 2 Bath” layer. And the solids inside the Block will be on the “Chrome” layer. But if my Chrome layer is locked, I cannot interact with my Shower Valve block. With a lot of blocks, I find it hard to remember what layer is what, and I find I cannot select my blocks because I don’t remember what inner layers they use.

Does anybody have this problem? Are there secrect Rhino commands one can use? Or rules of thumb about how to choose the layers of objects INSIDE a block?

Maybe… Make a layer per block definition, with the sublayers you need

For example

Sink_block
–material1
–material 2

Sofa_block
–material1
–material 2

In this way, there are no conflicts

True, there are no conflicts. But I was hoping that using layers for the appearance of chrome, glass, etc would save me time having to redefine it for every object. If I use a different layer inside each block, then I’m not saving much. Then I might as well just set the color on each object directly.

Normally I will set non changing objects in the block on a layer with a bylayer material assignment. Say, glass, mirror, chrome. Then for the objects within the block that should change material based on the blocks insertion point, I use by parent assignment for those objects. Then those can be charged by assigning material to the blocks layer or directly to the block. Visibility would be done by the layer the object is on, or the blocks insertion layer. A couple specific block senerios we could work thru if you have a sample model we could play with.

Also, is this rhino 8? The block edit side panel does allow for quicker edit/properties on sub objects. That would help a lot in rendering how specific blocks are set up.

There’s always a compromise.
So seeing that the number of block definitions is much smaller than the number of block instances, the problem is not comparable to assigning one by one.
And seeing that you can always use scripting to change the properties if all layers with the name “material_n” in less than a second, i think it gets you the best of both worlds.

Oh wow, I did not realize I could see the objects inside a block via the Block Definitions panel. That is great. Now I can lookup what layers are used and unlock them.

Adel—Thank you for your thoughts on this issue. Indeed I hope to learn about scripting Rhino. That would probably help a ton once I get there.