About the Naming of Component Family Items

You can find here additional information about the naming of Component Families.

Related Topics
Naming Component Family Items (Standard Naming)
Naming Component Family Items (Custom Naming)

Standard Naming

This section provides you with more information about standard naming.

A .CATRuleExit file (PLMBusinessLogicComponentsFamily_Naming.CATRuleExit) and .CATRule files (files that define a business logic rule) are used to compute new attributes values. The .CATRuleExit contains the mapping between a customization and a given CATRule.

This rule takes specific parameters into account:

GenericModel
Contains the PLM Component of the generic model which is the equivalent of the PLM Component whose attributes you are trying to modify.
IsRoot
Boolean that says if the PLM Component we are trying to modify the attribute is the root or a sub component
ItemIndex
Integer that contains the index of the item that is currently being resolved (this item index is the corresponding row in the table
ItemName
Value of the identication column in the table (generally the value of the first column for the given row)
RevisionIndex
index extracted from the family model (it can be seen in the family properties, or in the families query results). This index is equal to 1 for a new family, and is incremented each time a new generic model version is applied to the family.

Example of Rules for the PLMProductDS Customization

The following rule is an example of customization of a PLMProductDS. It modifies the PLM_ExternalID of the target object (the PLM component that we are trying to compute the identification/naming attributes). If we are trying to modify the root object attributes (A product reference), then we valuate it with itemname, otherwise we take the generic model PLM_ExternalID, and we concatenate the item index.

let generic (PLMEntity)
let isroot (Boolean)
let index (Integer)
let itemname (String)
					
set generic = Parameters.GetAttributeObject("GenericModel")
isroot = Parameters.GetAttributeBoolean("IsRoot")
index = Parameters.GetAttributeInteger("ItemIndex")
itemname = Parameters.GetAttributeString("ItemName")
					
if (isroot == true)
{
ThisObject.PLM_ExternalID = itemname
}
else
{
ThisObject.PLM_ExternalID = generic.PLM_ExternalID + "_" + ToString(index)
} 

Custom Naming

This section provides you with more information about custom naming.

An expression editor is provided to allow a family owner to define his own identification/naming logic. It offers the same inputs as the previous business logic rule, but column values can also be used.



For example, the expression can valuate an attribute with a complex combination of column values extracted from the table. In this case, the naming will be specific to the family that contains the custom naming expression.