Copying and Pasting As Is in the BOM Transformer
You can add a copied part and its upstream structure as is to the specified downstream part by specifying the source root part, source part, path of the source part, target root part, and path of the target part in the request body. You can add a single or multiple copied parts to the downstream structure by specifying inline or specific upstream and downstream navigation criteria in the request body.
You can also add a copied part and its upstream structure as is to the specified downstream part in the context of change (change task or change notice).
* 
You can use the following API to fetch additional information of a part in the BOM structure required for this request:
POST /Windchill/servlet/odata/BomTransformation/XBOMParts('<RootPartOID>')/PTC.BomTransformation.GetManufacturingBOM?$expand=Components($levels=max)
Example: Copying a Part from the Upstream Structure and Pasting It As Is to the Specified Downstream Part
This example shows you how to copy a part and its upstream structure and paste it as is under the specified downstream part using inline upstream and downstream navigation criteria. In this example, the source root part is the root part of the upstream structure and the target root part is the root part of the downstream structure. Use the following POST URI with the request body:
URI
POST Windchill/servlet/odata/BomTransformation/PasteAsIs
Request Headers
Content-Type: application/json
CSRF_NONCE: <Use the value from Fetch NONCE example>
Request Body
{
"TargetRoot": {
"ID": "OR:wt.part.WTPart:207860"
},
"TargetPath": "628167b8-62f1-410b-ad10-bc9c3591e248",
"SourceRoot": {
"ID": "OR:wt.part.WTPart:207780"
},
"TransformationDefinitions": [
{
"SourcePaths": [
"7de17969-0b47-4319-a69a-51f286abec9c"
],
"SourcePart@odata.bind": "Parts('OR:wt.part.WTPart:207804')"
}
],
"DownstreamNavigationCriteria": {
"HideUnresolvedDependents": false,
"Centricity": false,
"Filters": [],
"ApplicationName": null,
"UseDefaultForUnresolved": false,
"SharedToAll": true,
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplyToTopLevelObject": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"Variation1": null,
"Variation2": null,
"LifeCycleState": null,
"WorkingIncluded": true,
"View": "Manufacturing"
}
]
},
"UpstreamNavigationCriteria": {
"HideUnresolvedDependents": false,
"Centricity": false,
"Filters": [],
"ApplicationName": null,
"UseDefaultForUnresolved": false,
"SharedToAll": true,
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplyToTopLevelObject": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"Variation1": null,
"Variation2": null,
"LifeCycleState": null,
"WorkingIncluded": true,
"View": "Design"
}
]
}
}
The request adds the specified part and its upstream structure under the specified downstream part. The request creates new equivalence links between the downstream BOM and the upstream BOM.
Example: Copying Multiple Parts with Existing Downstream Objects from the Upstream Structure and Pasting Them As Is to the Specified Downstream Part
This example shows you how to copy two upstream parts and paste them as is to the specified downstream part using inline upstream and downstream navigation criteria. In this example, the first upstream part has an existing downstream equivalent object while the second upstream part has an existing downstream object. Use the following POST URI with the request body:
URI
POST Windchill/servlet/odata/BomTransformation/PasteAsIs
Request Headers
Content-Type: application/json
CSRF_NONCE: <Use the value from Fetch NONCE example>
Request Body
{
"TargetRoot": {
"ID": "OR:wt.part.WTPart:209224"
},
"TargetPath": "b18ce55f-2a38-4231-a5cf-57ff7cc8db91",
"SourceRoot": {
"ID": "OR:wt.part.WTPart:209154"
},
"TransformationDefinitions": [
{
"SourcePaths": [
"61ac7d3d-6b9f-422a-854f-1c21a201aa8b"
],
"SourcePart@odata.bind": "Parts('OR:wt.part.WTPart:209164')",
"ExistingDownstreamAssociations@odata.bind": [
"ExistingDownstreamAssociations('OR:wt.associativity.EquivalenceLink:209075')"
],
"ReviseExistingDownstream": true
},
{
"SourcePaths": [
"62560f05-2dc2-41af-8b72-bf95f0aeb69d"
],
"SourcePart@odata.bind": "Parts('OR:wt.part.WTPart:209172')",
"ExistingDownstreamAssociations@odata.bind": [
"ExistingDownstreamAssociations('OR:wt.part.WTPart:209172|OR:wt.part.WTPart:209251')"
],
"ReviseExistingDownstream": true
}
],
"DownstreamNavigationCriteria": {
"HideUnresolvedDependents": false,
"Centricity": false,
"Filters": [],
"ApplicationName": null,
"UseDefaultForUnresolved": false,
"SharedToAll": true,
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplyToTopLevelObject": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"Variation1": null,
"Variation2": null,
"LifeCycleState": null,
"WorkingIncluded": true,
"View": "Manufacturing"
}
]
},
"UpstreamNavigationCriteria": {
"HideUnresolvedDependents": false,
"Centricity": false,
"Filters": [],
"ApplicationName": null,
"UseDefaultForUnresolved": false,
"SharedToAll": true,
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplyToTopLevelObject": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"Variation1": null,
"Variation2": null,
"LifeCycleState": null,
"WorkingIncluded": true,
"View": "Design"
}
]
}
}
The request reuses, revises and adds the existing downstream equivalent object to the specified downstream part.
For the second upstream part the request reuses, revises and adds the existing downstream object to the specified downstream part and creates a new equivalence link.
Example: Copying a Part from the Upstream Structure and Pasting It As Is to the Specified Downstream Part in the Context of Change
This example shows you how to copy a part and its upstream structure and paste it as is under the specified downstream part in the context of change using inline upstream and downstream navigation criteria. Use the following POST URI with the request body:
URI
POST Windchill/servlet/odata/BomTransformation/PasteAsIs
Request Headers
Content-Type: application/json
CSRF_NONCE: <Use the value from Fetch NONCE example>
Request Body
{
"TargetRoot": {
"ID": "OR:wt.part.WTPart:240503"
},
"TargetPath": "a7a92e09-ee2a-42ca-b9f0-1d882d8e8a00",
"SourceRoot": {
"ID": "OR:wt.part.WTPart:240391"
},
"TransformationDefinitions": [
{
"SourcePaths": [
"53fb718a-c75d-4ea1-977e-232d6bab06a9"
],
"SourcePart@odata.bind": "Parts('OR:wt.part.WTPart:240403')"
}
],
"ChangeOid": "VR:wt.change2.WTChangeOrder2:240189",
"DownstreamNavigationCriteria": {
"HideUnresolvedDependents": false,
"Centricity": false,
"Filters": [],
"ApplicationName": null,
"UseDefaultForUnresolved": false,
"SharedToAll": true,
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplyToTopLevelObject": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"Variation1": null,
"Variation2": null,
"LifeCycleState": null,
"WorkingIncluded": true,
"View": "Manufacturing"
}
]
},
"UpstreamNavigationCriteria": {
"HideUnresolvedDependents": false,
"Centricity": false,
"Filters": [],
"ApplicationName": null,
"UseDefaultForUnresolved": false,
"SharedToAll": true,
"ApplicableType": "PTC.ProdMgmt.Part",
"ApplyToTopLevelObject": false,
"ConfigSpecs": [
{
"@odata.type": "#PTC.NavCriteria.WTPartStandardConfigSpec",
"Variation1": null,
"Variation2": null,
"LifeCycleState": null,
"WorkingIncluded": true,
"View": "Design"
}
]
}
}
The request adds the specified part and its upstream structure under the specified downstream part. The request adds the modified downstream part to the Resulting Objects table of the change object specified in the ChangeOid attribute.
To see more details, you can expand the upstream parts, downstream parts, equivalent links, and usage links.