About Product Structure

This section describes about import of a product structure.

3DEXPERIENCE platform owned product structure coming in XPDMXML is ignored during import. Behavior incase an XPDM owned product structure comes in XPDMXML:

  • If the structure coming in XPDMXML does not exist in 3DEXPERIENCE platform but references exist in 3DEXPERIENCE platform, then new instances are created using existing references.
  • If instances exists in 3DEXPERIENCE platform:
    • If XPDMXML has P2 instance under P1 reference which already exists in 3DEXPERIENCE platform, the attributes of the existing instance and reference are updated.
    • If XPDMXML has P2 instance under P1 reference and updateChildMode=RemoveExistingNotProvided, but in 3DEXPERIENCE platform we have P3 instance under P1 reference , then a new instance of P2 is created under P1 and the existing instance of P3 is deleted from the product structure. P3 is not deleted from database.
    • If XPDMXML has P2 instance under P1 reference and updateChildMode=IgnoreExistingNotProvided, but in 3DEXPERIENCE platform we have P3 instance under P1 reference, then a new instance of P2 is created under P1 and the existing instance of P3 is not deleted from the product structure and database.
    • If XPDMXML has P1 with no instances under it and updateChildMode=RemoveExistingNotProvided, but in 3DEXPERIENCE platform we have P2 instance under P1 reference , then the existing instance of P2 under P1 reference is deleted from the product structure. P2 is not deleted from database.
    • If XPDMXML has P1 with no instances under it and updateChildMode=IgnoreExistingNotProvided, but in 3DEXPERIENCE platform we have P2 instance under P1 reference, then the existing instance of P2 under P1 reference is not deleted from the product structure and database.
<ProductStructure rootRefs="ID_0"updateChildMode="RemoveExistingNotProvided">
<Product id="ID_0">
  <ID>Prd1</ID>
<UniqueID External="2E2958222B9FDE520606193652D77E540607CBE2" XID="2E2958222B9FDE520606193652D77E540607CBE2" /> 
…..
</Product>
<Product id="ID_1">
  <ID>Prd2</ID> 
…..
</Product>
<ProductInst id="ID_2">
  <ID>Prd2.1</ID> 
  <Description /> 
  <Name />
  <UniqueID External="XPDM_Authored"/> 

…..
  <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>

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 mode

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: If no updateObjectMode attribute is available on the object level, the default behavior is AddUpdate mode.