Managing Graphic Properties in Products

This task shows you what are the effects when changing graphic properties such as Hide/Show, Colors, Opacity, Width and Line Types:

About Graphic Properties,
Using Instance / Reference inheritance,
Using Parent / Child inheritance,
Combination of Instance / Reference and Parent / Child inheritance,
New behavior of the Hide / Show functionality.

Modifications of the graphical properties on an assembly node (or on a root product) are not propagated on all children nodes in the Specification tree.

When an object has a specific graphical property, the property is only set on this object (assembly node or root product) and its children get the property of their parent by inheritance, which can be seen in the geometry.

For more information about this graphical changes, please refer to Displaying and Editing Graphic Properties, in the Infrastructure User's Guide.
 

About Graphic Properties

 

Before:

No Instance / Reference inheritance:

Catia Product Model is a full instance reference model. When inserting a sub-assembly in a product, the structure, and graphic properties are duplicated.
If a graphical property is then modified on the reference, it is not taken into account in the instance. If a graphical property is then set on the reference, it is not taken into account in the instance.
Any modification of the graphical properties on an assembly node is propagated on all the children nodes.

Now:

Instance / Reference for All:

Graphical properties are not duplicated during instantiation, propagated on all children nodes (in the specification tree) and if a graphical property is then set on the reference, it is taken into account in the instance (if the instance has not properties set). Children inherit graphical properties, which can be seen in the geometry.

The behavior of all graphic properties is now kept and there is:

  • an instance / reference inheritance for all graphic properties.

  • a parent / child inheritance for all graphic properties. When an object has the Hide property, we set the property only on this object and its children inherit the property from its parent because of the parent/child inheritance. Therefore they are not displayed even though the property has not been set on them.

  • modification of the Hide/Show in order to answer the two previous inheritances.

  Here are examples with the Hide/Show graphic property. However, it is also true with the other properties available in the following toolbar:
 

More precisely, these graphic properties are:

  • Colors,

  • Opacity,

  • Width,

  • Line Types.

Like the Hide/Show property, these graphic properties have instance/reference and parent/child inheritance, and sometimes both.

About Layers:

You cannot assign a layer number to a product. This property is unavailable in the graphic property toolbar:

Using Instance/Reference Inheritance

Instance / reference inheritance exists when a product (the instance) has been created from another product (the reference) and the instance keeps pointing to the reference.
Open Product1bis.CATroduct and Assembly.CATProduct.

The Assembly.CATProduct is made out of a root product called Assembly containing two products (Product1 is instantiated twice) and an Application node.

  1. In Product1bis.CATProduct, set the Hide property on Part1.1 in the context of Product1, the result is as follows:

Product1 in Product1bis.CATProduct is the reference of the instance Product 1 in Assembly.CATProduct. As a consequence, both instances of Part1 (Part1.1) have inherited the Hide property of its reference. Both Part1 (Part1.2) have inherited the yellow color of the reference.

  1. Set the color to green on Part1 (Part1.2) in Product1 (Product 1.1).
    The green color is not inherited by the reference:

  2. In Product1bis.CATProduct, set the color to purple on Part1 (Part1.2) in Product1 (Product 1.1), the result is as follows:

  Part1 (Part1.2) in Product1 (Product1.2) inherits the color property of the reference (in Product1bis.CATProduct) because no color attributes were set. Yet, Part1 (Part1.2) in Product1 (Product1.1) does not turn into purple because the green color had already been set.

The Hide property has been propagated in Part1 (as shows its icon in the specification tree) and Part1 is not displayed in the geometry.
In Assembly, Part1 is also instantiated in the second Product1 (Product1.2) and is also set to Hide. If you set Part1.1 to Show in Assembly.CATProduct, Part1.1 is displayed but not its reference in Product1.

  • There is an instance/reference inheritance: when the reference's graphic properties are changed, its instances automatically get the same property, only if no property has been set on the instance, and whatever the original graphic property of Product1 in Assembly is.
  • If a CATPart is UI active, it is possible to apply Show / No Show on it.
 

 

 

