Block and sub-block geometry properties

Lets say I imported a CAD plan that has a bunch of blocks nested in blocks- is there an easy way to make all the contents of a block uniform in color and layer? Currently, when I change the layer of the block, it does not change the layer of the sub-block geometry. And when I want all the contents of the block to change from a custom color to matching layer color, it does not change the that property for all the sub-blocks.

I’m trying to simplify the model so that all the many plumbing and mechanical layers are all consolidated onto one, and so that the colors are the same too.

Hi Lawrence- the contents of the block need to have thir properties set ‘by parent’.


To get the color changing behavior you described, you’ll need to define (or redifine) your blocks a little differently.
The color property of the object or the layer the objects are on needs to be set to “By Parent” instead of By Layer.

Coming from a DWG, “by parent” is not the default way that blocks work. I guess I still have to go in one by one and change the properties to “by parent” then? There is no brute force way to change the properties of all sub-blocks?

The other thing is that I am able to double click into a block, but cannot double click into its sub-block. The block names are in Japanese, so it’s kind of hard to identify it in the blockedit window.

I think I made a tool for this - let me see if I can dig it up. Hang on a bit.

See if this works- it is an old RhinoScript- to use it, unzip, save and then drag and drop the rvb file onto Rhino- this will add the alias


that will run the script much like a command. (633 Bytes)


Correction: I meant sub-block

AutoCAD uses a special color and layer to get the color and line type changing to work.
Rhino uses the By Parent property to do a similar but more flexible thing.


you can also see this script from other discussion - it will let you set properties byParent, ByLayer or even change all in-Block objects Layers or per-object Display Mode:

Thanks, I’ll try it out.

I think I got “ByParentize” to work, but what is still causing me problems is the layers of nested blocks. I am trying to delete a layer, but Rhino says that there is a block/objects on that layer. When I do “select objects,” nothing is selected because the object is in a nested block. Is there anyway to delete a layer and move the contents to the default/current layer?

You can use the block manager or the Purge command

you can use the above script to move all your blocks/nested blocks objects into specific single layer, so you can delete/purge whatever you don’t need from layers panel.