Product Structure

This section explains export of product structures with examples.

Note: You cannot export CATIA V5 data imported from XPDM in Unified Collaborative Design mode. For more information, see Design with CATIA V5 User's Guide and Product Structure Editor User's Guide.

This page discusses:

Transfer Scope

Transfer from 3DEXPERIENCE platform to X-PDM can be initiated only from a selected VPMReference or a Product View Specification (PVS). A PVS designates a VPMReference and a filter to be applied when expanding the product structure under this VPMReference.

Following child entities are sent in XPDMXML, on exporting a VPMReference:

  • VPMReference
  • VPMInstance
  • 3DShape
  • Drawing
  • VPMRepInstance

The same is also explained in the figure below.

From the XPDMXML, you can retrieve information about a selected object from the following two InfoHeader elements:

  • SouceObjectRef : When the selected object is exported for the first time, the SouceObjectRef value is the XML object’s IDREF. An example for SouceObjectRef is as following:

    <InfoHeader>
      <Info name="SourceObjectRef" value="ID_0" /> 
    </InfoHeader>
     <ProductStructure>
     <Product id="ID_0">
      <ID>Root</ID>
    <Description />
      <Name /> 
      <UniqueID External="2E2958222B9FDE520606193652D77E540607CBE2" XID="2E2958222B9FDE520606193652D77E540607CBE2" locationOfControl="V6" /> 
     

  • SourceObjectExternalID : For a selected object that is already exported, the SourceObjectExternalID value contains the value of it’s stable ID. This is useful when this object is not present in the XML due to a filtering mechanism. An example of SourceObjectExternalID is as following:

    <InfoHeader>
       <Info name="SourceObjectRef" value="ID_0" /> 
       <Info name="SourceObjectExternalID" value="2E2958222B9FDE520606193652D77E540607CBE2" />
    </InfoHeader>
    <ProductStructure>
    <Product id="ID_0">
      <ID>Root</ID> 
      <Description />
      <Name /> 
      <UniqueID External="2E2958222B9FDE520606193652D77E540607CBE2" XID="2E2958222B9FDE520606193652D77E540607CBE2" locationOfControl="V6" /> 
    

Single Reference Example

An example of output XPDMXML file is as following:

<InfoHeader>
    <Info name="SouceObjectRef" value="ID_0"/>
</InfoHeader>
<ProductStructure rootRefs="ID_0" updateChildMode="RemoveExistingNotProvided">
<Product id="ID_0" mappingType="DefaultCustomization">
  <ID>SINGLEREF</ID> 
  <Description /> 
  <Name /> 
  <UniqueID External="14D7A8CE8B5489330E0E235E5B8ED1520E108E77" 
XID="14D7A8CE8B5489330E0E235E5B8ED1520E108E77" locationOfControl="V6" /> 
  <RevisionName>---</RevisionName> 
  <RevisionIndex>1</RevisionIndex> 
  <RevisionFamily>7D467B25000015504D80C34400028069</RevisionFamily> 
  <Maturity>IN_WORK</Maturity> 
  <Lifecycle>VPLM_SMB</Lifecycle> 
  <TimeCreated>2013-01-16T19:34:19.0Z</TimeCreated>
  <TimeModified>2013-01-16T19:34:19.0Z</TimeModified> 
  <Owner>XXX</Owner> 
  <Organization>MyCompany</Organization> 
  <Project>Standard</Project> 
  <SecurityLevel>0</SecurityLevel> 
<Property name="Supplier" type="boolean">
  <Value>true</Value>
</Property>
</Product>
</ProductStructure>

Note: When transferring a product structure, the updateChildMode attribute is set to RemoveExistingNotProvided.

Product Structure Example

For each VPMProductInstance a ProductInst element is created in XPDMXML.

For example, exporting the following product structure from 3DEXPERIENCE platform:

Prd1

|- Prd2

Creates the following XPDMXML file:

<InfoHeader>
    <Info name="SouceObjectRef" value="ID_0"/>
</InfoHeader>
<ProductStructure rootRefs="ID_0" updateChildMode="RemoveExistingNotProvided">
<Product id="ID_0">
  <ID>Prd1</ID> 
…..
</Product>
<Product id="ID_1">
  <ID>Prd2</ID> 
…..
</Product>
<ProductInst id="ID_2">
  <ID>Prd2.1</ID> 
  <Description />
  <Name /> 
  <UniqueID External="14D7A8CE8B5489330E0E20825B8FA89F0E124689" 
XID="14D7A8CE8B5489330E0E20825B8FA89F0E124689" locationOfControl="V6"/> 
…..
  <Owned>ID_0</Owned> 
  <Instancing>ID_1</Instancing>
<ChildOrder>1</ChildOrder>
<RelativeTransformation3D>
  <Rotation3D>1 0 0 0 1 0 0 0 1/Rotation3D> 
  <Translation3D>0 0 0</Translation3D> 
</RelativeTransformation3D>
</ProductInst>
</ProductStructure>

