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

Data Structures

struct  A3DRWParamsAssemblyData
 Structure to define parameters to manage CAD assemblies reading. More...
 
struct  A3DRWParamsCatiaV4Data
 Reading parameters specific to CATIA V4 CAD files. More...
 
struct  A3DRWParamsCatiaV5Data
 Reading parameters specific to CATIA V5 CAD files. More...
 
struct  A3DRWParamsGeneralData
 Reading options to filter the types of information that are read when CAD files are loaded. More...
 
struct  A3DRWParamsIFCData
 Reading parameters specific to IFC files. More...
 
struct  A3DRWParamsIGESData
 Reading parameters specific to IGES files. More...
 
struct  A3DRWParamsIncrementalLoadData
 Structure to specify reading parameters to load some specific parts of an assembly. More...
 
struct  A3DRWParamsInventorData
 A structure that specifies parameters used to read the model file to Inventor format. More...
 
struct  A3DRWParamsJTData
 A structure that specifies parameters used to read the model file to JT format. More...
 
struct  A3DRWParamsLoadData
 A set of options for loading a new model file with A3DAsmModelFileLoadFromFile. More...
 
struct  A3DRWParamsMultiEntriesData
 Structure to define which configurations or sub-models should be loaded when the CAD file has multiple entries. More...
 
struct  A3DRWParamsParasolidData
 A structure that specifies parameters used to read the model file to Parasolid format. More...
 
struct  A3DRWParamsPmiData
 Structure to specify the PMI reading parameters. More...
 
struct  A3DRWParamsProEData
 Reading parameters specific to Pro/ENGINEER CAD files. More...
 
struct  A3DRWParamsRevitData
 A structure that specifies parameters used to read the model file to Revit format. More...
 
struct  A3DRWParamsRhinoData
 A structure that specifies parameters used to read the model file to Rhino format. More...
 
struct  A3DRWParamsSearchDirData
 Structure to define additional directories that the load function will search in addition to the root directory. More...
 
struct  A3DRWParamsSolidworksData
 A structure that specifies parameters used to read the model file to Solidworks format. More...
 
struct  A3DRWParamsSpecificLoadData
 Structure to specify reading parameters specific to some CAD formats. More...
 
struct  A3DRWParamsStepData
 Reading parameters specific to STEP files. More...
 
struct  A3DRWParamsTessellationData
 Structure to set the tessellation parameters. More...
 
struct  A3DRWParamsUnigraphicsData
 Reading parameters specific to Unigraphics CAD files. More...
 
struct  A3DRWValidationPropertiesThresholdData
 Threshold values used for checking validation properties in Step. More...
 
struct  A3DStream3DPDFData
 Binary stream for a 3D model stored in a PDF file. The data format is PRC or U3D. More...
 

Enumerations

enum  A3DEJTReadTessellationLevelOfDetail {
  kA3DJTTessLODLow = 0,
  kA3DJTTessLODMedium,
  kA3DJTTessLODHigh
}
 JT LOD to retrieve from file. More...
 
enum  A3DEReadGeomTessMode {
  kA3DReadGeomOnly = 0,
  kA3DReadGeomAndTess,
  kA3DReadTessOnly
}
 A3DSDKReadWrite. More...
 
enum  A3DEStepNameFromNAUO {
  kA3DStepNameFromNAUO_ID = 0,
  kA3DStepNameFromNAUO_NAME,
  kA3DStepNameFromNAUO_DESCRIPTION
}
 Used to select which name to use from NEXT_ASSEMBLY_USAGE_OCCURRENCE as occurrence name. More...
 
enum  A3DETessellationLevelOfDetail {
  kA3DTessLODExtraLow,
  kA3DTessLODLow,
  kA3DTessLODMedium,
  kA3DTessLODHigh,
  kA3DTessLODExtraHigh,
  kA3DTessLODUserDefined,
  kA3DTessLODControlledPrecision
}
 Structure to specify the level of detail of the tessellation. More...
 
enum  A3DEUnits {
  kA3DUnitPoint = 0,
  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
}
 Unit used in the model file. More...
 
enum  A3DProEFamilyTables {
  A3DProEFamTabAcceleratorFileOnly = 0,
  A3DProEFamTabOrUseTessellation = 1,
  A3DProEFamTabOrUseWireAndGeneric = 2
}
 Used to select how to read family tables. More...
 
enum  A3DProEReadConstructEntities {
  A3DProEReadConstructEntities_AsDatum = 0,
  A3DProEReadConstructEntities_Yes,
  A3DProEReadConstructEntities_No
}
 Used to control the construction entities reading, entity such as sketch, curves... More...
 
enum  A3DProESessionColorType {
  kA3DLastCreoVersionSessionColor = 0,
  kA3DHExchangeSessionColor,
  kA3DFileVersionSessionColor
}
 Used to control the default PMI color: If you load a Wildfire file and set kA3DFileVersionSessionColor to: More...
 
enum  EA3DRevitLinks {
  kA3DRevitLinks_LoadAll = 0,
  kA3DRevitLinks_IgnoreAll = 1,
  kA3DRevitLinks_IgnoreRevit = 2,
  kA3DRevitLinks_IgnoreDwg = 4,
  kA3DRevitLinks_IgnoreIFC = 8
}
 
enum  EA3DRevitPhysicalProperties {
  kA3DRevitPhysicalProperties_NotComputed = 0,
  kA3DRevitPhysicalProperties_Computed
}
 Define how physical properties are managed for Revit files. More...
 

Functions

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. More...
 
A3DStatus A3DAsmModelFileLoadFromPrcFile (const A3DUTF8Char *pcFileName, A3DRWParamsPrcReadHelper **ppPrcReadHelper, A3DAsmModelFile **ppModelFile)
 Loads an A3DAsmModelFile from a PRC physical file. More...
 
A3DStatus A3DAsmModelFileLoadFromPrcStream (const A3DUTF8Char *pcBufferStream, unsigned int uBufferLength, A3DRWParamsPrcReadHelper **ppPrcReadHelper, A3DAsmModelFile **ppModelFile)
 Loads an A3DAsmModelFile from a PRC Buffer. More...
 
A3DStatus A3DGet3DPDFStreams (const A3DUTF8Char *pcFileName, A3DStream3DPDFData **ppStreamData, A3DInt32 *piNumStreams)
 Function to retrieve all 3D streams embedded in a PDF document. More...
 
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. More...
 
A3DVoid A3DRWParamsPrcReadHelperFree (A3DRWParamsPrcReadHelper *pA3DRWParamsPrcReadHelper)
 Free PRC read helper. More...
 

Detailed Description

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

Enumeration Type Documentation

◆ A3DEReadGeomTessMode

A3DSDKReadWrite.

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

Version
3.0
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.

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.

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.

◆ A3DEUnits

enum A3DEUnits

Unit used in the model file.

Version
3.0
Enumerator
kA3DUnitPoint 

Point.

kA3DUnitInch 

Inch.

kA3DUnitMillimeter 

Millimeter.

kA3DUnitCentimeter 

Centimeter.

kA3DUnitPicas 

Picas.

kA3DUnitFoot 

Foot.

kA3DUnitYard 

Yard.

kA3DUnitMeter 

Meter.

kA3DUnitKilometer 

Kilometer.

kA3DUnitMile 

Mile.

kA3DUnitMicroInch 

Micro Inch.

kA3DUnitMil 

Mil.

kA3DUnitAngstrom 

Angstrom.

kA3DUnitNanometer 

Nanometer.

kA3DUnitMicron 

Micron.

kA3DUnitDecimeter 

Decimeter.

kA3DUnitDekameter 

Dekameter.

kA3DUnitHectometer 

Hectometer.

kA3DUnitGigameter 

Gigameter.

kA3DUnitAstronomical 

Astronomical.

kA3DUnitLightYear 

Light year.

kA3DUnitParsec 

Parsec.

kA3DUnitUSSurveyFoot 

US Survey foot.

kA3DUnitUSSurveyInch 

US survey inch.

kA3DUnitUSSurveyYard 

US survey yard.

kA3DUnitUSSurveyMile 

US survey mile.

kA3DUnitUnknown 

Unknown.

◆ 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
Enumerator
kA3DTessLODExtraLow 

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

kA3DTessLODLow 

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

kA3DTessLODMedium 

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

kA3DTessLODHigh 

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

kA3DTessLODExtraHigh 

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

kA3DTessLODUserDefined 

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

kA3DTessLODControlledPrecision 

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

◆ 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
Enumerator
kA3DLastCreoVersionSessionColor 

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

kA3DHExchangeSessionColor 

Uses HOOPS Exchange default color.

kA3DFileVersionSessionColor 

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

◆ A3DProEReadConstructEntities

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

Version
8.2
Enumerator
A3DProEReadConstructEntities_AsDatum 

Read wire according to the datum reading option

A3DProEReadConstructEntities_Yes 

Read wire

A3DProEReadConstructEntities_No 

Do not read wire

◆ A3DProEFamilyTables

Used to select how to read family tables.

Version
9.0
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.

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.

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.

◆ A3DEStepNameFromNAUO

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

Version
4.2
Enumerator
kA3DStepNameFromNAUO_ID 

First Field of NEXT_ASSEMBLY_USAGE_OCCURRENCE.

kA3DStepNameFromNAUO_NAME 

Second Field of NEXT_ASSEMBLY_USAGE_OCCURRENCE.

kA3DStepNameFromNAUO_DESCRIPTION 

Third Field of NEXT_ASSEMBLY_USAGE_OCCURRENCE.

◆ A3DEJTReadTessellationLevelOfDetail

JT LOD to retrieve from file.

Version
8.0
Enumerator
kA3DJTTessLODLow 

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

kA3DJTTessLODMedium 

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

kA3DJTTessLODHigh 

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

◆ EA3DRevitPhysicalProperties

Define how physical properties are managed for Revit files.

Version
13.1.0
Enumerator
kA3DRevitPhysicalProperties_NotComputed 

Not computed. Default value

kA3DRevitPhysicalProperties_Computed 

Computed during reading process, stored as attributes

◆ EA3DRevitLinks

They are set in A3DRWParamsRevitData::m_uiLinkFlags.

Version
22.0.0
Enumerator
kA3DRevitLinks_LoadAll 

Load all file links. Default value

kA3DRevitLinks_IgnoreAll 

Do not load file links.

kA3DRevitLinks_IgnoreRevit 

Do not load revit file links.

kA3DRevitLinks_IgnoreDwg 

Do not load dwg file links.

kA3DRevitLinks_IgnoreIFC 

Do not load ifc file links.

Function Documentation

◆ A3DAsmModelFileLoadFromFile()

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.

