Product Occurrence

Fields

kA3DProductLoadStatusUnknown
kA3DProductLoadStatusError
kA3DProductLoadStatusNotLoaded
kA3DProductLoadStatusNotLoadable
kA3DProductLoadStatusLoaded
A3DEProductOccurrenceTypeCat_unknown
A3DEProductOccurrenceTypeCat_model
A3DEProductOccurrenceTypeCat_sessionModel
A3DEProductOccurrenceTypeCat_session
A3DEProductOccurrenceTypeCat_export
A3DEProductOccurrenceTypeInv_none
A3DEProductOccurrenceTypeInv_iam
A3DEProductOccurrenceTypeInv_ipt
A3DEProductOccurrenceTypeSLW_ContainerTess
A3DEProductOccurrenceTypeSLW_Container
A3DEProductOccurrenceTypeSLW_Part
A3DEProductOccurrenceTypeSLW_Assembly
A3DEProductOccurrenceTypeSLW_Drawing
A3DEProductOccurrenceTypeSLW_Unknown
A3DEProductOccurrenceTypeSLW_PartTesselated
A3DEProductOccurrenceTypeSLW_AssemblyTesselated
A3DEProductOccurrenceTypeSLW_StandalonePart
kA3DLayerDisplayShow
kA3DLayerDisplayHide
kA3DLayerDisplayIsolate
kA3DLayerDisplayUnknown

Detailed Description

group a3d_productoccurrence

Creates and accesses product occurrence PRC entities.

A product occurrence denotes an assembly tree. If the assembly tree contains a single part, the product occurrence points directly to a part definition. In the case of a more complex assembly tree, a product occurrence is a hierarchy of child product occurrences. And a product occurrence can reference product occurrences that are designated as ProductPrototypes or ExternalData. Such ProductOccurrences denote subassembly structures, which in turn can point to PartDefinitions.

Entity type is kA3DTypeAsmProductOccurrence.

Type Documentation

enum A3DEProductLoadStatus

Load status of the PRC model file.

Version
2.1

Values:

enumerator kA3DProductLoadStatusUnknown

Unknown status.

enumerator kA3DProductLoadStatusError

Loading error.

For example, there is a missing file.

enumerator kA3DProductLoadStatusNotLoaded

Not loaded.

enumerator kA3DProductLoadStatusNotLoadable

Not loadable.

For example, limitations exist that prevent the product from loading.

enumerator kA3DProductLoadStatusLoaded

The product was successfully loaded.

enum A3DEProductOccurrenceTypeCat

A3DAsmProductOccurrenceData extension for CATIA V4

Version
8.2

Values:

enumerator A3DEProductOccurrenceTypeCat_unknown

Unknwon CATIA V4 type.

enumerator A3DEProductOccurrenceTypeCat_model

CATIA V4 Model.

enumerator A3DEProductOccurrenceTypeCat_sessionModel

CATIA V4 Session Model.

enumerator A3DEProductOccurrenceTypeCat_session

CATIA V4 Session.

enumerator A3DEProductOccurrenceTypeCat_export

CATIA V4 Export.

enum A3DEProductOccurrenceTypeInv

A3DAsmProductOccurrenceData extension for Inventor

Version
8.2

Values:

enumerator A3DEProductOccurrenceTypeInv_none

Unknown Inventor type.

enumerator A3DEProductOccurrenceTypeInv_iam

Inventor assembly.

enumerator A3DEProductOccurrenceTypeInv_ipt

Inventor Part.

enum A3DEProductOccurrenceTypeSLW

A3DAsmProductOccurrenceData extension for SolidWorks

Version
8.2

Values:

enumerator A3DEProductOccurrenceTypeSLW_ContainerTess

SolidWorks Container with tessellation.

enumerator A3DEProductOccurrenceTypeSLW_Container

SolidWorks Container.

enumerator A3DEProductOccurrenceTypeSLW_Part

SolidWorks Part.

enumerator A3DEProductOccurrenceTypeSLW_Assembly

SolidWorks Assembly.

enumerator A3DEProductOccurrenceTypeSLW_Drawing