Note:
  • When transferring a product structure, the updateChildMode attribute is set to RemoveExistingNotProvided.
  • The links created on previous revisions are re-routed to new revisions, when you use <RevisionFamily> tag for the instances in XPDMXML during the import.

Persistent Filter Example

When transferring a product structure from persistent filter, the updateChildMode attribute is set to IgnoreExistingNotProvided regardless of the filtering effect of the persistent filter. For each instance a productInst element is created in XPDMXML.

For example, you can defined a PVS for Product317 with a filter that keeps only Product318.1 child instance when it is applied:



Exporting the persistent filter from 3DEXPERIENCE platform, creates the following XPDMXML file:

<InfoHeader>
    <Info name="SouceObjectRef" value="ID_3"/>
    <Info name="SourceObjectExternalID" value="55F1FA995894392402021B025108E37E0204D7F7" />
</InfoHeader>
<ProductStructure rootRefs="ID_3" updateChildMode="IgnoreExistingNotProvided">
<Product id="ID_3">
  <ID>Product317</ID>
<UniqueID External="55F1FA995894392402021B025108E37E0204D7F7" XID="55F1FA995894392402021B025108E37E0204D7F7" locationOfControl="V6" /> 
…..
</Product>
<Product id="ID_4">
  <ID>Product318</ID> 
…..
</Product>
<ProductInst id="ID_5">
  <ID>Product318.1</ID> 
  <Description />
  <Name /> 
  <UniqueID External="14D7A8CE8B5489330E0E20825B8FA89F0E124689" 
XID="14D7A8CE8B5489330E0E20825B8FB89F0E124689" locationOfControl="V6" /> 
…..
  <Owned>ID_3</Owned> 
  <Instancing>ID_4</Instancing>
<ChildOrder>1</ChildOrder>
<RelativeTransformation3D>
  <Rotation3D>1 0 0 0 1 0 1 0 1/Rotation3D> 
  <Translation3D>0 1 0</Translation3D> 
</RelativeTransformation3D>
</ProductInst>
</ProductStructure>
Note: Transferring a structure from persistent filter is always marked as incomplete, even if all children are present.

Partial Product Structure

You can export the 3DEXPERIENCE platform-owned subassemblies in an assembly consisting of 3DEXPERIENCE platform-owned and X-PDM owned products. If the Filter X-PDM Owned Objects check box is selected then the product structure in the XPDMXML file contains only 3DEXPERIENCE platform-owned objects and partial information about X-PDM owned objects that are referenced by the 3DEXPERIENCE platform-owned objects:

For more information, see Generating a Connection Parameter File.

  • If product instances with a parent owned by X-PDM are present, all the attributes of the parent are exported.
  • If product instances with the reference owned by X-PDM are present, only the External attribute is generated in XPDMXML for the X-PDM owned reference. For example, while exporting the following assembly:



    For the P2 reference, only External attribute is generated in XPDMXML, which is as shown below:

    <Product id="ID_1" mapping type="DefaultCustomization">
     <UniqueID External="13E7A8CE8B5489330E0E2A825B8FA80C0E168762" locationOfControl="X-PDM" />
    </Product>
    

    For other objects, all the attributes are exported.

Notes:
  • No data is exported in XPDMXML, if all parts in a structure are owned by X-PDM.
  • When instances are owned by X-PDM, no information about instances is exchanged with X-PDM and the generated XPDMXML does not contain any information about the X-PDM owned instances.
  • The partial product structure exchange format (where referenced objects carry no information other than <UniqueID> ) cannot be used to describe objects during the import process. The X-PDM system should always provide all the attributes when transferring objects to 3DEXPERIENCE platform.

Object Synchronization Modes

The updateObjectMode attribute is added to the object level in the XPDMXML schema. The updateObjectMode attribute value can be either of AddUpdate, AddReference, Reference, or UpdateReference.

Following table lists the behavior of an object at update for different attribute values:

UpdateObjectMode attribute Value

If object doesn’t exist in 3DEXPERIENCE

If object exists in 3DEXPERIENCE

AddUpdate

Create

Update and refer

AddReference

Create

Refer but no update

Reference

Does not create

Refer but no update

UpdateReference

The import process fails.

Update and refer

Note:
  • The updateObjectMode attribute is exported only when:
    • The Filter X-PDM Owned Object check box is selected.
    • An X-PDM owned reference or business object is exported, as it is referred by a 3DEXPERIENCE owned instance or relation. In this case, the updateObjectMode is set to Reference.
    • When you try to export the data from 3DEXPERIENCE to XPDM, modular attributes like Part Number, Mass, Volume, created in a dashboard application like Engineering Release app, are also getting exported along with the basic attributes. When you export the data having Declared Quantity as an already assigned modular attribute, Declared Quantity is shown as Volume in the exported XPDMXML.
  • When the UpdateObjectMode attribute is set to Reference, and if the object does not exist in 3DEXPERIENCE, then XPDM import fails showing the following error in Transition Engine reports of the given object.

    The Object Synchronization mode is not consistent with the missing object