Model File

Fields

kA3DModellerUnknown
kA3DModellerCatia
kA3DModellerCatiaV5
kA3DModellerCadds
kA3DModellerUnigraphics
kA3DModellerParasolid
kA3DModellerEuclid
kA3DModellerIges
kA3DModellerUnisurf
kA3DModellerVda
kA3DModellerStl
kA3DModellerWrl
kA3DModellerDxf
kA3DModellerAcis
kA3DModellerProE
kA3DModellerStep
kA3DModellerIdeas
kA3DModellerJt
kA3DModellerSlw
kA3DModellerCgr
kA3DModellerPrc
kA3DModellerXvl
kA3DModellerHpgl
kA3DModellerTopSolid
kA3DModellerOneSpaceDesigner
kA3DModeller3dxml
kA3DModellerInventor
kA3DModellerPostScript
kA3DModellerPDF
kA3DModellerU3D
kA3DModellerIFC
kA3DModellerDWG
kA3DModellerDWF
kA3DModellerSE
kA3DModellerOBJ
kA3DModellerKMZ
kA3DModellerDAE
kA3DModeller3DS
kA3DModellerRhino
kA3DModellerXML
kA3DModeller3mf
kA3DModellerScs
kA3DModeller3dHtml
kA3DModellerHsf
kA3DModellerGltf
kA3DModellerRevit
kA3DModellerFBX
kA3DModellerStepXML
kA3DModellerPLMXML
kA3DModellerNavisworks
kA3DModellerDGN
kA3DModellerQIF
kA3DModellerLast

Detailed Description

group a3d_modelfile

Reads and writes a physical file containing a PRC model file; and creates and accesses model file entities.

The A3DAsmModelFile is the root entity of the PRC data. It is the starting point for parsing a PRC file. It is also one of the arguments used to create a 3D annotation within a PDF document.

Entity type is kA3DTypeAsmModelFile.

Type Documentation

enum A3DEModellerType

A3DSDKStructure.

Modeller type

Version
2.1

Values:

enumerator kA3DModellerUnknown

User modeller.

enumerator kA3DModellerCatia

CATIA modeller.

enumerator kA3DModellerCatiaV5

CATIA V5 modeller.

enumerator kA3DModellerCadds

CADDS modeller.

enumerator kA3DModellerUnigraphics

Unigraphics modeller.

enumerator kA3DModellerParasolid

Parasolid modeller.

enumerator kA3DModellerEuclid

Euclid modeller.

enumerator kA3DModellerIges

IGES modeller.

enumerator kA3DModellerUnisurf

Unisurf modeller.

enumerator kA3DModellerVda

VDA modeller.

enumerator kA3DModellerStl

STL modeller.

enumerator kA3DModellerWrl

WRL modeller.

enumerator kA3DModellerDxf

DXF modeller.

enumerator kA3DModellerAcis

ACIS modeller.

enumerator kA3DModellerProE

Pro/E modeller.

enumerator kA3DModellerStep

STEP modeller.

enumerator kA3DModellerIdeas

I-DEAS modeller.

enumerator kA3DModellerJt

JT modeller.

enumerator kA3DModellerSlw

SolidWorks modeller.

enumerator kA3DModellerCgr

CGR modeller.

enumerator kA3DModellerPrc

PRC modeller.

enumerator kA3DModellerXvl

XVL modeller.

enumerator kA3DModellerHpgl

HPGL modeller.

enumerator kA3DModellerTopSolid

TopSolid modeller.

enumerator kA3DModellerOneSpaceDesigner

OneSpace designer modeller.

enumerator kA3DModeller3dxml

3DXML modeller.

enumerator kA3DModellerInventor

Inventor modeller.

enumerator kA3DModellerPostScript

Postscript modeller.

enumerator kA3DModellerPDF

PDF modeller.

enumerator kA3DModellerU3D

U3D modeller.

enumerator kA3DModellerIFC

IFC modeller.

enumerator kA3DModellerDWG

DWG modeller.

enumerator kA3DModellerDWF

DWF modeller.

enumerator kA3DModellerSE

SolidEdge modeller.

enumerator kA3DModellerOBJ

OBJ modeller.

enumerator kA3DModellerKMZ

KMZ modeller.

enumerator kA3DModellerDAE

COLLADA modeller.

enumerator kA3DModeller3DS

3DS modeller.

enumerator kA3DModellerRhino

Rhino modeller.

enumerator kA3DModellerXML

XML modeller.

enumerator kA3DModeller3mf

3MF modeller.

enumerator kA3DModellerScs

SCS modeller.

enumerator kA3DModeller3dHtml

3DHTML modeller.

enumerator kA3DModellerHsf

Hsf modeller.

enumerator kA3DModellerGltf

GL modeller.

enumerator kA3DModellerRevit

Revit modeller.

enumerator kA3DModellerFBX

FBX modeller.

enumerator kA3DModellerStepXML

StepXML modeller.

enumerator kA3DModellerPLMXML

PLMXML modeller.

enumerator kA3DModellerNavisworks

Navisworks modeller.

enumerator kA3DModellerDGN

DGN modeller.

enumerator kA3DModellerQIF

QIF modeller.

enumerator kA3DModellerLast

Function Documentation

A3DStatus A3DAsmModelFileCreate(const A3DAsmModelFileData *pData, A3DAsmModelFile **ppModelFile)

Creates a new A3DAsmModelFile using the data in the given A3DAsmModelFileData structure.

By creating a model file, you are responsible of deleting it later with A3DAsmModelFileDelete.

The new model file must have a root product occurrence. If the input data doesn’t contain any, A3DAsmModelFileCreate will implicitly create one. This new product occurrence can be retrieved back on calling A3DAsmModelFileGet with ppModelFile.

Version
2.0

Parameters:
  • pData[in] The data used to create the model file.
  • ppModelFile[out] a handle to the newly created model file.
Return values:
  • A3D_INVALID_DATA_STRUCT_SIZE
  • A3D_INVALID_DATA_STRUCT_NULL
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmModelFileDelete(A3DAsmModelFile *pModelFile)

Deletes the entire A3DAsmModelFile entity from memory.

This function frees all the all memory allocated for pModelFile. It recursively deletes all entities inside the model file, thus deleting the whole PRC tree. After the call, access to the model file is no longer possible, and pModelFile is invalid.

See A3DEntityDelete for a more generic approach.

Remark

This function is only applicable to a model file.

Version
2.0

Warning

This function must not be applied within an HOOPS Visualize context. See Evaluating HOOPS Publish.

Return values:
  • A3D_INVALID_ENTITY_NULL
  • A3D_INVALID_ENTITY_TYPE
  • A3D_SUCCESS
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DStatus A3DAsmModelFileUnloadParts(A3DAsmModelFile *pModelFile, A3DUns32 uiPartsSize, A3DAsmProductOccurrence **ppParts)

Removes all tessellation and geometry of an A3DAsmProductOccurrence entity This can only be done on parts.

Version
9.1

Parameters:
  • pModelFile – The model file
  • uiPartsSize – Size of input array.
  • ppParts – Array of parts to unload.
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 A3DAsmModelFileGetUnit(const A3DAsmModelFile *pModelFile, A3DDouble *pdUnit)

Retrieves the unit a model file should be displayed with.

Version
12.0

Behavior

When A3DAsmModelFileGetUnit finds a suitable unit in the provided model file, pdUnit is filled with a floating-point decimal representation of this unit, as stated in /guide/units. pdUnit can then be converted into A3DEUnits using A3DUnitGetFromEnum.

The unit of an entire model file depends on the value of the m_bUnitFromCAD field, either in A3DAsmModelFileData or A3DAsmProductOccurenceData.

A3DAsmModelFileGetUnit recursively traverses the model file given by pModelFile and stops on the first entity (model file or product occurrence) where m_bUnitFromCAD is A3D_TRUE. The m_dUnit field of this entity is then written in pdUnit.

  • If pdUnit is 0, the function returns A3D_INVALID_DATA_NULL
  • If pModelFile is 0, the function returns A3D_SUCCESS and *pdUnit is set to 0.0.

The traversal may complete without finding any unit. In this case, the function returns A3D_ERROR.

Memory Management

The caller is reponsible from the memory pointed to by pdUnit.

Parameters:
  • pModelFile – A handle to a model file entity
  • pdUnit – A location to an A3DDouble
Return values:
  • A3D_SUCCESS – if pModelFile is zero or if a unit is found.
  • A3D_INITIALIZE_NOT_CALLED – if the library is not initialized.
  • A3D_INVALID_DATA_NULL – if pdUnit is zero while pModelFile is nonzero.
  • A3D_ERROR – if no unit is found.
Returns:

A3D_SUCCESS on success, or an error code on failure

A3DEUnits A3DUnitGetFromValue(A3DDouble dUnit)

Converts a units representation from A3DDouble to A3DEUnits.

HOOPS Exchange stores most of its unit information as factors of millimeters, as described in A3DEUnits. This function allows you to retrieve the correct unit enumeration given an input value. For example, a value of 10. returns kA3DUnitCentimeter.

Version
14.1

Behavior

To properly retrieve the correct A3DEUnits for a given A3DDouble input, HOOPS Exchange compares it with the expected float value of each unit (as returned by A3DUnitGetFromEnum) given a unit-specific threshold as presented by this table:

Enumerator Value (millimeters) Threshold
kA3DUnitAngstrom 1.e-7 1.e-9
kA3DUnitAstronomical 1.495978707e14 1.e2
kA3DUnitCentimeter 10.0 0.01
kA3DUnitDecimeter 1.e2 0.01
kA3DUnitDekameter 1.e4 0.01
kA3DUnitFoot 12.0 * 25.4 0.01
kA3DUnitGigameter 1.e12 1.
kA3DUnitHectometer 1.e5 0.01
kA3DUnitInch 25.4 0.01
kA3DUnitKilometer 1000000.0 0.01
kA3DUnitLightYear 9.4607304725808e18 1.e6
kA3DUnitMeter 1000.0 0.01
kA3DUnitMicroInch 2.54e-5 1.e-7
kA3DUnitMicron 1.e-3 1.e-4
kA3DUnitMil 0.0254 1.e-4
kA3DUnitMile 1760.0 * 3.0 * 12.0 * 25.4 0.01
kA3DUnitMillimeter 1.0 0.01
kA3DUnitNanometer 1.e-6 1.e-8
kA3DUnitParsec 64800.0 / PI * 1.495978707e14 1.e7
kA3DUnitPicas 25.4 / 6.0 0.01
kA3DUnitPoint 25.4 / 72.0 0.01
kA3DUnitUSSurveyFoot 1200000.0 / 3937.0 1.e-4
kA3DUnitUSSurveyInch 100000.0 / 3937.0 1.e-5
kA3DUnitUSSurveyMile 1760.0 * 3600000.0 / 3937.0 3937.,0.01
kA3DUnitUSSurveyYard 3.0 * 1200000.0 / 3937.0 1.e-4
kA3DUnitYard 3.0 * 12.0 * 25.4 0.01

If the provided value does not fall under any of these value ranges, the function returns kA3DUnitUnknown.

See also

/guide/units, A3DEUnit, A3DUnitGetFromEnum, A3DAsmModelFileGetUnit

Parameters:dUnit – A unit value (in millimeter)
Returns:An A3DEUnits value
A3DDouble A3DUnitGetFromEnum(A3DEUnits eUnit)

Converts a units representation from A3DEUnits to its A3DDouble representation.

The returned value expresses the input unit in factor of millimeters, as stated in the documentation of A3DEUnits.

If eUnit is kA3DUnitUnknown or any value outside of A3DEUnits enumerator, the function defaults to returning 1.0 (millimeters).

See also

/guide/units, A3DEUnit, A3DUnitGetFromValue, A3DAsmModelFileGetUnit

Version
14.1

Parameters:eUnit – A unit enum
Returns:A unit enumeration value.