SolidWorks 2D Drawing.

enumerator A3DEProductOccurrenceTypeSLW_Unknown

Unknown Solidworks type.

enumerator A3DEProductOccurrenceTypeSLW_PartTesselated

SolidWorks Part with tessellation.

enumerator A3DEProductOccurrenceTypeSLW_AssemblyTesselated

SolidWorks Assembly with tessellation.

enumerator A3DEProductOccurrenceTypeSLW_StandalonePart

SolidWorks Stand-alone Part.

enum A3DELayerDisplayStatus

Layer display status.

Version
24.5

Values:

enumerator kA3DLayerDisplayShow

Shown layer, the elements referenced by this layer are shown (note: other layers can change the visibility of these elements, it can depend of the behavior of each CAD software program).

enumerator kA3DLayerDisplayHide

Hidden layer, the elements referenced by this layer are hidden (note: other layers can change the visibility of these elements, it can depend of the behavior of each CAD software program).

enumerator kA3DLayerDisplayIsolate

Isolated layer, it means only the layers with this status are shown.

enumerator kA3DLayerDisplayUnknown

Layer display status unknown.

Function Documentation

A3DStatus deprecated_A3DAsmProductOccurrenceUnload(A3DAsmProductOccurrence *pProductOccurrence)

Removes all tessellation and geometry of an A3DAsmProductOccurrence entity.

Deprecated:

Use A3DAsmModelFileUnloadParts instead. This will be removed in version 2026.1.0.

Version
3.1

Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_PART_EXTERNAL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_EMPTY
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGet(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrenceData *pData)

Populates the A3DAsmProductOccurrenceData structure.

Version
2.0

Sample code

A3DInt32 iErr = A3D_SUCCESS;
A3DAsmProductOccurrence pOccurrence = NULL;

/* Should call something here in order to get a valid A3DAsmProductOccurrence */

A3DAsmProductOccurrenceData sData;
A3D_INITIALIZE_DATA(sData);
iErr = A3DAsmProductOccurrenceGet( pOccurrence , &sData );
if ( iErr == A3D_SUCCESS )
{
    /* Insert here your own code to parse through members of ProductOccurrence */
    iErr = A3DAsmProductOccurrenceGet( NULL, &sData );
}

Return values:
  • A3D_INITIALIZE_NOT_CALLED
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceCreate(const A3DAsmProductOccurrenceData *pData, A3DAsmProductOccurrence **ppProductOccurrence)

Creates an A3DAsmProductOccurrence from A3DAsmProductOccurrenceData structure.

Version
2.0

Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_PART_EXTERNAL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_EMPTY
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceSetProductPrototype(A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrence *pProductPrototype)

Sets up an A3DAsmProductOccurrence entity as a prototype to another A3DAsmProductOccurrence entity.

This function sets an A3DAsmProductOccurrence entity as a prototype to another A3DAsmProductOccurrence entity, and duplicates the A3DAsmProductOccurrenceData structure.

Version
2.0

Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_PART_EXTERNAL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_EMPTY
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetFilePathName(const A3DAsmProductOccurrence *pProductOccurrence, A3DUTF8Char **ppcFileName)

Returns the full path name of the file associated with the product occurrence.

Version
4.0

Warning

Using this function on a product occurrence holding a prototype is not recommended, as the result is influenced by how the data is originally stored in the CAD file.

Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_PART_EXTERNAL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_EMPTY
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetOriginalFilePathName(const A3DAsmProductOccurrence *pProductOccurrence, A3DUTF8Char **ppcFileName)

Returns the original file name stored in the CAD file.

Version
8.2

Warning

Using this function on a product occurrence holding a prototype is not recommended, as the result is influenced by how the data is originally stored in the CAD file.

Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_PART_EXTERNAL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_EMPTY
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceAddView(A3DAsmProductOccurrence *pProductOccurrence, A3DMkpView *pView)

Adds a view in the Array of views.

Version
4.1

Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_PART_EXTERNAL
  • A3D_PRODUCTOCCURRENCE_INCONSISTENT_EMPTY
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceEdit(const A3DAsmProductOccurrenceData *pData, A3DAsmProductOccurrence *pProductOccurrence)

