This article explains how inheritance flags control graphical attributes in HOOPS Exchange, including visibility, color, transparency, line style, and layer. While the concept applies to all attributes, this guide mainly focuses on visibility.
The inheritance flags are stored in: A3DGraphicsData::m_usBehaviour (Link)
m_usBehaviour describes the propagation policy for the graphics properties of the object within a model file. It determines whether an entity uses son inheritance (kA3DGraphicsSonHeritShow), father inheritance (kA3DGraphicsFatherHeritShow), or no inheritance, and whether it is explicitly shown (kA3DGraphicsShow).
For more details including an explanation of each type of inheritance with examples, see the official HOOPS Exchange guide Managing Attribute Inheritance
Effect of Inheritance Flags on Visibility
This table shows the result of setting different inheritance flags on a parent node (Aquo Bottle) and child nodes (“Water_Bottle_V1” and “Ring”). The values correspond to:
- Table A1–A6: Parent node (
Aquo Bottle) has no inheritance and visibility hidden. Child nodes (Water_Bottle_V1andRing) are set with different inheritance flags (0–5).
Explanation for example “A6”
The parent node (Aquo Bottle) does not contain any inheritance and is hidden. Therefore, the child nodes (Water_Bottle_V1 and Ring) take their own visibility. Even though the parent is hidden, it does not affect the children, resulting in shown.
- Table B1–B6: Parent node (
Aquo Bottle) has no inheritance and visibility shown. Child nodes (Water_Bottle_V1andRing) are set with different inheritance flags (0–5).
Explanation for example “B2”
The parent node (Aquo Bottle) does not contain any inheritance and is shown. Therefore, the child nodes (Water_Bottle_V1 and Ring) take their own visibility, resulting in shown.
- Table C1–C6: Parent node (Aquo Bottle) has son inheritance and visibility hidden. Child nodes (Water_Bottle_V1 and Ring) are set with different inheritance flags (0–5).
Explanation for example “C6”
The parent node (Aquo Bottle) contains son inheritance and is hidden. Therefore, the child nodes (Water_Bottle_V1 and Ring) follow the parent’s visibility. Even though the children are set as shown, the parent’s inheritance overrides them, resulting in hidden.
- Table D1–D6: Parent node (
Aquo Bottle) has son inheritance and visibility shown. Child nodes (Water_Bottle_V1andRing) are set with different inheritance flags (0–5).
Explanation for example “D1”
The parent node (Aquo Bottle) contains son inheritance and is shown. Therefore, the child nodes (Water_Bottle_V1 and Ring) follow the parent’s visibility. Even though the children are set as hidden, the parent’s inheritance overrides them, resulting in shown.
- Table E1–E6: Parent node (
Aquo Bottle) has father inheritance and visibility hidden. Child nodes (Water_Bottle_V1andRing) are set with different inheritance flags (0–5).
Explanation for example “E6”
The parent node (Aquo Bottle) contains father inheritance and is hidden. The child nodes (Water_Bottle_V1 and Ring) are also set with father inheritance and shown. In this case, father inheritance propagates from the top-most parent, so the parent’s visibility takes precedence. Therefore, even though the children are set as shown, they inherit the parent’s hidden state, resulting in hidden.
- Table F1–F6: Parent node (
Aquo Bottle) has father inheritance and visibility shown. Child nodes (Water_Bottle_V1andRing) are set with different inheritance flags (0–5).
Explanation for example “F3”
The parent node (Aquo Bottle) contains father inheritance and is shown. The child nodes (Water_Bottle_V1 and Ring) use son inheritance with hidden visibility, which has higher priority in propagation. Therefore, even though the parent is shown, the children’s own inheritance takes precedence, resulting in hidden.
See this article in our Knowledge Base: How to Manage Inheritance Flags













