Hi,
I have a model with two shared cells. Their instance are in the same level, and with the same instance color "BY LEVEL", which is red.
The geometry color in each shared cell are also same, they are in the same level, and with the same color "BY LEVEL", which is blue.
Although the color setting for two shared cells are the same, one is showed as red, and one is blue. I am not sure which one is the correct behaviour.
DGN_Color_3D.dgn
And I am a little bit confusing by the shared cell's color behaviour, I would like to know the expected behaviour of shared cell's display color.
A shared cell instance can specify overrides for level, color, style, and weight. The override applies to all the components of the shared cell definition making it display using the property value from the shared cell instance instead of the component's stored value.
The cyan shared cell instance has no overrides specified. The components which are on level "e15" display with their ByLevel color 23, cyan.
The red shared cell instance has an override for level specified. Now all components are considered to be on "Level 1", the same level as the shared cell instance. The ByLevel color for "Level 1" is color 3, red.
So both behaviors are expected and correct. Hope this helps, I see this post was over a month old and somehow got missed...
-B
NOTE: If you use the Level Display dialog to turn levels off/on, you'll see that "e15" controls the display of the cyan shared cell and "Level 1" controls the display of the red shared cell.
Answer Verified By: Richard Yu
Thank you! That make sense to me.
BTW, what is the difference between scOverride::level and scOverride::color?
For my understanding, if scOverride::level is set then scOverride::color could be ignored. Is it true?
Richard Yu said:For my understanding, if scOverride::level is set then scOverride::color could be ignored. Is it true?
No, if there is a color override, that's the color that all the components will display with regardless of whether there is also a level override. A level override only affects the color of components defined using ByLevel color. You can have both a level override to make the effective level for your shared cell "Level 1" but also have a color override to make the entire shared cell green.
HTH
Thank you! It's very helpful to me.