byParent, byGrandparent, byDistant Ancestor

Hello,
I came across an(other) unexpected (for me) behaviour from blocks: byParent property assignment persist across generations.
I some times use material (or other property) byParent within blocks, instead of byLayer.
This is useful when I have blocks that may have different materiality in a scene (cladding panels with different colors, chess pieces in a board).
The fact that the property persists across generations, means that when the cladding panel is part of a building block, that goes in another scene, it will take the material of the last generation block, which means that all panels will have the same material.

I don’t know if this is by design, or a unforeseen consequence, by for my use and, I believe, for overall logic of this functionality this is unwelcomed.

Comments?
N

hi @nsgma it would be helpful if you can send me a sample file that illustrates the behavior you are seeing. I have a hard time distilling it from your description.

Hello Gijs,
See uploaded file.
I tested color and material. It seems to be a material problem.
Color behaves as expected, i.e. takes the properties of the parent.
Material takes the grandparent properties…

230411 Distant Ancestor.3dm (390.0 KB)

Hello @Gijs
Were you able to replicate?
N

this is kind of interesting, I saved the file to v5, and here is the rendered viewport:

image

however, here it is rendered with code that manually computes the material inheritance:

however, in v7 it is just the opposite, with the rendered viewport showing:

but the raytraced viewport showing:

Hi @jdhill
Interesting in deed. I have just started testing the Rhino WIP and the problem persists, the render view does not work as expected, all others work as expected including the raytracing.

@Gijs
any feedback?
N

hi @nsgma sorry for the late answer to this, thanks for providing the file. Since the raytraced shows the expected results, I presume this is a bug.
RH-74500 nested blocks that have by parent shows different material in viewport than in raytraced