Creating Equivalent Usage Links
You can create an equivalent usage link that relates a usage path of a part in an upstream context to a usage path of its equivalent part in the downstream context.
You can create a single or multiple equivalent usage links between upstream part usages and their respective equivalent downstream part usages.
You can create an equivalent usage link by specifying the upstream root part, equivalent downstream root part, upstream path, downstream path, and upstream and downstream navigation criteria in the request body. If you do not specify the navigation criteria, the System Default filter is applied.
* 
You can use the following existing API to get information for parts in the BOM transformer for providing it as an input to the CreateEquivalenceUsageLinks action:
POST /Windchill/servlet/odata/BomTransformation/XBOMParts('<RootPartOID>')/PTC.BomTransformation.GetManufacturingBOM?$expand=Components($levels=max)
When an equivalent usage link already exists between an upstream part usage and an equivalent downstream part usage, the input is skipped if specified.
Example: Creating Multiple Equivalent Usage Links
This example shows you how to create an equivalent usage link for two upstream parts each. This example shows you how to create two equivalent usage links with inline upstream and downstream navigation criteria specified in the request body. Use the following POST URI with the request body:
URI
POST Windchill/servlet/odata/BomTransformation/CreateEquivalenceUsageLinks?$expand=EquivalenceUsageLink
Request Headers
Content-Type: application/json
CSRF_NONCE: <Use the value from Fetch NONCE example>
Request Body
{
"EquivalenceUsageAssociation": [
{
"UpstreamPath": "23d3aab1-1932-4e0c-9980-af0121c09f10",
"DownstreamPath": "33b682f1-085c-4c3d-a535-63287e4dd993",
"UpstreamRoot@odata.bind": "Parts('OR:wt.part.WTPart:195044')",
"DownstreamRoot@odata.bind": "Parts('OR:wt.part.WTPart:195118')"
},
{
"UpstreamPath": "23d3aab1-1932-4e0c-9980-af0121c09f10",
"DownstreamPath": "741a8cc1-3792-4388-b31a-f50a7b0777fe",
"UpstreamRoot@odata.bind": "Parts('OR:wt.part.WTPart:195044')",
"DownstreamRoot@odata.bind": "Parts('OR:wt.part.WTPart:195118')"
}
],
"UpstreamNavigationCriteria": {
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplicationName": null,
"ApplyToTopLevelObject": false,
"Centricity": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": true,
"View": "Design",
"LifeCycleState": null,
"Variation1": null,
"Variation2": null
}
],
"CreatedOn": "2022-07-18T14:18:23+02:00",
"Filters": [],
"HideUnresolvedDependents": false,
"ID": "OR:wt.filter.NavigationCriteria:193346",
"LastModified": "2022-07-18T14:18:23+02:00",
"Name": "s1",
"SharedToAll": false,
"UseDefaultForUnresolved": false
},
"DownstreamNavigationCriteria": {
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplicationName": null,
"ApplyToTopLevelObject": false,
"Centricity": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"WorkingIncluded": true,
"View": "Design",
"LifeCycleState": null,
"Variation1": null,
"Variation2": null
}
],
"CreatedOn": "2022-07-18T14:18:23+02:00",
"Filters": [],
"HideUnresolvedDependents": false,
"ID": "OR:wt.filter.NavigationCriteria:195866",
"LastModified": "2022-07-18T14:18:23+02:00",
"Name": "s1",
"SharedToAll": false,
"UseDefaultForUnresolved": false
}
}
The request returns information for the two equivalent usage links created between the specified upstream path usages and the equivalent downstream part usages.
The URI below returns information about each specified upstream root part, equivalent downstream root part, and the equivalent usage link.
URI with Expand
POST Windchill/servlet/odata/BomTransformation/CreateEquivalenceUsageLinks?$expand=EquivalenceUsageLink,UpstreamRoot,DownstreamRoot
The URI below returns information about each equivalence usage link. Additionally, the request returns information for each upstream part and equivalent downstream part.
URI with Expand
POST Windchill/servlet/odata/BomTransformation/CreateEquivalenceUsageLinks?$expand=EquivalenceUsageLink,UpstreamPart,DownstreamPart
The URI below returns all the information for each equivalent usage link created between each specified upstream path usage and its respective equivalent downstream part usage. Additionally, the URI returns information about each specified upstream root part, equivalent downstream root part, upstream part, and equivalent downstream part.
URI with Expand
POST Windchill/servlet/odata/BomTransformation/CreateEquivalenceUsageLinks?$expand=EquivalenceUsageLink,UpstreamRoot,DownstreamRoot,UpstreamPart,DownstreamPart