Using Parent/Child Inheritance

Parent/child inheritance is when sub-products inherit the graphic property of their root product or parent.
Open Assembly.CATProduct.
  1. Select Assembly and set it to Hide.
    You will note that there is no propagation of the Hide/Show property on the children in Specification Tree.

  • The Hide/Show inheritance exists between the product and its sub-products. You cannot display the children geometry, if the parent is in No Show. If you want to bring the geometry in Show mode, you need to set the root product (that is the product that owns the Hide property) to Show.
  • Parent/child inheritance has priority on the local properties set on the instance. This is the same for other graphic properties: colors, opacity, etc.
  • When Show/No Show is applied on any object inside the CATPart (Tools, Features, etc), this modification is rejected in the 3D (and the SpecTree too) on all the instances of the same part, in all windows if :

    • the Product is the UIActivated object,

    • the instance of the Part containing the object on which the Show/No Show is applied is the UIActivated object,

    • the Part containing the object on which the Show/No Show is applied is the UIActivated object
      When a Part is the UIActivated object, the Show/No Show is not applied to the selected object but it is applied to the instance of the part containing the selected object.

  1. Select the first Product.1 and set it to Hide. You can only set this product to Hide and its geometry remains hidden.

  2. Select Product1 and select Show.
    You will note that the geometry remains hidden:

  3. If you want Product1 and all the sub-products to be in Show mode, you have to set the root product Assembly to Show.

The parent Hide property is not propagated on children (sub-products), including Application. For your information, you can set the Application node to Hide. Even if there is no icon in Hide mode in the specification tree, you can see that the Hide property is effective in the geometry since measures are not displayed anymore.
 

In case you select a part from the geometry area or from the specification tree and modify its graphical properties, the modification is propagated to the product instance.
For instance, set Part1 under Part1(Part 1.2) to Hide.

You will note that the Hide property is set on Part1(Part1.2) since it is applied to the assembly, not to the selected geometry.

 

 

Combination of Instance/Reference and Parent/Child Inheritance

This scenario will show you when both an instance/reference and parent/child inheritance is applied for Graphic Properties.

Open Assembly.CATProduct and Product1bis.CATProduct.
  1. In Product1bis (the reference), select Part1 and set it to Hide. Part1 in Product1bis is the Reference of Part1 in Assembly.CATProduct, therefore Part1 is now in No Show mode in both products.

The parent/children inheritance has always priority on local properties or on the property inherited from the reference.
  1. Set Product1.1 (in Assembly) to Hide and you notice that everything is hidden under Product1.1. Part1.2 is also hidden as a result of the parent/children inheritance.

  2. Select Part1.1 under Product1 in Assembly.CATProduct and set it to Show: the icon of Part1.1 is modified but you cannot see its Geometry because of the parent/children inheritance.

  3. In Assembly.CATProduct, set Product1.1 to Show: both instances of Part1.2 and Part1.1 are displayed in the geometry:

New behavior of the Hide/Show functionality

The possible combinations are:
  • Three states:
    • Unset: (Show by default) allows instance/reference inheritance.
    • Two overloaded states:
      • No Show/Hide,
      • Show.
  • 4 possible transitions:
    • Unset > Show,
    • Unset > No Show,
    • Show > No Show,
    • No Show > Show.
  • 2 transitions that are not possible:
    • Show > Unset,
    • No Show > Unset.

The following table illustrates the result of all possible combinations.

Instance Reference Parent Icon 3D
Show Show or unset Show or unset Not dimmed Available
Hide Dimmed Not available
Unset Not dimmed Available
Show Hide Not dimmed Available
Hide Dimmed Not available
Unset Dimmed Not available
Show Show or unset Hide Not dimmed Not available
Hide Dimmed Not available
Unset Not dimmed Not available
Show Hide Not dimmed Not available
Hide Dimmed Not available
Unset Dimmed Not available