Overview of Generate Downstream Structure Action
When working on large engineering BOM structures, you can automate the process of generating a manufacturing BOM from a design BOM. The

Generate Downstream Structure action, available in the middle pane tool bar of BOM Transformer, generates a downstream structure from an upstream structure using a customizable logic.
The default logic transfers specific parts to the downstream structure and then restructures them according to the various embedded scenarios. You can configure this default logic using a set of properties in the associativity.properties.xconf file or customize it completely through the delegate framework.
You can also derive the root and assembly nodes for the manufacturing BOM from a template, and specify the rules that should apply when transforming the design BOM structure under the new nodes added in the manufacturing BOM.
• Template: A template can be any of the following:
◦ Part structure with an associated document that contains the rules for transformation.
◦ Part structure without an associated document.
◦ Document containing the rules for transformation.
• Rules: A text file in JSON format that specifies the rules to be applied when transforming an upstream structure to the downstream structure.
◦ The rules can based on matching attribute values on part, usages, or occurrences. For example, if the attribute value of an upstream child part matches the attribute value of a downstream assembly, transform the child part under the matching assembly.
◦ The rules can also specify the creation of equivalent links between the upstream and downstream structures.
| If the rule file is not available, the properties specified in the associativity.properties.xconf file are considered for generating the downstream structure. |
Best Practice
The following are some best practices and information that is helpful when you use the

Generate Downstream Structure action:
• Use the

Generate Downstream Structure action only once on a selected assembly.
• For properties that involve mapping, specify unique values in mapping attributes. For example, <AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPart" value="attributeMapping.rule1=attribute1:String1:attribute2:String2"/>.
• Specifying a target type property in the associativity.properties.xconf file is prerequisite to using this action. The property file is located at Windchill/codebase/com/ptc/core/foundation/associativity.
For example:<AddToProperty name="com.ptc.windchill.associativity.reconciliation.addusage.wt.part.WTPartUsageLink" value="targetType=wt.part.WTPart"/>
• When this action is initiated on an assembly such as Axle Assembly, the application traverses the structure under Axle Assembly and generates a downstream structure for parts under the Axle Assembly.
• This action is disabled when you select invalid objects like part master, extended data, standard control characteristics, and so on.
• You can create new attributes and use those attributes in properties defined for this action.
• This action supports global, local, and calculated attributes in Windchill. The Boolean, string, real number, integer attributes are also supported. However, the date attribute is not supported.