Load Module

Types

A3DRWParamsGeneralData

A3DRWParamsPmiData

A3DRWParamsTessellationData

A3DRWParamsSearchDirData

A3DRWParamsAssemblyData

A3DRWParamsMultiEntriesData

A3DRWParamsCatiaV4Data

A3DRWParamsCatiaV5Data

A3DRWParamsUnigraphicsData

A3DRWParamsProEData

A3DRWValidationPropertiesThresholdData

A3DRWParamsStepData

A3DRWParamsIGESData

A3DRWParamsIFCData

A3DRWParamsJTData

A3DRWParamsParasolidData

A3DRWParamsSolidworksData

A3DRWParamsInventorData

A3DRWParamsRhinoData

A3DRWParamsRevitData

A3DRWParamsSolidEdgeData

A3DRWParamsSpecificLoadData

A3DRWParamsIncrementalLoadData

A3DRWParamsLoadData

A3DStream3DPDFData

A3DEReadGeomTessMode

A3DEUnits

A3DETessellationLevelOfDetail

A3DProESessionColorType

A3DProEReadConstructEntities

A3DProEFamilyTables

A3DEStepNameFromNAUO

A3DEJTReadTessellationLevelOfDetail

EA3DRevitPhysicalProperties

EA3DRevitLinks

EA3DRevitMultiThreadedMode

Fields

kA3DReadGeomOnly

kA3DReadGeomAndTess

kA3DReadTessOnly

kA3DUnitPoint

kA3DUnitInch

kA3DUnitMillimeter

kA3DUnitCentimeter

kA3DUnitPicas

kA3DUnitFoot

kA3DUnitYard

kA3DUnitMeter

kA3DUnitKilometer

kA3DUnitMile

kA3DUnitMicroInch

kA3DUnitMil

kA3DUnitAngstrom

kA3DUnitNanometer

kA3DUnitMicron

kA3DUnitDecimeter

kA3DUnitDekameter

kA3DUnitHectometer

kA3DUnitGigameter

kA3DUnitAstronomical

kA3DUnitLightYear

kA3DUnitParsec

kA3DUnitUSSurveyFoot

kA3DUnitUSSurveyInch

kA3DUnitUSSurveyYard

kA3DUnitUSSurveyMile

kA3DUnitUnknown

kA3DTessLODExtraLow

kA3DTessLODLow

kA3DTessLODMedium

kA3DTessLODHigh

kA3DTessLODExtraHigh

kA3DTessLODUserDefined

kA3DTessLODControlledPrecision

kA3DLastCreoVersionSessionColor

kA3DHExchangeSessionColor

kA3DFileVersionSessionColor

A3DProEReadConstructEntities_AsDatum

A3DProEReadConstructEntities_Yes

A3DProEReadConstructEntities_No

A3DProEFamTabAcceleratorFileOnly

A3DProEFamTabOrUseTessellation

A3DProEFamTabOrUseWireAndGeneric

kA3DStepNameFromNAUO_ID

kA3DStepNameFromNAUO_NAME

kA3DStepNameFromNAUO_DESCRIPTION

kA3DJTTessLODLow

kA3DJTTessLODMedium

kA3DJTTessLODHigh

kA3DRevitPhysicalProperties_NotComputed

kA3DRevitPhysicalProperties_Computed

kA3DRevitLinks_LoadAll

kA3DRevitLinks_IgnoreAll

kA3DRevitLinks_IgnoreRevit

kA3DRevitLinks_IgnoreDwg

kA3DRevitLinks_IgnoreIFC

kA3DRevitMultiThreadedMode_Disabled

kA3DRevitMultiThreadedMode_LoadingEnabled

kA3DRevitMultiThreadedMode_RegenerationEnabled

kA3DRevitMultiThreadedMode_LoadingAndRegenerationEnabled

Functions

A3DStatus

A3DAsmModelFileLoadFromFile

A3DStatus

A3DAsmModelFileLoadFromPrcStream

A3DVoid

A3DRWParamsPrcReadHelperFree

A3DStatus

A3DAsmModelFileLoadFromPrcFile

A3DStatus

A3DGet3DPDFStreams

A3DStatus

A3DPDFGetStreams

Detailed Description