Allows to modify some data of a product occurrence.

These fields from A3DAsmProductOccurrenceData are not supported and ignored:

  • m_eProductLoadStatus
  • m_uiProductFlags
  • m_bUnitFromCAD
  • m_dDensityVolumeUnit
  • m_dDensityMassUnit
  • m_eModellerType
  • m_bInactivateAnnotations
  • m_uiConstraintsSize
  • m_pPublicationSet
  • m_ppConstraints
The m_dUnit field from A3DAsmProductOccurrenceData is supported only for these formats:

  • CATIA V4
  • CATIA V5
  • Creo - Pro/E
  • NX
  • STEP
  • U3D
Version
5.1

Warning

This function must not be applied within a HOOPS Visualize context. See Quickstart.

Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceDeepCopy(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrence **ppNewProductOccurrence)

Creates a new product occurrence by making a deep copy of the data.

The Copy can be processed on a member of an assembly at different levels. Here an assembly sample and the several copied product added.

The deep copy will copied all the data and create new part, for the new instances.

../../_images/po_deep_copy_asm.jpg

The prototype mechanism is still present after the copy to assure the possibility to distinguish instances.

Due to his position in the tree the product occurrence of a part can reach its part definition by traversing multiple prototype. It’s the case of the product A/B1/C1/D1.

../../_images/po_deep_copy_tree.jpg

After the deep clone, only last prototype is necessary,

All intermediate prototypes are removed and possible redefinition (color,

) or data (attributes) are moved to the new product member.../../_images/po_deep_copy_tree_member.jpg

A/B1/C1/D1 -> B/C1/D1 -> C/D1 -> D
Becomes
Copy A/B1/C1/D1 + intermediate properties -> Copy D

Version
11.2

Return values:
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_ERROR
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetFather(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrence **ppProductOccurrenceFather)

Get the father of a product occurrence.

The father is NULL for root product occurrences and root prototypes (i.e. prototypes with no prototype). For external data the father is the “member” product occurrence that targets it.

Version
13.0

Return values:
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_ERROR
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetSLW(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrenceDataSLW *pData)

Populates the A3DAsmProductOccurrenceDataSLW structure.

Version
8.2

Return values:
  • A3D_INITIALIZE_NOT_CALLED
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetCat(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrenceDataCat *pData)

Populates the A3DAsmProductOccurrenceDataCat structure.

Version
8.2

Return values:
  • A3D_INITIALIZE_NOT_CALLED
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetCV5(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrenceDataCV5 *pData)

Populates the A3DAsmProductOccurrenceDataCV5 structure.

Version
8.2

Return values:
  • A3D_INITIALIZE_NOT_CALLED
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetUg(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrenceDataUg *pData)

Populates the A3DAsmProductOccurrenceDataUg structure.

Version
8.2

Return values:
  • A3D_INITIALIZE_NOT_CALLED
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetProe(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrenceDataProe *pData)

Populates the A3DAsmProductOccurrenceDataProe structure.

Version
8.2

Return values:
  • A3D_INITIALIZE_NOT_CALLED
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetInv(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrenceDataInv *pData)

Populates the A3DAsmProductOccurrenceDataInv structure.

Version
8.2

Return values:
  • A3D_INITIALIZE_NOT_CALLED
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetJT(const A3DAsmProductOccurrence *pProductOccurrence, A3DAsmProductOccurrenceDataJT *pData)

Populates the A3DAsmProductOccurrenceDataJT structure.

Version
8.2

Return values:
  • A3D_INITIALIZE_NOT_CALLED
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetLayerList(const A3DAsmProductOccurrence *pProductOccurrence, A3DUns32 *piLayers, A3DAsmLayer **ppLayerArray)

Allow to get the layer name of an item from his layer defined by A3DMiscCascadedAttributesData::m_usLayer.

Version
11.1

Return values:
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmProductOccurrenceGetIdentifier(const A3DAsmProductOccurrence *pProductOccurrence, A3DUTF8Char **ppcIdentifier)

Combine Part ID and Occurrence identifier.

Version
9.1

Return values:
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure