Referenced Block Layers don't retain nesting property


#1
  1. Insert an external 3dm file as a linked block with Layer Style set as ‘Referenced’.
  2. Make the block layer a nested layer by dragging it into a parent layer.
  3. Save, close and reopen file.

The file won’t retain the nesting property of the block layer, but will move it up to the highest parent level.


(John Brock) #2

Sorry, I don’t understand step 1.
Are you describing something in the Layer command, or the Layer State Manager, or perhaps Worksessions?

Could you maybe supply simple examples of the files needed to reproduce this?


#3

My fault, I was too concise.

1.Drag and drop an external 3dm file into current Rhino session, set options like the picture below:

2.Make the block layer a nested layer by dragging it into a parent layer:

3.Save, close and re-open file.

I expected Rhino would retain the nesting property of the block layer, instead it will move it up to the highest parent level, like this:


Actually, the documentation about the ‘Insert’ command states that “Only the on/off, locked/unlocked states and the layer color can be modified.”, so my doubt that it could be a bug has been clarified. I should have read the documentation before posting :grimacing:
Anyway, I think it would be useful to be able to nest those block layers, specially when including many different linked blocks in one file, just to keep it tidy in the layer panel.


#4

I’m not finding the documentation for how the heck layers work.

I have a model that I need in a bunch of different positions. So I’ve got some of the parts that are shared as block instances. But for the life of me, I can not figure out how layers are working with it. I can’t seem to put them on Anything different.

How the heck are layers stored?


(Pascal Golay) #5

Hello - Blocks have two sets of layers, so to speak - a block instance is on a particular layer, like any other top level object, but the block definition has objects which are also on layers that may or may not correspond to the layer of any particular instance of that block. Visibliity is affected by the layers of the geometry in the block definition as well as the layer of the instance.

-Pascal


#6

That isn’t my favorite thing for sure. For all the people I’ve worked with…This is why they don’t use blocks.

I don’t understand how to see/change where the block definition is.

I’m just going to have to switch to external references and have each version in a different file so I don’t have layer issues for now. This is a really complicated file that I imported at just over 1GB. I’ve got it down to about 400MB by eliminating internal components and screws that no one will miss, but that’s as small as it’s going.

I’d love a way to define a “part” (is that not block?) and have an instance of that part defined on different layers, probably just in different positions. I don’t want to see those all on/off though.

Lets say I’ve got the hour hand on a clock at 3, 5, and 9. You wouldn’t want to see those all at the same time, so I’d put an instance on 3 different layers.
I’m just trying to figure out the best method for doing this.


(Pascal Golay) #7

Make your hour hand on a layer called Hour Hand. Then block it. Insert an instance on layers
3OClock, 5OClock & 9OClock. Rotate each of these instances to taste. Only turn on the one of these *OClock layers that you want to see. Does that make sense?

-Pascal


#8

Yes, that’s pretty clear. Thanks

I was hoping the block itself could have layers as well. My Block is made of 6 objects, all with different materials. So sticking them all on one layer makes it difficult to keep track of in keyshot.

My problem was that I already had pieces on different layers, and it was nested when I defined it. So I have no idea where my object is actually defined. I would Love a way to move the definition. So far I haven’t found that.


(Pascal Golay) #9

Use BlockEdit and while in that command, you can select objects and see what layer they are on and put them on other layers, change properties, etc. This will affect the block definition.

-Pascal


#10

Ha, ok, that works.

So I edited a block, which was defined while multiple polysurfaces were on different layers, and created a new layer while in BlockEdit for the block definition. This is outside any sublayers.
Each copy of the block is then defined on the sublayer of the configuration I wanted.

This is a bit confusing because when you select object layers, it only shows the visible layer, but not the block layer. Well the block is it’s parent object sort of? So I would hope that it would show me that.

I think this will work. I know defining blocks after you’ve already got a model “finished” isn’t ideal. But this workflow seems to be ok. It will Definitely confuse my coworkers if they open up the file though.