group a3d_read

Loads the model file with information from the input CAD file.

Type Documentation

enum A3DEReadGeomTessMode

A3DSDKReadWrite.

ReadingMode of the model file. Set which kind of content should be read.

Version

3.0

Values:

enumerator kA3DReadGeomOnly

In this mode, Exchange will avoid reading or generating tessellation on B-rep. Faceted elements from the native file will still be imported.

enumerator kA3DReadGeomAndTess

Mixed mode: In this mode, the B-rep and faceted elements are read from the native file. Tessellation is then generated from B-rep elements.

enumerator kA3DReadTessOnly

In this mode, all faceted elements from the native file are read. If present, the native tessellation of the B-rep is read exclusively. Native tessellation is the display list integrated in the CAD file (only available for CATIA V5, Solidworks, 3DXML, and Inventor).

There are some side effects: The tessellation may be not up-to-date with the geometry, the assembly tree can be different, and hidden objects may be missed.

If an element contains only B-rep, tessellation is generated from the B-rep and subsequently the B-rep is removed to save memory.

enum A3DEUnits

Unit used in the model file.

Version

3.0

Values:

enumerator kA3DUnitPoint

Point.

enumerator kA3DUnitInch

Inch.

enumerator kA3DUnitMillimeter

Millimeter.

enumerator kA3DUnitCentimeter

Centimeter.

enumerator kA3DUnitPicas

Picas.

enumerator kA3DUnitFoot

Foot.

enumerator kA3DUnitYard

Yard.

enumerator kA3DUnitMeter

Meter.

enumerator kA3DUnitKilometer

Kilometer.

enumerator kA3DUnitMile

Mile.

enumerator kA3DUnitMicroInch

Micro Inch.

enumerator kA3DUnitMil

Mil.

enumerator kA3DUnitAngstrom

Angstrom.

enumerator kA3DUnitNanometer

Nanometer.

enumerator kA3DUnitMicron

Micron.

enumerator kA3DUnitDecimeter

Decimeter.

enumerator kA3DUnitDekameter

Dekameter.

enumerator kA3DUnitHectometer

Hectometer.

enumerator kA3DUnitGigameter

Gigameter.

enumerator kA3DUnitAstronomical

Astronomical.

enumerator kA3DUnitLightYear

Light year.

enumerator kA3DUnitParsec

Parsec.

enumerator kA3DUnitUSSurveyFoot

US Survey foot.

enumerator kA3DUnitUSSurveyInch

US survey inch.

enumerator kA3DUnitUSSurveyYard

US survey yard.

enumerator kA3DUnitUSSurveyMile

US survey mile.

enumerator kA3DUnitUnknown

Unknown.

enum A3DETessellationLevelOfDetail

Structure to specify the level of detail of the tessellation.

See A3DRWParamsTessellationData parameters. When a level is given, the Chord Height Ratio (A3DRWParamsTessellationData::m_dChordHeightRatio) and Wireframe Chord Angle (A3DRWParamsTessellationData::m_dAngleToleranceDeg) change to preset values for the selected level.

Version

3.0

Values:

enumerator kA3DTessLODExtraLow

Extra Low level: when selected, these members are automatically defined with the following values:

enumerator kA3DTessLODLow

Low level: when selected, these members are automatically defined with the following values:

enumerator kA3DTessLODMedium

Medium level: when selected, these members are automatically defined with the following values:

enumerator kA3DTessLODHigh

High level: when selected, these members are automatically defined with the following values:

enumerator kA3DTessLODExtraHigh

Extra High level: when selected, these members are automatically defined with the following values:

enumerator kA3DTessLODUserDefined

User Defined level: when selected, these members should be defined:

enumerator kA3DTessLODControlledPrecision

Controlled Precision level: when selected, these members should be defined:

enum A3DProESessionColorType

Used to control the default PMI color: If you load a Wildfire file and set kA3DFileVersionSessionColor to:

  • kA3DFileVersionSessionColor, the PMI with no color will be displayed in yellow;

  • kA3DLastCreoVersionSessionColor, the PMI with no color will be displayed in blue as in Creo 2 (for HOOPS Exchange 6.0);

  • kA3DHExchangeSessionColor, the PMI with no color will be displayed with the color you chose.

    Version

    6.1

