Additional Windchill Capabilities > Manufacturing Process Management > Transforming an eBOM into an mBOM > Creating an mBOM > Overview of Generate Downstream Structure Action > Restructure Transferred Nodes > Adding Usage Attribute
  
Adding Usage Attribute
You can add parent name as an attribute to the downstream parts that are transferred from the upstream structure. The logic can be defined by using custom attributes or by specifying types.
Using Custom Attributes
Custom attributes of data types Boolean and String can be created on the Part Usage link. The Boolean attribute indicates whether the parent name should be displayed on the downstream structure, and the String attribute indicates the parent name. If the value of the Boolean attribute for a particular part is set to Yes in the upstream structure, the parent name of the part is displayed as the value of the String attribute in the downstream structure. If the value of the Boolean attribute is blank, the parent name is not displayed. If the value is set to No, the parent name is never displayed.
In the given example, the custom attribute AUA is used to indicate the parts that should display the parent name attribute in the downstream structure.
After the Generate Downstream Structure action is executed, the parts with the AUA attribute value set to Yes in the upstream structure display the parent name in the UpstreamParentName attribute in the downstream structure. In order to restructure downstream and effectively add this attribute, the application checks if a downstream transformation is required. When restructuring the transferred nodes, by default, the application creates a new downstream branch. You can customize this behavior in the resolver delegate.
* 
If the part for which you want to add the parent name attribute is checked out to another user, the new part will not be added.
To add the parent name attribute when generating the downstream structure, perform the following steps:
1. Create a custom attribute of data type Boolean on the part usage link and set the default value to blank. For more information, see Creating a New Attribute and Default Values Tab.
2. Access the associativity.properties file located at Windchill/codebase/com/ptc/core/foundation/associativity.
3. Replace the default attribute name specified in the line <Property name="com.ptc.windchill.associativity.BomGenerationAddUsageAttribute" default="xyz"/> with the new attribute name.
4. Similarly, create another custom attribute of data type String on the part usage link.
5. In the associativity.properties file , replace the default attribute name specified in the line <Property name="com.ptc.windchill.associativity.BomGenerationUpstreamParentNameAttribute" default="xyz"/> with the new attribute name.
6. In BOM Transformer, assign the values: Yes or No for the Boolean attribute in the Uses tab of the upstream structure.
* 
An error message is displayed if the parent name attribute does not exist in the downstream structure.
Specifying Part Types
Perform the following steps to specify the types of parts for which you want to add the parent name attribute:
1. Create the Boolean and String attributes as discussed in the Using Custom Attributes section.
2. Access the associativity.properties file located at Windchill/codebase/com/ptc/core/foundation/associativity.
3. Add the types using comma-separated values in the line <Property name="com.ptc.windchill.associativity.BomGenerationAddUsageType" multivalued="," default=""/>.
The default value specified for this property is blank.
The parts that correspond to the types specified in the properties file display the parent name attribute in the downstream structure. However, if the custom attribute value for any of the specified types is set to No, the parent name attribute is not displayed.
Using Custom Attribute and Type
You can use both the custom attribute and the type to indicate the parts that should display the parent name attribute. The following table describes the result of using both the criteria.
Custom Attribute Value
Type
Result
Blank
Blank
Parent name is not displayed.
Blank
Value
Parent name for the part that corresponds to the specified type is displayed.
Yes
Blank
Parent name for the part with custom attribute set to Yes is displayed.
Yes
Value
Parent name for the part with custom attribute set to Yes and the part that corresponds to the specified type is displayed.
No
Blank
Parent name is never displayed.
No
Value
Parent name is never displayed.