Copying block to different layer - hide/show problems

I bet this is an easy one but I’m no Rhino pro.

I have a model of a motor imported into the layer called “motor 1” from a step file. It was imported as a block. I created another layer called “motor 2.” I put a copy of the motor into layer 2 which I did by simply copying, pasting, selecting the “motor 2” layer, and using Change Object Layer.

This is the problem: I want to be able to toggle the visibility of the layers “motor 1” and “motor 2” and see only the one motor from each layer. However, the motor on the “motor 2” layer seems to be linked to the motor block instance on the “motor 1” layer because toggling the visibility of the “motor 1” layer hides/shows both motors.

Hopefully the attached file makes more sense than my explanation.

layer problem.3dm (2.9 MB)

1 Like

I think you have to edit the block, ( double click on it) when the dialog box appears, select the block again, then CopyObjectTo Layer

Thanks, Diego, but that didn’t work. Anyone else?

Hello - the objects contained in the block exist on the Motor 1 layer - you can BlockEdit, select the block objects one by one and change them to a different layer - then Motor1 and Motor 2 will be independent of each other but both ‘linked’ to that third layer.

layer problem_PG.3dm (2.8 MB)

Thanks, Pascal. I suppose there isn’t a way to just have two independent blocks and I need to have an additional layer that the blocks are linked to.

I just tried importing the motor step file a second time to the “motor 2” layer and that gives me two independent blocks without requiring a third layer. I guess there is no way to just copy an existing block without it being linked to the original block.

Hello - well, the thing is, the definition geometry needs to reside on some layer - the instances can be on any layer. So in your case, the definition geometry was on the Motor 1 layer as well as the instance - that is what caused the confusion. The only way to make them completely independent is to have two completely separate block definitions, but at that point, depending on what use you are making of the blocks (as distinct from just polysurface objects) the utility of using blocks at all may be completely negated…


The only reason the motor model is a block because that is just how they get imported from the step file. I don’t care whether or not the motor model is a block. I understand the concept of having a block that can exist many times in a project but is stored on only one layer. It makes the file size smaller and allows you to edit the block in a single place and “push” the changes to all instances of the block. But in my case, I don’t need any of that functionality. I just want two independent copies of the motor without having to re-import the original step file.

Hello - use ExplodeBlock to make your objects independent, then Purge > BlockDefinitions=yes to remove the extra underlying block definition geometry.


Nice! Thank you.


If you want to be abble to have the same Block on two differents layer, you need to put the Object in the block on the Default layer.

Dobbel click on the block select all the object inside the Block and put the object on the Default layer. Then close the block and put one block on the layer Motor 1 copy the block put the copy on the layer Motor 2. Now you should be abble to switch on and off the both layer independently.

1 Like

Amazing - thanks - this worked for me!


1 Like