Values:

enumerator kA3DLastCreoVersionSessionColor

Sets the default session color corresponding to the last version of Creo that HOOPS Exchange supports.

enumerator kA3DHExchangeSessionColor

Uses HOOPS Exchange default color.

enumerator kA3DFileVersionSessionColor

Lets the user define the color by using graphics parameters options ( A3DRWParamsPmiData::m_sDefaultColor).

enum A3DProEReadConstructEntities

Used to control the construction entities reading, entity such as sketch, curves…

Version

8.2

Values:

enumerator A3DProEReadConstructEntities_AsDatum

Read wire according to the datum reading option

enumerator A3DProEReadConstructEntities_Yes

Read wire

enumerator A3DProEReadConstructEntities_No

Do not read wire

enum A3DProEFamilyTables

Used to select how to read family tables.

Version

9.0

Values:

enumerator A3DProEFamTabAcceleratorFileOnly

Only use accelerator file. If there’s tessellation or a generic part, these will not be loaded, even if an accelerator file isn’t available.

enumerator A3DProEFamTabOrUseTessellation

If the accelerator file isn’t present, then search for the tessellation representation: if found, then use the tessellation. If an accelerator file or tessellation isn’t available, then nothing will be loaded.

enumerator A3DProEFamTabOrUseWireAndGeneric

If neither the accelerator file nor the tessellation representation is present, then use the generic or wire representation.

Warning

If using the generic or wire representation, be aware that the representation will not be what it should be! A generic part/wire is only a placeholder.

enum A3DEStepNameFromNAUO

Used to select which name to use from NEXT_ASSEMBLY_USAGE_OCCURRENCE as occurrence name.

Version

4.2

Values:

enumerator kA3DStepNameFromNAUO_ID

First Field of NEXT_ASSEMBLY_USAGE_OCCURRENCE.

enumerator kA3DStepNameFromNAUO_NAME

Second Field of NEXT_ASSEMBLY_USAGE_OCCURRENCE.

enumerator kA3DStepNameFromNAUO_DESCRIPTION

Third Field of NEXT_ASSEMBLY_USAGE_OCCURRENCE.

enum A3DEJTReadTessellationLevelOfDetail

JT LOD to retrieve from file.

Version

8.0

Values:

enumerator kA3DJTTessLODLow

Will load the lowest level of tessellation available in the JT file.

enumerator kA3DJTTessLODMedium

Will load an in-between level of tessellation available in the JT file.

enumerator kA3DJTTessLODHigh

Will load the highest level of tessellation available in the JT file.

enum EA3DRevitPhysicalProperties

Define how physical properties are managed for Revit files.

Version

13.1.0

Values:

enumerator kA3DRevitPhysicalProperties_NotComputed

Not computed. Default value

enumerator kA3DRevitPhysicalProperties_Computed

Computed during reading process, stored as attributes

They are set in A3DRWParamsRevitData::m_uiLinkFlags.

Version

22.0.0

Values:

Load all file links. Default value

Do not load file links.

Do not load revit file links.

Do not load dwg file links.

Do not load ifc file links.

enum EA3DRevitMultiThreadedMode

Version

23.0.0

Values:

enumerator kA3DRevitMultiThreadedMode_Disabled

Multi-threaded file loading and regeneration are disabled.

enumerator kA3DRevitMultiThreadedMode_LoadingEnabled

Multi-threaded file loading is enabled.

enumerator kA3DRevitMultiThreadedMode_RegenerationEnabled

Multi-threaded regeneration is enabled.

enumerator kA3DRevitMultiThreadedMode_LoadingAndRegenerationEnabled

Multi-threaded file loading and regeneration are enabled.

Function Documentation

A3DStatus A3DAsmModelFileLoadFromFile(const A3DUTF8Char *pcFileName, const A3DRWParamsLoadData *pLoadParametersData, A3DAsmModelFile **ppModelFile)

Loads an A3DAsmModelFile from a physical file, returning a handle to the new model file.

Successfully calling this function will always create a new model file, even if the call is made several times with the same input path. Once loaded, a handle to the new model file is stored in ppModelFile and you can query its content with A3DAsmModelFileGet.

A3DRWParamsLoadData parameters;
A3D_INITIALIZE_DATA(A3DRWParamsLoadData, parameters);
A3DAsmModelFile* model_file = 0;

A3DStatus result = A3DAsmModelFileLoadFromFile("/path/to/file.stl", &parameters, &model_file);

assert(result == A3D_SUCCESS);
assert(model_file != 0);

See also

A3DAsmModelFileLoadFromFile A3DAsmModelFileLoadFromMultiplePrcFile A3DAsmModelFileLoadFromPRCFiles A3DAsmModelFileLoadFromXMLFile A3DAsmModelFileLoadFromXMLStream A3DPkPartsTranslateToA3DAsmModelFile A3DRWParamsGeneralData A3DRWParamsLoadData A3DRWParamsMultiEntriesData

Version

3.0

Parameters
  • pcFileName[in] The system path to the input file. Must be a valid UTF-8 string.

  • pLoadParametersData[in] A set of options used to customize the behaviour of the loading.

  • ppModelFile[out] A pointer to the handle of the new model file, in case of success.

Return values
  • A3D_SUCCESS – in case of success.

  • A3D_INITIALIZE_NOT_CALLED – if pLoadParametersData is not initialized.

  • A3D_INVALID_DATA_STRUCT_NULL – if pLoadParametersData is null.

  • A3D_INVALID_DATA_STRUCT_SIZE – if pLoadParametersData is not initialized by an incompatible version of the API.

  • A3D_INVALID_ENTITY_NULL – if ppModelFile is null.

  • A3D_LOAD_CANNOT_ACCESS_CADFILE – if the input path cannot be opened by the running process for reading.

  • A3D_LOAD_CANNOT_LOAD_MODEL – if an error occured while reading the file.

  • A3D_LOAD_CANNOT_LOAD_MULTIENTRY

  • A3D_LOAD_EMPTY_MULTI_MODEL

  • A3D_LOAD_FILE_PASSWORD_PROTECTED – if the reader can’t process because the file is protected by a password.

  • A3D_LOAD_FILE_TOO_OLD – if the reader support this format but the version is older than the minimum supported.

  • A3D_LOAD_FILE_TOO_RECENT – if the reader support this format but the version is more recent than the maximum supported.

  • A3D_LOAD_INVALID_FILE_FORMAT – if the format is not supported

  • A3D_LOAD_MISSING_COMPONENTS – if the load partially completed

  • A3D_LOAD_MULTI_MODELS_CADFILE – if the file contains multiple entries (see A3DRWParamsMultiEntriesData).

  • A3D_LOAD_READER_NOT_IMPLEMENTED – if the reader for the requested format is not avaiable yet

Returns

A3D_SUCCESS or an error code in case of failure.

A3DStatus A3DAsmModelFileLoadFromPrcStream(const A3DUTF8Char *pcBufferStream, unsigned int uBufferLength, A3DRWParamsPrcReadHelper **ppPrcReadHelper, A3DAsmModelFile **ppModelFile)

Loads an A3DAsmModelFile from a PRC Buffer.

This function loads an A3DAsmModelFile from a PRC Buffer.

Version

5.2

Parameters
  • pcBufferStream[in] Buffer containing the PRC stream.

  • uBufferLength[in] Length of pcBufferStream.

  • ppPrcReadHelper[inout] Reserved for future use.

  • ppModelFile[out] References a pointer into which the location should be stored. of the model file. Set this pointer to null before calling the function.

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_ENTITY_NULL

  • A3D_LOAD_CANNOT_ACCESS_CADFILE

  • A3D_LOAD_CANNOT_LOAD_MODEL

  • A3D_LOAD_CANNOT_LOAD_MULTIENTRY

  • A3D_LOAD_EMPTY_MULTI_MODEL

  • A3D_LOAD_FILE_TOO_OLD

  • A3D_LOAD_FILE_TOO_RECENT

  • A3D_LOAD_INVALID_FILE_FORMAT

  • A3D_LOAD_MISSING_COMPONENTS

  • A3D_LOAD_MULTI_MODELS_CADFILE – if the file contains multiple entries (see A3DRWParamsMultiEntriesData).

  • A3D_LOAD_READER_NOT_IMPLEMENTED

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DVoid A3DRWParamsPrcReadHelperFree(A3DRWParamsPrcReadHelper *pA3DRWParamsPrcReadHelper)