A3DAsmModelFile* model_file = 0;
A3DStatus result = A3DAsmModelFileLoadFromFile("/path/to/file.stl", &parameters, &model_file);
assert(result == A3D_SUCCESS);
assert(model_file != 0);
Parameters
[in]pcFileNameThe system path to the input file. Must be a valid UTF-8 string.
[in]pLoadParametersDataA set of options used to customize the behaviour of the loading.
[out]ppModelFileA pointer to the handle of the new model file, in case of success.
Returns
A3D_SUCCESS or an error code in case of failure.
Return values
A3D_SUCCESSin case of success.
A3D_INITIALIZE_NOT_CALLEDif pLoadParametersData is not initialized.
A3D_INVALID_DATA_STRUCT_NULLif pLoadParametersData is null.
A3D_INVALID_DATA_STRUCT_SIZEif pLoadParametersData is not initialized by an incompatible version of the API.
A3D_INVALID_ENTITY_NULLif ppModelFile is null.
A3D_LOAD_CANNOT_ACCESS_CADFILEif the input path cannot be opened by the running process for reading.
A3D_LOAD_CANNOT_LOAD_MODELif an error occured while reading the file.
A3D_LOAD_CANNOT_LOAD_MULTIENTRY[I don't know about this one]
A3D_LOAD_EMPTY_MULTI_MODEL[I don't know about this one]
A3D_LOAD_FILE_TOO_OLDif the reader support this format but the version is older than the minimum supported.
A3D_LOAD_FILE_TOO_RECENTif the reader support this format but the version is more recent than the maximum supported.
A3D_LOAD_INVALID_FILE_FORMATif the format is not supported
A3D_LOAD_MISSING_COMPONENTSif the load partially completed
A3D_LOAD_MULTI_MODELS_CADFILEif the file contains multiple entries (see A3DRWParamsMultiEntriesData).
A3D_LOAD_READER_NOT_IMPLEMENTEDif the reader for the requested format is not avaiable yet
Version
3.0
See also
A3DAsmModelFileLoadFromFile A3DAsmModelFileLoadFromMultiplePrcFile A3DAsmModelFileLoadFromPRCFiles A3DAsmModelFileLoadFromXMLFile A3DAsmModelFileLoadFromXMLStream A3DPkPartsTranslateToA3DAsmModelFile A3DRWParamsGeneralData A3DRWParamsLoadData A3DRWParamsMultiEntriesData

◆ A3DAsmModelFileLoadFromPrcStream()

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.

Parameters
[in]pcBufferStreamBuffer containing the PRC stream.
[in]uBufferLengthLength of pcBufferStream.
[in,out]ppPrcReadHelperReserved for future use.
[out]ppModelFileReferences a pointer into which the location should be stored. of the model file. Set this pointer to null before calling the function.
Returns
A3D_SUCCESS in case of success or an error code
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_CADFILEif the file contains multiple entries (see A3DRWParamsMultiEntriesData).
A3D_LOAD_READER_NOT_IMPLEMENTED
A3D_SUCCESS
Version
5.2

◆ A3DRWParamsPrcReadHelperFree()

A3DVoid A3DRWParamsPrcReadHelperFree ( A3DRWParamsPrcReadHelper pA3DRWParamsPrcReadHelper)

Free PRC read helper.

Parameters
[in,out]pA3DRWParamsPrcReadHelperThe helper to free.
Remarks
Because this function does not return A3DStatus the internal thread safety policy is to wait for the availability of the API.
Version
8.1

◆ A3DAsmModelFileLoadFromPrcFile()

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.

Parameters
[in]pcFileNameReferences the path to the file containing the 3D CAD model.
[in,out]ppPrcReadHelperReserved for future use.
[out]ppModelFileReferences a pointer into which should be stored the location of the model file. Set this pointer to null before calling the function.
Returns
A3D_SUCCESS in case of success or an error code
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_CADFILEif the file contains multiple entries (see A3DRWParamsMultiEntriesData).
A3D_LOAD_READER_NOT_IMPLEMENTED
A3D_SUCCESS
Version
4.0

◆ A3DGet3DPDFStreams()

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.

Parameters
[in]pcFileNameReferences the path to the PDF file
[out]ppStreamDataArray of stream data
[out]piNumStreamsNumber of streams

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

Remarks
Note that this method does not set the identifier of the A3DStream3DPDFData. It will be defaulted to kA3DPDFUnknownStreamIdentifier.
Returns
A3D_SUCCESS in case of success or an error code
Return values
A3D_LOAD_CANNOT_ACCESS_CADFILE
A3D_SUCCESS
Version
6.0

◆ A3DPDFGetStreams()

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.

Parameters
[in]pcFileNameReferences the path to the PDF file
[in]iFlagsview flags Field to indicate the options for filtering 3D views.
[out]ppStreamDataArray of stream data
[out]piNumStreamsNumber of streams

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

Returns
A3D_SUCCESS in case of success or an error code
Return values
A3D_SUCCESS
A3D_LOAD_CANNOT_ACCESS_CADFILE
Version
12.0