Free PRC read helper.

Remark

Because this function does not return A3DStatus the internal thread safety policy is to wait for the availability of the API.

Version

8.1

Parameters

pA3DRWParamsPrcReadHelper[inout] The helper to free.

A3DStatus A3DAsmModelFileLoadFromPrcFile(const A3DUTF8Char *pcFileName, A3DRWParamsPrcReadHelper **ppPrcReadHelper, A3DAsmModelFile **ppModelFile)

Loads an A3DAsmModelFile from a PRC physical file.

This function loads an A3DAsmModelFile from a PRC file. The file must be in PRC format.

Version

4.0

Parameters
  • pcFileName[in] References the path to the file containing the 3D CAD model.

  • ppPrcReadHelper[inout] Reserved for future use.

  • ppModelFile[out] References a pointer into which should be stored the location of the model file. Set this pointer to null before calling the function.

Return values
  • A3D_INITIALIZE_NOT_CALLED

  • A3D_INVALID_DATA_STRUCT_NULL

  • A3D_INVALID_DATA_STRUCT_SIZE

  • A3D_INVALID_ENTITY_NULL

  • A3D_LOAD_CANNOT_ACCESS_CADFILE

  • A3D_LOAD_CANNOT_LOAD_MODEL

  • A3D_LOAD_CANNOT_LOAD_MULTIENTRY

  • A3D_LOAD_EMPTY_MULTI_MODEL

  • A3D_LOAD_FILE_TOO_OLD

  • A3D_LOAD_FILE_TOO_RECENT

  • A3D_LOAD_INVALID_FILE_FORMAT

  • A3D_LOAD_MISSING_COMPONENTS

  • A3D_LOAD_MULTI_MODELS_CADFILE – if the file contains multiple entries (see A3DRWParamsMultiEntriesData).

  • A3D_LOAD_READER_NOT_IMPLEMENTED

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DGet3DPDFStreams(const A3DUTF8Char *pcFileName, A3DStream3DPDFData **ppStreamData, A3DInt32 *piNumStreams)

Function to retrieve all 3D streams embedded in a PDF document.

The stream is the raw binary data stored as a char* stream. A PRC stream can be interpreted with the function A3DAsmModelFileLoadFromPrcStream. A U3D stream needs to be written as a physical file before being read with classical A3DAsmModelFileLoadFromFile function.

If pcFileName is NULL, *ppStreamData will be freed if *piNumStreams is non-null. A3DGet3DPDFStreams(NULL, ppStreamData, piNumStreams) to release *ppStreamData.

Remark

Note that this method does not set the identifier of the A3DStream3DPDFData. It will be defaulted to kA3DPDFUnknownStreamIdentifier.

Version

6.0

Parameters
  • pcFileName[in] References the path to the PDF file

  • ppStreamData[out] Array of stream data

  • piNumStreams[out] Number of streams

Return values
  • A3D_LOAD_INVALID_FILE_NAME

  • A3D_SUCCESS

Returns

A3D_SUCCESS in case of success or an error code

A3DStatus A3DPDFGetStreams(const A3DUTF8Char *pcFileName, A3DUns32 iFlags, A3DStream3DPDFData **ppStreamData, A3DInt32 *piNumStreams)

Function to retrieve all 3D streams embedded in a PDF document, this function export native and PDF views (defined using Acrobat and not in the origin native CAD file). It also manages secured PDF.

The stream is the raw binary data stored as a char* stream. A PRC stream can be interpreted with the function A3DAsmModelFileLoadFromPrcStream. A U3D stream needs to be written as a physical file before being read with classical A3DAsmModelFileLoadFromFile function.

If pcFileName is NULL, *ppStreamData will be freed if *piNumStreams is non-null. A3DPDFGetStreams(NULL, NULL, ppStreamData, piNumStreams) to release *ppStreamData.

Version

12.0

Parameters
Return values
  • A3D_SUCCESS

  • A3D_LOAD_CANNOT_ACCESS_CADFILE

Returns

A3D_SUCCESS in case of success or an error code