Release Notes

Fixed Bugs List  ||  Deprecated List

License Key

HOOPS Exchange only requires a new license key if you are currently using a key which was generated for a prior major version. For example, developers upgrading from 2018 to 2018 SP1 may use the same key, but those upgrading from 2018 to 2019 need to generate a new key. Please visit the HOOPS Exchange download page if you need to generate a new key. The key is delivered in the file include/hoops_license.h. Once you have generated a new key, you should copy the file to <EXCHANGE_INSTALL_DIR>/include/.

The expiration date for the generated license key is tied to your contract with Tech Soft 3D. If you have signed a license agreement for HOOPS Exchange, then the license key that is generated will be a perpetual (non-expiring) license key. If you are evaluating HOOPS Exchange, then the license key will expire when your evaluation expires. Evaluation license keys will expire at the end of the evaluation period and are not suitable for production software. Any software that uses an evaluation license key will no longer work after the evaluation period.

HOOPS Exchange releases are not binary compatible with older releases. You must recompile your application when updating to a new version of HOOPS Exchange. Please see the Distributing Your Application section for an up-to-date list of binaries required for distribution.

HOOPS Exchange 2021 SP1

Two package issues have been identified for this release:

MacOS package contains instabilities that forced us to remove it from download. A new package will be delivered with HOOPS Exchange 2021 SP1 U1.

The binaries for Android have been permutated between the ARMv7A and ARMv8A-64 folders. You may still use HOOPS Exchange for Android by making the change manually within your distribution. The binaries locations will be fixed with HOOPS Exchange 2021 SP1 U1.

HOOPS Exchange 2021 SP1 U1 is targeted for May the 11th.

Format Updates

Format Updated Version
Rhino 7
JT 10.5

JT 10.5 files containing B-Rep have known issues on colors. This issue will be fixed in the nextcoming U1 update of HOOPS Exchange.

GLTF Export

The glTF “Graphics Language - Transmission Format” is an open standard developed and maintained by the Khronos Group. This format is used to share 3D assets with Augmented Reality applications or game engines and to be viewed in web contexts as well as in desktop applications including Microsoft Paint3D, 3D Viewer, Office. Glb is the binary version of glTF.

With HOOPS Exchange 2018 SP2, we added GLTF in the list of supported read formats. With this version, writing to GLTF/GLB is supported as well.

See also

Catia V5: Support for Mates

Accessing to the mates (assembly constraints between components) from the native CAD files helps optimizing workflows for applications in Manufacturing simulation, Robotic, Kinematics Analysis and more by enabling them to generate a kinematics model of the assembly.

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2021 U2

Format Updates

Format Updated Version
NX - Unigraphics 1953
Parasolid 33

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2021 U1

Format Updates

Format Updated Version
Revit 2021
Solid Edge 2021

Note: Revit is available for Window and Linux 64-bits architectures

New version for Open Design Alliance

Within the context of supporting Revit 2021, we have updated the binary depedencies to ODA from 20.12_14 to 21.11_14. All platform packages are updated, except for Android.

See also

Package changes

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2021

Format Updates

Format Updated Version
SolidWorks 2021

3MF format now available for import

3MF (3D Manufacturing Format) a 3D Printing format. It embeds information about material, colors, textures that differentiate from the STL format and that can be leveraged by full-color 3D Printers.

With HOOPS Exchange 2017, we added the support for 3MF export. Now the library is able to import 3MF files as well. Our internal dependency to Lib3MF is updated to version 2.0.0 which also improves overall stability upon exporting to 3MF.

See also

Support for Catia V5 mates

The support of mates (assembly constraints between components) targets Robotic, assembly line design as well as analysis and simulation applications. Accessing the mates from the native CAD files helps optimizing workflows by enabling applications to generate a kinematics model of the assembly that is required to calculate robots’ paths, execute analyses.

The support of Mates in introduced as Beta in Hoops Exchange 2021 with a limited scope: Support a sub-set of Mates for Catia V5 format. This project will be continued in later releases and might also be extended to other formats.

See also

Package Changes

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2020 SP2 U2

Format Updates

Format Updated Version
NX - Unigraphics 1926

The U2 update is mainly a bug fix release. The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2020 SP2 U1

The U1 update is a bug fix release. The list of fixed bugs can be found on the fixed bugs page.

Format Updates

Format Updated Version
Creo 7.0

HOOPS Exchange 2020 SP2

Format Updates

Format Updated Version
ACIS 2020
CATIA V5-R2020
JT 10.3
Inventor 2021

Remark for Creo: The support of Creo 7 is under process and our team is doing its maximum to release it in a short period of time.

CATIA V5 cylindrical and spherical textures

CATIA V5 now supports textures with planar, cylindrical and spherical projection modes. For the textures to be loaded, they must be located aside the model file within the filesystem.

See also

New reading option for CATIA V5

It is now possible to decide whether materials are read or not upon reading a CATIA V5 file. By setting the option A3DRWParamsCatiaV5Data::m_bUseMaterialRendering to A3D_TRUE the rendering will use the materials. This is the same as rendering with the option "Shaded with Materials" set within CATIA V5.

See also

Creo 4 boolean operations

We added the support for assembly-level boolean operations available from Creo 4 and later.

See also

HOOPS Exchange 2020 SP1 U1

The U1 update is a bug fix release. The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2020 SP1

Format Updates

Format Updated Version
NX 1899
Parasolid 32
Revit 2020

Parasolid Bridge and iOS

On iOS, HOOPS Exchange is provided as a static library. The same occurs for the Parasolid Bridge which is available under a library file called libhepb.a. If the Parasolid Bridge is not used on iOS, its functions are replaced with placeholders which now have to be disabled using a specific macro definition.

See also:

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2020 U1

Format Updates

Format Updated Version
Solid Works 2020

Platform Fix

This release contains a bug fix addressed to the GNU/Linux package which corrects an incompatibility issue towards Centos 7 build tools.

Upgraded FreeType dependency

The FreeType library is upgraded from 2.8 to 2.10.1.

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2020

Format Updates

Format Updated Version
NX 1872
Solid Edge 2020

Remark for SolidWorks: The support for the latest version of SolidWorks (2020) is under process and our team is doing its maximum to release it in a short period of time.

Platform Changes

Removed ImageMagick

HOOPS Exchange does not require ImageMagick any longer. Thus the following libraries are not part of the package anymore and can be safely removed from your distribution:

Because of the removal of ImageMagick, the following image formats are not supported anymore by our readers:

See also

Progress Bar improvements for the Parasolid bridge

We added the support for a progress bar for A3DAsmModelFileTranslateToPkParts. This addition is mostly noticeable when used along with models which contain an important amount of representation items.

See also

SolidWorks Holes as Assembly Features

Hole Wizard is a SolidWorks tool which allows to create holes at part or assembly level without the need of drawing or using complex features combinations.

In a context of supporting assembly-level hole features, we added the support for SolidWorks Hole Wizards upon reading.

See also

Internal changes on surface split

Internal changes have been made to improve overall stability and performances of splitting bi-periodic surfaces.

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2019 SP2 U2

Future Platform Changes

With HOOPS Exchange 2020, Linux and Android platforms will be upgraded:

Note: This release does not contain this platform change. It is an informational notice for the next major release.

Behaviour regarding empty model files

HOOPS API will ensure a model file always have at least a root product occurrence:

Notes about the C++ API

Along with the 2018 SP1 release, we added a new C++ interface for Exchange and Publish. This API is considered as a pre-release version and may be discontinued in the future in favor of a smoother experience with already existing APIs we provide.

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2019 SP2 U1

Format update

Format Updated Version
CATIA V5 V5-6 R2019 (R29)

See also

OBJ and FBX export

OBJ and FBX export now support for polylines (kA3DTypeCrvPolyLine).

See also

Improve support for SolidWorks Display Lists

Upon reading a SolidWorks file some parts may be missing from your environment. Usually HOOPS Exchange uses the presence of Solidworks Display Lists to recover the missing elements. Prior to SolidWorks 2018, CAD files only contained the Display Lists for one Configuration: the active configuration. Now a SolidWorks file can contains as many display list as needed and HOOPS Exchange can use them internally to improve the recovering of missing parts.

See also

This behaviour is performed when reading in B-rep only or in B-rep and tessellation.

Material Names in SolidWorks and NX

We now read and store the name of materials assigned to parts when reading SolidWorks and NX files. The name of a material is stored into an instance of A3DMiscMaterialPropertiesData which can be retrieved using A3DMiscGetMaterialProperties

See also

Bug fixes

The list of fixed bugs can be found on the fixed bugs page.

HOOPS Exchange 2019 SP2

Format updates

Format Updated Version
Creo 6
Inventor 2020
Parasolid v31.1
NX 1847 Series

New Format Support (Summary)

Format Support Platforms
STEP XML Import Windows macOS Linux iOS Android

See also

New feature support for SolidWorks

We added support for Sketch features in Solidworks.

Geometry extraction from features

We now provide a new function for extracting geometry from features: A3DFRMFeatureGeomEntitiesExtract. Check out our documentation to see how to proceed.

See also

Support for Inventor Representations

Inventor Representations are a way to store different sets of transforms for assemblies. Our Inventor reader now supports reading Representations.

Revit improvements

We've made some improvements to the Revit reader, including the support for textures and colors.

Also, reading a linked model file is now supported.

See also

New support for progress callbacks

HOOPS Exchange provides custom callbacks which are triggered when some heavy processes are performed. We added support for these callbacks with sewing and NURBS converting functions.

See also

Fixed Bugs

A list of fixed bugs can be found on the Fixed Bugs page.

HOOPS Exchange 2019 SP1 U1

Binaries updates

ICU 58 is no longer required by our binaries. Thus icudt58.dll and icuuc58.dll can be safely removed from your binaries distribution.

Imagemagick has been updated to version 7.0.8-34.

See also

Fixed Bugs

A list of fixed bugs can be found on the Fixed Bugs page.

HOOPS Exchange 2019 SP1

Format update

Format Updated Version
ACIS 2019

Improvement to Revit family import

We have improved import of Revit families in RFA files (for elements such as doors and windows). In previous versions of Exchange, the geometry for these items was simply duplicated. As of this release, these items are now instantiated through Exchange's prototype mechanism.

Support for BIM Unit Metadata

BIM formats embed generic attributes within their model files. Such attributes may be values attached to a complex unit system such as km/h ou m²/sec.

HOOPS Exchange now provides a way to read this unit information from any IFC or Revit file using generic attributes. While previous releases of HOOPS Exchange supported reading unit metadata for the IFC format, this is the first HOOPS Exchange release that supports reading unit metadata for the Revit format.

See also

FBX and OBJ writers improvements

In order to reduce the size of the generated output file, the following changes have been made to the FBX and OBJ writers:

See also

Features Improvements

We added the reading of new feature types:

Not all feature types are supported by all readers.

See also

Deprecating multi-process loading

Since 2017, HOOPS Exchange has supported multi-process loading of CAD files. However, due to stability and performance concerns, we have decided to deprecate this feature. Multi-process loading will remain supported until HOOPS Exchange 2020.

In a future release, removal of multi-process loading will impact A3DRWParamsGeneralData as well as the binaries requirements when deploying your application.

Multiprocess export to Parasolid using A3DAsmModelFileTranslateToPkParts() won't be affected.

Online documentation improvements

A new documentation page explains how to convert geometry to NURBS with A3DCopyAndAdaptBrepModelData().

Binaries updates

Some dependencies required by DWG and Revit have been changed. See Distributing Your Application for a comprehensive list.

Fixed Bugs

A list of fixed bugs can be found on the Fixed Bugs page.

HOOPS Exchange 2019 U1

HOOPS Exchange 2019 Update 1 is a bug fix release only.

HOOPS Exchange 2019

Format updates

Format Updated Version
SolidWorks 2019
Solid Edge 2019
Parasolid V31
Revit 2019
JT Import 10.2
JT Export 10

New Format Support (Summary)

Format Support for Import/Export Platforms
FBX .fbx Import/Export Windows macOS Linux

Platform changes

See also

Compilation Toolchain Changes

See also

New format support: FBX

This is the first release of FBX. FBX (originally a successor to FilmBoX) is an Autodesk owned proprietary format (.fbx). It is widely used to exchange 3D assets between 3DS Max, Maya and Unity as well as other proprietary and third-party software.

FBX can be either binary or ASCII data and HOOPS Exchange will support the reading (Import) and writing (Export) of both binary and ASCII.

Support for FBX contains:

See also

New format support: Autodesk Revit (official support)

Supported versions and platforms:

Support for Revit contains:

Not supported:

See also

JT structure improvements

The structures obtained from JT files are now simpler and closer to the original JT structure.

If you have any questions or concerns regarding these changes, please contact our support team.

See also

SolidWorks PMIs support

We support most PMIs in SolidWorks. Please see the limitations in the PMI section in the SolidWorks format page.

See also

SolidWorks features support

Feature tree reading is supported with SolidWorks, with access to detailed information for holes, patterns and threads. Pitch, handedness and tip angle data are not retrieved for threads contained in holes.

When available the feature geometry association (faces) is supported.

See also

Identifying Rigidly Connected Parts for PTC Creo

In HOOPS Exchange 2018 SP2, we added new functionality to identify components within a CAD assembly that are rigidly fixed to each other, valuable in motion and kinematic analysis.

The three new functions are:

In HOOPS Exchange 2018 SP2 these new functions were supported for Catia, NX and SolidWorks files only. In HOOPS Exchange 2019, we have also added support for PTC's Creo.

See also

Collision detection improvements

We've refactored our collision detection functionality to improve speed and precision.

Grid-aligned tessellation

HOOPS Exchange now provides a new way to perform accurate tessellation upon loading. The grid-aligned tessellation allows accurate tessellation to obtain more regular triangles, where point insertion is based on a grid layout.

Standard accurate tessellation
Standard accurate tessellation

Accurate tessellation with grid-aligned point insertion
Accurate tessellation with grid-aligned point insertion

To enable this feature, set A3DRWParamsTessellationData::m_bAccurateTessellationWithGrid to A3D_TRUE. If set, accurate tessellation using grid-based point placement will be used no matter what the value of A3DRWParamsTessellationData::m_bAccurateTessellation is.

See also

Restricting tessellation grid size

When performing grid-based tessellation, the maximum grid stitch length may be defined. This can lead to a more regular grid. This maximum value may be set using A3DRWParamsTessellationData::m_dAccurateTessellationWithGridMaximumStitchLength. This field is a double floating point value used as a reference for the grid. Setting the value to 0.0 will disable the constraint, which is the default behavior.

A very small value may lead to a huge number of points, thus a very long tessellation process.

Side effects with curved surface

As of 2018 SP2, HOOPS Exchange provided a new parameter for accurate tessellation: A3DRWParamsTessellationData::m_bAccurateSurfaceCurvatures. With this option the tessellation tends to create more adapted triangles along curvatures. Now when using both this option and A3DRWParamsTessellationData::m_dAccurateTessellationWithGridMaximumStitchLength with a small value the generated triangles may not meet expectations.

Comparing grid-based tessellation with or without constraints and surface curvature options

Reader feedback improvement

While reading CAD data, HOOPS Exchange identifies the format and version. If the version is not supported by our reader, the associated error code is returned:

As of version 2019, this functionality is available with the formats below:

See also

New method for retrieving features from PRC tree

HOOPS Exchange changed the way features are stored and accessed in the PRC tree. Previously, getting an instance of A3DFRMFeatureTree was accomplished using A3DAsmPartDefinitionFeatureTreesGet. As of this release, feature management has been moved from the part definitions to the product occurrences.

Now, features are directly stored in A3DAsmProductoccurrence as an array where:

These fields are filled in using A3DAsmProductOccurrenceGet and no additional function call is required. A3DAsmPartDefinitionFeatureTreesGet is now deprecated. Calling it will return A3D_SUCCESS and an empty array.

The PRC2XML example code has been updated to illustrate the changes.

See also

For more information about reading feature trees, see the programming guide.

IFC 4 support

By the version 2019, IFC reader supports the following B-Rep and Tessellation types:

See also

PMI management

In the A3DMarkupGDTData data structure, we've added an array of A3DMDTolerance* entities: A3DMarkupGDTData::m_ppsMarkupTolerances. Previously this tolerance was an A3DMDFeatureControlFrameData. Now this tolerance can be either an A3DMDFeatureControlFrameData or an A3DMDToleranceSizeData.

See Also

Reading mode when 3D and 2D are present

Previously, reading either 3D or 2D was specified using A3DRWParamsGeneralData::m_bReadDrawings. With this release, the field has been replaced by an enumeration A3DRWParamsGeneralData::m_eReadingMode2D3D. A3DEReadingMode2D3D can either be:

See Also

Enabling hidden solid and surfaces with A3DComputePhysicalProperties

When computing physical properties from a model file, it is now possible to decide whether hidden solid and surfaces are part of the computation or not.

This option can be toggled on using A3DPhysicalPropertiesData::m_bIncludeHiddenRIs. By default, this field is set to A3D_FALSE.

See Also

Retrieve the unit of a model file

A new function is added: A3DAsmModelFileGetUnit(). This function returns the unit of the model file.

The unit of a model file is the first valid unit in the ModelFile/ProductOccurrence chain. If a valid unit is defined at the model file level, it will apply to all product occurrences.

Once a valid unit is found, the remainder of the data is interpreted with respect to that unit, even for occurrences higher in the product occurrence hierarchy. In other words, if a product occurrence having no valid unit has a son with a valid unit, it is assumed that the entire hierarchy of model file and product occurrence are to be interpreted and used according to this unit.

See also

New option for copy-and-adapt B-Rep model

An new option is added A3DCopyAndAdaptBrepModelData::m_bClampTolerantUVCurvesInsideUVDomain. By default (A3D_FALSE), when using A3DCopyAndAdaptBrepModel UV curves may stray outside the UV domain as long as the 3D edge tolerance is respected.

When set to A3D_TRUE UV curves will be clamped to the UV domain.

See Also

New option for sewing

A new structure is added which allows to customize sew: A3DSewOptionsData. This implies changes in the signature of following functions:

With this addition a new option is available: A3DSewOptionsData::m_bComputePreferredOpenShellOrientation. By definition, open shells do not have a proper inward/outward orientation. With this option enabled (A3D_TRUE) an orientation is inferred even if is it an open shell. The default value is A3D_FALSE.

See also

New documentation for incremental load

New documentation is available for performing an incremental load.

Other C API Changes

HOOPS Exchange 2018 SP2 U2

HOOPS Exchange 2018 SP2 U2 is a bug-fix release only.

Fixed Bugs

Issue NumberDescription
31547Add/Implement support of additional search directories for XML files
31755SolidEdge Assemblies Missing parts, loading from PRC is OK
32284A3DLicPutUnifiedLicense called twice returns -34
32361Collision isn't detected
32380Empty model when loading XML
32426HOOPS Exchange does not identify proper Clearance or Collision result
32479A3DTopoEdgeGetSurfaces() crashes

C API Changes

A3DTopoItemOwnersManagerGet() and A3DTopoItemOwnersGet() prototypes have been changed to work properly.

HOOPS Exchange 2018 SP2 U1

Format Updates

FormatUpdated Version
Inventor 2019

Fixed Bugs

Issue NumberDescription
32274 Sample viewer PMI display improvement
32229 Volumetric Physical Properties computation improvement
32170 IGES healing improvement + Sewing improvement
32161 Parasolid Bridge export imrovement when using KeepParsedEntity option
32121 STEP AP242 export - Add time attributes
32077 Compute Physical Properties improvement
32042 Remove messages appearing on stdout
31983 Coordinate System in STEP : support of CONSTRUCTIVE_GEOMETRY_REPRESENTATION
31965 3DXML improvement
31505 DWG 3D: Clipping block support
30710 JT: Custom Symbol display improvement
29863 JT: PMI display improvement

HOOPS Exchange 2018 SP2

Format Updates

FormatUpdated Version
Creo 5

New Format Support (Summary)

3D Studio .3dsImport OnlyWindows Only
AutoCAD .dwg .dxfImport OnlyWindows/Linux/Android (new)
COLLADA .daeImport OnlyWindows Only
DWF .dwf .dwfxImport OnlyWindows/Linux
glTF .gltf .glbImport OnlyWindows/Linux/Mac
Revit .rvt .rfaImport OnlyWindows 64 bits only
Wavefront .objImport OnlyWindows Only

New Format Details

The import of Obj, COLLADA and 3D Studio files is now officially supported, having moved from the vault to the main HOOPS Exchange product release. We encourage you to try these file formats and give us your feedback.


The glTF format (version 2.0 only) is now supported for import. It includes the support for Texture Mapping.

  • kA3DTextureMappingMetallness
  • kA3DTextureMappingNormal
  • kA3DTextureMappingOcclusion
  • kA3DTextureMappingRoughness
  • Plus combinations of above. See A3DGraphMaterialData Documentation for details.

Autodesk Revit

Autodesk Revit import is now supported (Revit 2015 to 2018 inclusive, Windows 64bits Only). This is a first pre-release version for testing and feedback, released complete with some caveats and known issues. The main purpose of this first release is to allow the access and viewing of the contents of Revit files and understanding of structure. (Levels, categories and views).

The functionality for this first pre-release and is as follows:

  • Import .rvt files and .rfa files
  • Import tessellated objects only, no B-Rep.
  • Ability to sort and display objects by level then by categories inside each level (This is similar to the method available in IFC files). Each level has a metadata TYPE = IFCBUILDINGSTOREY, again this is similar to IFC.
  • Read the basic material (color, transparency) for tessellation objects.
  • Read and import the 3D views (change visibility + set camera)
  • The handling of visibility/graphics overridden by views (graphics override per view is not handled)
  • Using layers to set category for each item.

Currently known issues:

  • Visibilities overrides sometimes do not handle some sub-categories correctly.
  • Wire coloring is disabled.
  • Drawing sheets are not supported.
  • Some items may be located at the structure root instead of the correct level.

Please send us your feedback and feature requests for Revit support in future releases.


The import of .DWF and .DWFx files is now available for Windows and Linux. It is currently limited to the reading of 3D objects only.


The ability to import .dwg and .dxf files on the Android mobile platform is new for this release.

Enhancements (New Functionality)

Identifying Rigidly Connected Parts

HOOPS Exchange has added new functionality to identify components within a CAD assembly that are rigidly fixed to each other. This is valuable for helping to understand and reduce the complexity of assemblies when doing motion and kinematic analysis, reducing the number of possible moving components. This is achieved by looking for and reading the appropriate associated attribute stored in the CAD file. This attribute flags and identifies this condition, locking together certain parts.
There are 3 new functions:

A3DAsmGetFixedComponents() – This gives a list of components with a locked position at a specific assembly level.

A3DAsmGetFixedTogetherComponents() – This gives a list of the components rigidly connected to each other.

A3DAsmGetFlexibleComponents() – Identifies which components are considered flexible.

Please note that this functionality is supported for Catia, NX and SolidWorks files only at this release.

"Deep Copy" of a Product Occurrence

When editing the properties of an individual instance of a component in an assembly that has multiple instances of that component, the property will be changed for all instances of the product. The Deep Copy function will allow the associativity of a single instance to be removed (exploded) from its related instances, so that it can be treated and edited separately as if it were an individual and independent component.

A3DAsmProductOccurrenceDeepCopy() is available to duplicate and copy a selected product occurrence and all its associated data. (For more details please see the API Reference.)


Enhancements to Existing Functionality

Mass Property Calculation Improvements

Physical properties can now be computed on B-rep when it is available using the geometry of an A3DRiBrepModel. Additional properties (center of surface and inertia) are now calculated and available.

To accommodate this, the physical properties structure has been expanded with additional parameters. The surfacic gravity center and surfacic/volumic inertia matrix (relative to their respective center of gravity) are new additional return values available.

A new precision parameter is added as part of the control input determining how accurate (precise) the user wants the computation to be, and the 'use geometry' parameter allows the user to control whether tessellation or geometry should be used for the computation, when both are available.

This affects all three physical properties-related functions (A3DComputePhysicalProperties, A3DComputeModelFilePhysicalProperties and A3DComputePolyBrepPhysicalProperties). When using default input parameters, their behavior remains consistent with the previous release, the only difference being the extra computed values.


Datum entity visibility can be controlled by option A3DRWParamsSolidworksData::m_usDisplayVisibleDatum.


You can switch between colors or material with A3DRWParamsRhinoData::m_bForceRenderedModeColors. The default parameter sets to use materials.


PMIs support has been improved with respect to the links in JT PMIs and Views, including:

  • Geometry highlight, selecting PMI in an assembly
  • Element visibility in views
  • Exploded views

There has also been improvement of the PMI tessellation for some symbols/custom fonts.

Accurate Tessellation Improvements

When using the more accurate (water-tight) tessellation, on curved surfaces, many triangles are created of a similar size. Sometimes this is not desirable if the application requires the shape of the triangles to better match the shape of these curved faces and produce better visualization.

For accurate tessellation, there is a new option:

This results in the face curvature controlling and making the triangle length and direction better match the shape of the faces, yielding better visual results and also reducing the number of triangles. (See below)

Accurate tessellation without the face curvature option
Accurate tessellation without the face curvature option
Accurate tessellation with the face curvature option
Accurate tessellation with the face curvature option


Improved Debugging

We've introduced a way to generate the list of calls to the API (See A3DCallbackAPITrace)

New Sample for Collision Detection

In the 2018 SP1 Release, we added support for collision detection. This release now provides a new example project for Collision Detection.
The sample reads an input CAD file and outputs collision status between representation items. The user may select which items are tested using their UUIDs and the output is available as a report file. Please see the example section or the Programming Guide for more details.

C API Changes

A number of changes have been made to the C Interface in order to make it compliant to C Language specifications. Though some of these changes may break code compatibility, they provide a safer version of the API:

  • A3DSDKConvert.hxx and A3DSDKInternalConvert.hxx which define A3DSDKHOOPSExchangeLoader, A3DImport and A3DExport are now only available when compiling C++.
  • A3DSDK.h now defines two constants, A3D_TRUE (1), and A3D_FALSE (0) which can be used to compare values of type A3DBool
  • Calling A3DSDKLoadLibrary() was ambiguous when compiling with Microsoft Visual Studio. The function name is now a C Macro definitions which expands to:
    • A3DSDKLoadLibraryW if compiling with MSVC and UNICODE is set
    • A3DSDKLoadLibraryA otherwise

The table below lists more specific changes made for the same purpose:

A3DCommonReadWrite.h A3DRWParamsExportXMLData m_bExportMetadata, m_bExportTransformations, m_bExportColorMaterial and m_bExportProductInformationByFormat now are of type A3DBool
A3DPDFPublishSDK.h A3DPDFCheckPDFLibInitialization Changed reference type to pointer
A3DSDKAdvancedTools.h A3DHLRCurveData m_bFirstFaceIsSection and m_bSecondFaceIsSection now are of type A3DBool
A3DHLROptionsData Declare the structure as a typedef
A3DSDKLoader.h A3DSDKLoadLibrary Remove default parameters
All uses of bool are replaced with A3DBool and true/false are replaced with A3D_TRUE/A3D_FALSE respectively.
A3DSDKMarkup.h A3DMkpViewFlagsGet Output parameter is a new struct of type A3DMkpViewFlagsData
Function has been renamed to A3DMkpViewGetFlags
A3DMkpRTFInit pRTFData is now set as A3DVoid**
A3DMkpLinkForMarkupReferenceGet puiLinkedItemsSize and ppLinkedItems are now set as pointers instead of references
A3DMkpLinkForAdditionalMarkupReferenceGet puiLinkedItemsSize and pppLinkedItems are now set as pointers instead of references
A3DGlobalFontTextBoxGet pdLength and pdHeight are now set as A3DDouble*
A3DGlobalFontTextBoxAndScaleGet pdLength, pdHeight and pdScale are now set as A3DDouble*
A3DGlobalFontTextTessellationGet pdCharWidth is now set as A3DDouble*
A3DSDKReadWrite.h A3DChainedBuffer Declare the structure as a typedef
A3DCheckFileFormat rCadTypeWanted is now set as A3DEModellerType
A3DAsmModelFileExportToPrcStream pcStream is now set as A3DUTF8Char**
uLength is now set as A3DUns32*
A3DSDKRepItems.h A3DRiCurveSupportGet ppLinkedItem is now set as A3DMiscMarkupLinkedItem**
A3DRiPlaneSupportGet ppLinkedItem is now set as A3DMiscMarkupLinkedItem**

Typo fixes

Two identifiers have been renamed:

  • m_pSingleAttributesData => m_asSingleAttributesData
  • EA3DMDDimensionSymbolSharpe => EA3DMDDimensionSymbolShape

You may change your code accordingly or run the script located at tools/ to do it automatically.

Customer Issues Addressed

For this service pack release we have fixed over 75 issues.

Special Notes

The upcoming release will include changes to the compilation tools for Linux. For HOOPS Exchange 2019, the binaries will be compiled using Centos 6 with devtoolset 6 (GCC 6 : using the new ABI for libstdc++).

HOOPS Exchange 2018 SP1 U1

HOOPS Exchange 2018 SP1 U1 is a bug-fix release only.

Fixed Bugs

Issue NumberDescription
29541 Add representation item copy
29701 NX support improvement
29831 NX flipable PMI support improvement
29940 Creo GD&T improvement
30014 JT PMI reference improvement
31094 Creo GD&T improvement
31100 Creo GD&T improvement
31196 CATIA V5 Improvement
31274 Parasolid bridge improvement
31296 Creo links improvement
31352 Creo thread feature improvement
31382 Parasolid bridge improvement
31439 Acis Export improvement
31445 Parasolid import improvement
31459 Solidworks improvement
31465 CATIA V5 improvement
31482 STL Export documentation improvement
31495 NX incremental load improvement
31536 CATIA V5 improvement
31566 Acis Export improvement
31567 A3DAsmProductOccurrenceEdit improvement

HOOPS Exchange 2018 SP1

Format Updates

FormatUpdated Version
CATIA V5 V5_6R2018
NX 12
Parasolid v30.1
Acis 2018 (R28)
Rhino 6



A C++ interface has been added for HOOPS Exchange. This is the first release of this interface and it should be considered as a fully supported pre-release of the code. One of the first main use cases for the C++ interface is to enable and allow the update of a HOOPS Exchange version without having to recompile your application. This C++ API will continue to be developed in future releases to make it easier to develop and build your application. Please see the Getting Started with the C++ API section for more information.

Collision Detection

Functionality (A3DCollisionCompute) has been added to determine if there is interference (clashes) between parts within an assembly. (This is a static clash detection.) As well as detecting interference, the function will be able to check the clearance of parts for a given clearance distance and also if the part is completely enclosed within the other part. For example:

Bounding Box Computation

A new function (A3DMiscComputeBoundingBox) is included to calculate the bounding box for a representation item, product occurrence, and model file.

Functionality Enhancements


Support for SolidWorks Virtual Components. A Virtual Component is a component that is embedded inside the assembly file rather than being an external reference.


Improved the support and handling of very large assemblies.


Improved the quality of the default view.


JT views have been improved to fix exploded view problems.


Notification about the A3DMiscReferenceOnTopologyCreate function. Creating a A3DMiscReferenceOnTopologyData on tessellated entities will not be supported starting with the next release (2018 SP2). Customers should consider using the function A3DMiscReferenceOnTessCreate instead. Please refer to the new sample code in the CreatePRCCubes sample.

In the structure A3DCompareInputData we changed the fields m_pOldRiBrepModelPlacements and m_pNewRiBrepModelPlacements from A3DMatrix to A3DDouble*. It doesn't change the way to fill the arrays.

Customer Issues Addressed

For this service pack release we have fixed over 170 issues.

HOOPS Exchange 2018 U2

HOOPS Exchange 2018 U2 is a bug-fix release only.

Fixed Bugs

Issue NumberDescription
30922 DWG: Improved support
30916 DWG: Improved support
30831 DWG: Improved support
30778 DWG: Improved support
30485 DWG: Improved support
30484 DWG: Improved support
30460 DWG: Improved support
30459 DWG: Improved support
30010 DWG: Improved support
29220 DWG: Improved support

HOOPS Exchange 2018 U1

HOOPS Exchange 2018 U1 is a bug-fix release only.

Fixed Bugs

Issue NumberDescription
30661 DWG: Improved support
29954 STEP Export: improvement
30729 Creo: fix reading issue with version 4.0 M030
30508 SolidWorks: fix reading issue
29813 SolidWorks: positioning improvement
30388 Attribute modification improvement
30371 JT: fix reading error
30761 Improve Hoops Exchange Demo load time
30812 Fix linux library loading

HOOPS Exchange 2018

License Key Update

Important: A new license key specifically generated for HOOPS Exchange 2018 and above is required. Licenses generated for previous versions will not work. Please visit the HOOPS Exchange download page to generate a new key.

In addition, the header file downloaded from the Developer Zone has been renamed from A3DSDKLicenseKey.h to hoops_license.h. Place hoops_license.h in the include directory of your application; A3DSDKLicenseKey.h files from previous versions will no longer work.

Lastly, A3DLicPutLicense(), A3DLicPutPRCLicense() and A3DLicPutLicenseFile() have been replaced by A3DLicPutUnifiedLicense(). Please note, the return type and parameters for A3DLicPutUnifiedLicense() are different from the functions it is replacing.

Format Updates

FormatUpdated Version

New Formats: DWG and DXF

DWG and DXF Support. Exchange now supports DWG and DXF Drawings and 3D as input formats.


The following enum identifiers in A3DEJTReadTessellationLevelOfDetail have changed: JTTessLODLow, JTTessLODMedium, JTTessLODHigh.

These identifiers now have a "kA3D" prefix: kA3DJTTessLODLow, kA3DJTTessLODMedium, kA3DJTTessLODHigh.


Multi-Process Export. Exchange can now directly translate and heal a model file into Parasolid using multi-process. See A3DRWParamsTranslateToPkPartsData::m_uiNbProc for more information.

Import Parasolid data into Exchange. We have included functionality to import data from a Parasolid session into Exchange. This is particulary helpful when used in conjunction with our exporter. See A3DPkPartsTranslateToA3DAsmModelFile for more details.

IOS. Our Parasolid Bridge now works on IOS.

Sewing. Our sewing functionality now preserves links between PMI and topological entities (faces, edges, vertices).


B-rep is now supported with our 3DXML reader.


Feature Tree. The feature tree functionality introduced as Beta in HOOPS Exchange 2017 SP2 is now officially supported. In addition to holes and patterns, new types of features, extrusions, revolutions, and fillets have been included for V5, Creo and NX.

We have also included a new sample in the package called DumpFeatureTree, which gives an example of how to traverse a model and capture the features in an XML file.

Thread management. A new mechanism has been introduced to ensure that Exchange is used safely in a multithreaded environment. If a function is called on a particular thread while one is running, the A3D_LOCKED_LIBRARY error will be returned.


Visual Studio 2015. As mentioned in the 2017 SP1 release notes, we have discontinued the Visual Studio 2013 package. This does not mean that you have to use Visual Studio 2015 to compile your projects, since HOOPS Exchange binaries and functions are dynamically linked with your application using GetProcAddress mechanisms. Therefore, you just need to make sure that the VS 2015 redistributable package is included with your application. Links to the redistributable packages are available in the Exchange "Downloads" section of our Developer Zone.

Macro renamed. A3D_LOOP_UNKNOW_OUTER_INDEX macro definition has been renamed A3D_LOOP_UNKNOWN_OUTER_INDEX.

HOOPS Exchange 2017 SP2 U2

Fixed Bugs

Issue NumberDescription
29270Parsing error when reading IPT file in tess only.
29593Cyrillic characters get lost at Export
30087NX 10 and PMI Issue
29783 CATIA PMI: Datum Targets are not converted
28638 CV5 PMI: CAX-IF / Missing datum targets
27994 STEP file Twisted Face
30026 Error loading ACIS binary file
29270 Parsing error when reading IPT file in tess only.
29593 Cyrillic characters get lost at Step Export
30087 NX 10 and PMI Issue
29896 JT Tessellation files read empty
29132 NX Point is represented as two identical items in HOOPS Demo Viewer
29129 NX Datum Planes not showing up in Hoops Demo Viewer
29775 Increased sewing time for some files in 2017 SP2
29506 SW hidden and suppressed parts are visible in BREP mode
29947 3dm breps with units in feet are handled incorrectly
28222 Crash with Ideas file with VS2013 builds
29131 NX Model missing Datum Axis in HDV
30008 Unable to import solidworks assembly
29565 face based on revolution surface is not displayed in a step file
29580 Bad faces exporting a Step file to parasolid
29583 Wrong parasolid exported from a step file
29584 Wrong parasolid exported from a step file



Import Parasolid parts directly into Exchange. New API to import Parasolid parts directly into HOOPS Exchange. Please see A3DPkPartsTranslateToA3DAsmModelFile for more information.

HOOPS Exchange 2017 SP2 U1

HOOPS Exchange 2017 SP2 U1 is a bug-fix release only.

Fixed Bugs

Issue NumberDescription
27553Creo PMI issue
28638CV5 PMI issue
29269CV5 PMI issue
29537NX PMI issue
29615A3DAsmGetFilesPathFromModelFile issue
29693Export to StepZ issue
29756NX PMI issue

HOOPS Exchange 2017 SP2

Format Updates

FormatUpdated Version
CATIA V5 V5_6R2017
Inventor Inventor 2018
Parasolid v30
Acis 2017.1 (R27)



Faceted geometry import. HOOPS Exchange can import Parasolid files (v28.1 to v30.0) with faceted data. (Our Parasolid connector is not mandatory.)

Faceted geometry export. Our Parasolid connector* can export tessellated data into Parasolid. This new capability allows users to:

  • Re-use faceted data from STL, IFC, VRML, U3D or CGR files directly in Parasolid.
  • Load faceted data into Parasolid for specific assembly nodes where no B-rep is available. This is particularly useful for certain data types in native CAD files, such as:
    • Assembly-level features
    • Creo family tables
    • Missing files in Solidworks assemblies

*This function is available with Parasolid v28.1 and later.

iOS Platform Parasolid Export. The HOOPS Exchange iOS package can now export data into Parasolid.

Healing Performance. Healing performance in the Parasolid connector has been improved by a factor of 2 (when compared to the 2017 SP1 release).


Export to IGES is now available on the iOS platform.


HOOPS Exchange users can now:

  • Export to Step on the iOS platform.
  • Export tessellated Geometry into AP242. This includes tessellated solids, shells, wires, and point sets.
  • Export to STPZ (compressed Step file)
  • Export the following file attributes: User Name, Organization Name, and Authorization Name

Semantic PMI (Import / Export) Enhancements. It's now possible to:

  • Manage geometric tolerance with Maximum Tolerance on GD&T.
  • Manage shape representation with a new parameter on Datum Target.


Units. By default, there are no units in an STL file. Previously, HOOPS Exchange assumed that the generated STL file would use the initial CAD model unit. There is now an option to force the implicit unit used. See A3DRWParamsExportStlData for more details.

Ascii/Binary Naming Differences. For Ascii files, Exchange reads all solids and saves them as separate bodies, using the name field from "solid" as the body name. For binary files, Exchange now uses the header field as the body name.

Functionality Enhancements

Feature Tree (Beta Version). The Feature Tree represents all the steps that have been taken to create the final Part. As of this release, a new import mode has been included to read the Feature Tree and provide hole definition and pattern information for CATIA V5, Creo, and NX.

Sewing Improvements.

  • Performance of the sewing algorithm has been improved by a factor of 2 to 5, depending on files.
  • The sewing algorithm now splits 3D curves on discontinuity.
  • Sliver faces are better managed.

Hidden Line Removal. Hidden Line Removal functionality has been enriched with a new option to remove tan edges.

Tessellation Creation. By default, an algorithm is used to remove all duplicated points when creating an A3DTessBase object. This can result in slower performance; A3DTessBaseSetNoHash has been added to skip this pre-process phase when creating an A3DTessBase.

Package and Documentation

Binaries. The list of DLLs to distribute on 64-bit Windows has changed. sc_utils.dll is no longer mandatory for HOOPS Publish users who want to export 3D Data into HTML or SCS.

Samples. All samples have been modified to unify Linux and Windows input parameters and to use log files. The PRC2XML sample has been modified to traverse material properties and the Feature Tree. A new sample IOSWriter has been added to the iOS package.

Documentation Updates: 

  • New search functionality has been added to the API Reference. This feature is available with or without an internet connection.
  • A new getting started guide for Parasolid users has been added to the Programming Guide.

Fixed Bugs

File Format / ComponentDescription
3DXML Parsing issue fixed
ACIS Some Sab File parsing issues have been fixed.
Some Export issues fixed
Update to 2017 version
Problem with 3D Curve when Importing Sat file
IDEAS Parsing and Reading issues have been fixed.
IFC Better memory mangement when reading Pipe
JT Issue fixed - PMI / Geometry linked
Kernel Improve Hidden Line removal function on sectioned model
Sewing and sliver face functionality
Remove potential Crash in the ComputeArea function
Minor change to CopyAndAdaptBrep
NX Lightweight models referenced by RefSet are ignored if B-rep is available.
Issue fixed to retrieve file path.
Parasolid-based formats Changes evaluating blend and intersection curves near degeneracies
Creo Fixed issue reading xas file
When possible, the B-rep is loaded instead of the tessellation with Pro/E Boolean operations
SolidEdge Specific Linux 64-bit issue fixed
SolidWorks New flag to detect empty configuration
Fixed transformation issue with nested assembly and configuration
Fixed an issue to retrieve file paths
Windows x86-specific reading issue
STEP Problem Reading StepZ File on linux x86
Step AP242 Export issue : Bad Link between PMI and Geometry
Step Export unit
STL New option to define the implicit unit used in Export Scaling
V5 New symbols supported in the TS3D Font

HOOPS Exchange 2017 SP1 U2

Fixed Bugs

Issue NumberDescription
28051PRC issue
28162Forward PRC compatibility
28238ACIS export issue
28299Solidedge Assembly issue
28506Forward PRC compatibility
28810STEP export issue
28821CATIA V5 issue
28919CATIA V5 issue
28932SolidEdge issue
28956SolidEdge issue
28973VRML issue
29024ACIS issue
29081Solidworks Default View support
29101STEP export issue
29144CATIA V5 issue

HOOPS Exchange 2017 SP1 U1

Fixed Bugs

Issue NumberDescription
27593CV5 reading issue
27757CAT Drawing – Line Pattern
278913DXML Color issue
278933D XML visibility issue
27918JT ULP
27953JT - Fix PMI link with geometry
28314Step Export – scale issue
28652STL read on Linux
28840Solidworks reading issue
28457Creo reading issue
28828Loop closing algorithm
28816DLL Minor version

Other Enhancements

  • Parasolid Bridge: Increased performance by a factor of 2 when activating healing
  • A3DComputeOrthoHLROnModelFile3: Ability to detect Tan edges. Please note, A3DComputeOrthoHLROnModelFile2 has been deprecated.
  • A3DGlobalFontTextTessellationGet: Improvement on Linux
  • Step Writer: Improved writing of semantic PMI
  • SolidWorks: User-defined camera support
  • Removed hps_core.dll and hsfstep30.dll from the package. The HSF importer is now included in a3dpostergeneration.dll

HOOPS Exchange 2017 SP1

Format Updates

FormatUpdated Version

New Formats


  • HOOPS Exchange now supports the HOOPS Stream Format.

File Reader Enhancements


  • Semantic PMI are now supported for both read and write operations.


  • Custom attributes are now supported.


  • 2D & 3D wires are now supported.


  • Semantic PMI information can be retrieved as an attribute.

Functionality Enhancements

  • We've made some improvements to our sewing algorithms, including increased performance and improvements to detecting and deleting small silver faces.
  • Our healing algorithm has also been improved to correct face orientation when reading STEP files.

Special Notes

Compilation update: const qualifiers have been removed from structure fields. This change may generate some compiler errors in your code and require some minor adjustments.

Packaging update: We now offer two packages on Windows for the following compilers:

  • Visual Studio 2015
  • Visual Studio 2013

Please note, the Visual Studio 2013 package will be discontinued in HOOPS Exchange 2018 (to be released in November 2017).

We also offer two packages on Linux for the following operating systems and compilers:

  • CentOS 5.11 using glibc 2.5
  • CentOS 6.8 using glibc 2.12

The CentOS 5.11 package will be discontinued in HOOPS Exchange 2018 (November 2017).

If you have any concerns with these changes, please contact our support team.

HOOPS Exchange 2017 U2

HOOPS Exchange 2017 U2 is a bug-fix release only.

Fixed Bugs

Issue NumberDescription
26075Publish template: fix issue with data field
26843SLW unit in Incremental load: fix issue
27764SLW Physical properties unit: fix issue
27799JT Brep face creation error: loading tessellation instead of B-Rep
28025ACIS Export: fix issue
28029Poster Generation Improvement in memory management
28116JT Brep face creation error: loading tessellation instead of B-Rep

HOOPS Exchange 2017 U1

HOOPS Exchange 2017 U1 is a bug-fix release only.

Fixed Bugs

Issue NumberDescription
26843Solidworks Config product occurrence importing in mm.
27764For SolidWorks files physical property can be given in the wrong unit.

HOOPS Exchange 2017

Format Updates

Format Updated Version
SolidWorks 2017
Solid Edge ST9
NX 11

New Export Formats


  • HOOPS Exchange can now export JT 9.5 files. This new version also supports views, PMI, mesh and exact geometry.


  • The 3D Manufacturing Format (3MF) is a 3D printing format. HOOPS Exchange can now export to 3MF.

    With the exception of digital signatures and thumbails, everything defined in the core specification of this format is supported.

    Our 3MF exporter also supports textures, colors & texture groups as defined in the materials & properties extensions. (Version 1.0).

    HOOPS Exchange 2017 uses lib3mf; please see the Acknowledgments page for license and copyright information.

New Functionality

Multi-cores usage for CAD assemblies import

  • HOOPS exchange can now use multiple processes when loading Assemblies. This is a new option that significantly improves performance. More specifically, this version improves performance when reading V5, NX, ProE, SolidWorks and JT assembly files.

    To use the multiprocess loading mode, you need to define a number of processes to use in A3DRWParamsGeneralData::m_iNbMultiProcess.

    Please note that this option will not improve performance when reading parts.
  • With Exchange 2017, there are 6 readers which support the incremental loading mode: Catia V4, CATIA V5, Creo, I-deas, NX, and SolidWorks.

Multi-cores usage for Parasolid export

Representation Item modification

  • New functionalities have been included in the product to easily edit existing representation items, including sets, pointsets, directions, coordinates systems, curves, planes, BrepModels and PolyBrepModels.



  • Screen-located PMI support has been improved.

ACIS Import

  • Some changes have been done to better manage color.
  • Some limitations when saving ACIS b-rep into PRC have been removed.

Inventor Import

  • Some limitations when saving b-rep in Inventors files into PRC have been removed.


  • Fixed some issues related to a specific SolidWorks Education version.
  • Hierachical configuration management has been improved.


  • Different fields are now used to retrieve product name in STEP files.
  • Plane can now be written as GEOMETRICALLY_BOUNDED_SURFACE_REPRESENTATION with our exporter.
  • Several general bug fixes and improvements to our STEP reader and writer.


  • Some issues have been fixed with NX files that embed JT data.


  • General improvements have been done in the following functionalities:
    • Sewing
    • Copy and adapt b-rep
    • Simplify surface as analytics
    • Physical props computations
    • Parasolid Bridge

HOOPS Exchange 2016 SP2 U2

Functionality Enhancements

Fixed Bugs

Issue NumberDescription
27359Error when loading an NX file with PMI
27375Error when loading a Creo file with PMI
27388Error when loading a V5 file with PMI
27331Issue when using HLR functionality on Linux
27412Fixed issue managing persistent ID on V5 - Files failed to load

HOOPS Exchange 2016 SP2

Format Updates

Format Updated Version
Inventor 2017
CATIA V5-6 2016

File Reader Enhancements


  • New options have been added to read, compute, and compare STEP validation properties. This can be used when importing or exporting a STEP file.
  • Color is now better managed.
  • Issues related to link PMI with edges have been fixed.


  • Parasolid customers now have the ability to use multi-process when exporting assemblies into Parasolid.


  • Better management of screen notes.


  • Inventor files created from tessellated formats such as STL are now supported.

Functionality Enhancements

  • The Mobile SDK is now available. Android and iOS platforms are now supported. With this initial version, only STEP, JT, PRC, IGES, Parasolid, IFC, and U3D import are supported. Export is not available. One sample for each platform, PRC2XML, is included which converts any supported CAD format to an XML file.
  • The HLR functionality has been improved to better manage models with sections. Oriented loops are now returned which allows the developer to easily create hatching.
  • Our sewing algorithm has been improved.
  • Bugs have been fixed in our CopyAndAdaptBrep function.
  • A new function, A3DRiRepresentationItemEditCoordinateSystem, has been added to modify an existing representation item.


  • To ensure consistency across the API of the product, some function names have been modified in this release. If you use these APIs, then you will need to modify your source code in order to move to this release. A sample python script has been included in the tools folder to help facilitate this change.

HOOPS Exchange 2016 SP1 U3

File Reader Enhancements


  • Fixed various issues


  • Support of V5_6R2016
  • PMI improvements


  • Improved file support


  • Fix view scale issue

Functionality Enhancements

  • Improved A3DGetFileFormat
  • Fixed problem with A3DComputePlanarSectionOnModelFile and A3DComputePlanarSectionOnRepresentationItem
  • Fixed problem in A3DFaceUVPointInside
  • Add "report callback" to sample ImportExport
  • PMI support: Dimensions, values, and tolerances are now expressed in the units defined by the A3DMDDimensionValueFormatData.m_iUnit and A3DMDDimensionValueFormatData.m_dGlobFact fields.

Special note

For Linux users: please create a symbolic link named pointing to

Parasolid users: ParasolidWorkShop is now part of the package. It's used optionally when exporting data to Parasolid using A3DAsmModelFileTranslateToPkParts or A3DRepresentationItemTranslateToPkParts. ParasolidWorkShop 27.0.111 for Windows and Linux is located in the bin folder of the package.

HOOPS Exchange 2016 SP1 U2

File Reader Enhancements


  • Fixed various issues regarding CGR files.


  • Fixed an issue that occurred when exporting surfaces with several loops

Functionality Enhancements

  • Fixed a problem with the A3DAsmModelFileCompare function.
  • Changed the A3DGlobalFontTextTessellationGet function to return oriented loops when tessellating glyphs.

HOOPS Exchange 2016 SP1

Format Updates

Format Updated Version
STEP export AP242
ACIS 25 & 26
Parasolid 28.1

File Reader Enhancements


  • Fix for conversion issues on a CV5 R21 file
  • Fix for conversion issue ReadHiddenObjects=true
  • Improvement on the CV5 mirrored entities management
  • Improvement on a CATIA V5 file taking a long time to import
  • Fix on a CATIA V5 file that was not converted
  • Several bug fixes and improvements


  • A new option has been added to hide datum when construction entities are loaded. See A3DRWParamsProEData::m_bDisplayVisibleDatum. Please note that the default behavior has changed compared to the previous version. Set this Boolean to true to retain the previous behavior.
  • Our reader now supports notes parallel to the screen. This is managed by a new parameter m_bHandlePMIScreenLocation.
  • Several bug fixes on reader and PMI


  • Fix for conversion issue on specific parts


  • Improvement related to the support of the validation properties
  • Improvement on the management of STEP AP 242 compressed files
  • Improvement on the management of the PMI cross highlight (geometry/PMI)
  • Several general bug fixes and improvements on our STEP reader and writer


  • Specific files containing variable patterns are now supported
  • Several bug fixes and improvements

Solid Edge

  • Several bug fixes and improvements related to sheet metal alternate assemblies


  • Specific files containing Boolean operations are now properly converted
  • Fix for specific IFC conversion issue

All formats

  • The m_ucBehaviour parameter on product occurrences is now set as "For future use". We recommend you use the information provided on m_uiProductFlags rather than in m_ucBehaviour as in previous versions.

Functionality Enhancements

Persistent IDs

The new function A3DAsmProductOccurrenceGetIdentifier has been introduced to retrieve persistent IDs on assembly nodes. This function should be used instead of using A3DRootBaseData::m_uiPersistentId on product occurrences.

Incremental load

The existing incremental load function has been enhanced and changed. A new function, A3DAsmModelFileUnloadParts, to unload parts has been introduced. This function can load or unload only leaf nodes. The function A3DProductOccurenceUnload is deprecated.

Parasolid bridge

  • Many general improvements have been made to the quality of our Parasolid bridge
  • Some fixes and improvements in our healing algorithm
  • Healing, sewing, and merging operations can now be done after translating data to Parasolid using A3DHealPkParts
  • Additional attributes, colors, and layer information can be stored directly inside Parasolid parts. See A3DRWParamsTranslateToPkPartsData::m_bUseColour2Attribute, A3DRWParamsTranslateToPkPartsData::m_bUseUTF8ForNameAttribute, and A3DRWParamsTranslateToPkPartsData::m_bUseLayerAttribute


Support of density has been improved

HOOPS Exchange 2016

New License Code

As HOOPS Exchange Publish 2016 is a major release, the license code used in previous versions will no longer work. Please generate a new licence code from the Tech Soft 3D Developer Zone.

File Reader Enhancements

Format Updates

Format Updated Version
Solid Edge ST8
SolidWorks 2016

Functionality Updates


  • The default behavior for loading a file with a family table has changed. Generic representations will no longer be loaded by default. See Creo reader file format guide for details.
  • New home view setting allows you to create a view that is equivalent to the state in which the file has been saved. See A3DRWParamsSpecificLoadData::m_sProE::m_bComputeHomeView.
  • Several bug fixes on reader and PMI
  • Several enhancements related to memory leaks and PMI


  • Several enhancements related to configuration, memory, and PMI
  • Several bug fixes


  • Several enhancements related to B-rep mode
  • Several bug fixes
  • Support added for using embedded tessellation instead of generating it from B-rep for Inventor file. See Inventor reader file format guide for details.


  • Support for JT file created from Daimler NX version (JT Version 10.0 DM
  • Enhancement density and PMI views


  • Persistent IDs now supported
  • Several enhancements related to reader performance
  • Enhancement related to graphical PMI
  • Enhancement related to markup linked items
  • Several bug fixes


  • Support for files created by NX Daimler version 10.0.4
  • Several bug fixes to reader and PMI


  • Enhancement to orientation computation
  • Several bug fixes


  • Support for persistent ID on topological entities
  • Now supports connection between PMI and Parasolid B-rep
  • Several bug fixes on both the reader and writer

STEP, Solid Edge, PDF, IFC

  • Several bug fixes to these readers


Functional Changes

HOOPS Exchange 2015 Service Pack 2

File Reader Enhancements

Format Updates

Format Updated Version
Inventor 2016
CATIA V5-6 R2015 (R25)






Solid Edge





Functional Changes


HOOPS Exchange 2015 Service Pack 1

Format Updates

Format Updated Version
JT 10
Parasolid 27
NX 10



  • Dimensioning and markup/model links have been improved.
  • Piping elements are now supported.


  • User simplified representations are now managed.
  • Dimension positioning, markup/geometry links, and management of assembly part visibility by views has been improved.
  • Family tables are now supported.


  • View filtering has been improved.


  • A new Boolean field, m_bFACETED_BREPAsOneFace has been added to A3DRWParamsIFCData. If this field is true, our reader will merge all facets in a face to a single face, which boosts performance when loading IFC files.

Parasolid Connector

  • Healing can now be enabled or disabled in A3DAsmModelFileTranslateToPkParts. See field A3DRWParamsTranslateToPkPartsData::m_eHealing.
  • New enhancement to ensure Parasolid data remains unmodified when extracted from Parasolid-based formats (NX, SOLIDWORKS, and Solid Edge).
  • An option has been added to allow you to choose between loading "tolerant" or "accurate" entities. See field A3DRWParamsTranslateToPkPartsData::m_eComputeAccurateEdges.

Shattered assemblies

Our shattered assemblies function can now support:

  • NX models that contain reference sets
  • SOLIDWORKS files that contain configurations
  • Creo files that contain family tables

Point cloud projection

  • Instantiated data can now be managed using A3DProjectPointCloudManagerCreateFromRI.
  • Point clouds can now be projected onto tessellated meshes and edges.
  • A new API function is available to project point clouds - A3DProjectPointCloudOnModelFile.
  • Various bug fixes

Functional Changes

HOOPS Exchange 2015 Update 1

Format Updates

Format Updated Version
NX 9.0.2



  • Improved performance
  • Piping is now supported
  • Several bug fixes such as conversion issues, PMI cross highlighting, hidden objects


  • Improved performance
  • Configuration management enhancement
  • Several bug fixes

Functional Changes

HOOPS Exchange 2015

Format Updates

Format Updated Version
Autodesk Inventor 2015
Solid Edge ST7
CATIA V5-6 2014
Creo Parametric 3.0



A new Parasolid bridge is available which leverages the native Parasolid binaries to provide healing as a part of the export process. The result is a higher quality model. You are also able to export directly to an open Parasolid session. See the Programming Guide section 4.2.1 for details.


Our SOLIDWORKS reader now supports diffuse textures and views. Improved support for PMI.

IFC reader

Our IFC reader has a new option pertaining to faceted B-rep. Previously, a single face would be generated for each triangle imported as a part of a faceted B-rep structure. Now, the reader will merge collections of faceted triangles into a single entity by default. You can control this behavior by altering the m_bFACETED_BREPAsOneFace member in the A3DRWParamsIFCData structure.


Our NX reader PMI support is improved.


Better management of markup data positioning.


Our JT file reader now supports ULP (Ultra-Lightweight Precise) B-rep as well as LODs.

Autodesk Inventor

The Autodesk Inventor reader now supports diffuse textures.

Functional Changes

IFC Improvements

  • GUIDs are now included with the minimal set of attributes when loading IFC files.
  • Performance has been improved.

Parasolid export

When exporting Parasolid models, we now keep the topology as close as possible to the original topology in order to prevent topological artifacts.

HOOPS Exchange - v7.2 Changes


Platform updates

CentOS 6.5 is now supported.

Autodesk Inventor reader can now import B-rep

B-rep may now be imported from Autodesk Inventor files. The functionality is provided in beta status.

Please note that this feature may impact the reading of Inventor files in kA3DReadGeomAndTess mode.

Parasolid Export Improvements

By employing a variety of healing techniques, we've continued to improve the quality of our Parasolid export. In addition, if the source file was Parasolid based (i.e. NX, JT, SOLIDWORKS, or Solid Edge) then we'll make extreme efforts to provide the original Parasolid data when you export to Parasolid.

View and PMI Improvements

There has been continued improvements in our visual PMI support with the main focus being CV5, NX, and Creo.

File Reader Improvements

  • Our Rhino reader now supports external references.
  • Extensive quality improvements have been made to both the Rhino and SAT readers.

Functional changes

STEP importer

Our STEP importer now disables healing by default. Healing can be enabled using the m_bHealOrientations flag.

The STEP importer flag m_bSplitSHELL_BASED_SURFACE_MODEL flag controls whether each logical body is put into a separate B-rep entity. Please note that this flag is set to true by default, thus in order to achieve similar results to HOOPS Exchange 7.1.0, this flag should be set to false.

HOOPS Exchange - v7.1 Changes

Format Updates

Format Updated Version
Siemens PLM NX Software 9.0


Better File Management Handling

A new API (A3DAsmGetFilesPathFromModelFile) has been introduced which allows developers to query the file dependencies of a particular assembly. It also returns a missing file list which is the list of files referenced by the assembly that HOOPS Exchange cannot find.

Parasolid Export Improvements

By employing a variety of healing techniques we've continued to improve the quality of our Parasolid export. In addition, if the source file was Parasolid based (i.e. NX, JT, SOLIDWORKS, or Solid Edge) then we'll make extreme efforts to provide the original Parasolid data when you export to Parasolid.

View and PMI Improvements

There has been continued improvements in our visual PMI support with the main focus being CV5, NX and Creo.

STEP Import Improvements

We now use some of the healing capabilities available in HOOPS Exchange to address common problems with STEP files related to face and edge orientation problems.

JT Export now includes View and PMI Support

In this release we extended our JT exporter so that it also exports any Views or PMI that is included with the model.

IFC Improvements

We implemented some optimizations within our IFC reader which will improve loading time with many IFC files.

HOOPS Exchange - v7.0 Changes

Format Updates

Format Updated Version
Parasolid v26.0
Solid Edge ST6


Physical Properties Calculation

A new set of APIs (A3DCurveLength and A3DComputeFaceArea) have been introduced which allow you to calculate the length of edges and the surface area of faces, in addition to existing features which allow to calculate the surface of parts and the volume and center of gravity of parts.

Exact Sectioning

A new set of APIs (A3DComputePlanarSectionOnModelFile and A3DComputePlanarSectionOnRepresentationItem) allow you to cross section a model. The APIs return the exact curves representing the outline of the section as well as the triangles which will represent the interior of the section.

Compare Functionality

A new set of APIs (A3DCompareFaces, A3DCompareFacesInBrepModels and A3DComputeFaceArea) have been added which allow you to check for geometrical differences between two parts. The APIs not only tell you if two parts differ geometrically but also can provide triangles representing the differences between the two models.

Optimizations to approximation of geometry as analytics

A new API (A3DSimplifyModelFileWithAnalytics) allows you to specify which analytics you want to consider approximating a geometry as. For example, excluding whether you want to approximate a surface as a torus can significantly improve the performance of this function.

Welding and Frame Support in Solid Edge

Our Solid Edge reader will now import Welding and Frame data.

View and PMI Improvements

There has been significant improvements in our visual PMI support with a particular focus on CV5, NX and Creo. In addition to bug fixes we now support exploded views for Creo.

Progress Bar Improvements

Improvements were made to the progress bar so that it will more accurately reflect the progress on an import or export operation.

HOOPS Exchange - v6.10 Changes

Format Updates

Format Updated Version
ACIS Up to v23.0
Autodesk Inventor 2014
CATIA V5 V5-6R2013


Ease of Use Improvements

A new set of APIs have been introduced which make it much easier for developers to initialize HOOPS Exchange, to read in a file and to also export a file. With this API a developer can turn a CATIA V5 file into a Parasolid file with just a couple of lines of code. Please refer to the new sample ImportExport for an example of how to use these APIs.

JT Export of PMI Data

Our JT export will now include any of the PMI data that is included in the model.

Tessellate Text Strings

A new function A3DGlobalFontTextTessellationGet() has been added which allows developers to turn a text string with a font definition into a series of triangles. A common use-case here is a developer using this API to turn PMI text data into triangles for use in their visualization system.

Remove BREP information in PRC/PDF export

Developers can now easily remove the BREP definition prior to export to PRC to PDF. This allows developers to potentially sensitive information independent of the import settings.

Honor NX and Creo Application Settings

Developers can now request that our provided View definition with NX files honors the default application "single click" view activation behavior. While in Creo you can now request that the default PMI coloring is the same as the default setting in the version of Creo which authored the file.

HOOPS Exchange - v6.00 Changes

New Platform Support

PlatformArchitectureOperating SystemCompiler
osx_x64 x64 Mac OS X 10.7 gcc/g++ 4.2.1

New Import Formats

Format Supported Versions
Rhino 4, 5

Note, in the current implementation PDF is not supported via the standard read API (i.e. A3DAsmModelFileLoadFromFile()). Instead Developers must first use the function A3DGet3DPDFStreams() to extract the PRC/U3D data from the PDF document and then provide this data to appropriate Exchange or Publish API. An example of using this API is provided in the samples\publish\publishsource\DemoFunctionalities sample.

New Export Formats


Format Updates

Format Updated Version
Siemens PLM NX Software 8.5


Healing and Model Preparation for B-rep export

To address some issues for Parasolid and ACIS customers we now do significant post-processing of the data prior to exporting it to Parasolid or ACIS. This has particular impact when dealing with data which originated in IGES files.

Special handling for IGES Data

IGES data is now pre-processed to address issues which were previously impacting import success rates. This includes dealing with corrupt files as well as using advanced geometric algorithms to massage the data. These geometric algorithms include fixing B-rep orientation errors, closing open loops, adjusting tolerances, etc. This pre-processing has resulted in a slight increase in import time. Developers can also use the new Sew API (see below) to turn logical sets of surfaces into closed solids.

New Sew API

A new API A3DSewBrep() has been added which will sew a series of sheet bodies. The API will create either a Solid or Sheet body depending on the structure of the provided data. A higher-level function A3DAsmModelFileSew() has also been added which will perform a sew on all appropriate entities in a given model file.

Semantic PMI improvements

Our semantic PMI structures have been enhanced to allow developers to determine the plane that a particular plane/axes associated with a particular datum.

Ignore hidden attribute when exporting to Parasolid

Developers can now request that our Parasolid writer exports all entities regardless of the value of their hidden attribute.

HOOPS Exchange - v5.30 Changes

Format Updates

Format Updated Version


New Tessellation Controls

Two new parameters have been added for controlling tessellation:

  • m_bUseHeightInsteadOfRatio
    When m_eTessellationLevelOfDetail is set to kA3DTessLODUserDefined and m_bUseHeightInsteadOfRatio is set to TRUE, the tessellation algorithm is controlled by the m_dMaxChordHeight value. m_dMaxChordHeight specifies the maximum distance between a tessellation triangle and the actual surface geometry.
    When m_bUseHeightInsteadOfRatio is set to FALSE, then the tessellation algorithm is controlled by the m_dChordHeightRatio value.
  • m_dMaximalTriangleEdgeLength
    This parameter specifies the maximum edge length of a tessellation triangle. If it is set to 0, then this parameter is not used when calculating the tessellation.


When reading PMI from a JT file, the link between PMI and its associated geometry is now maintained.

Automatic Healing when Exporting to X_T and SAT

Exchange now automatically heals invalid geometry and topology when exporting to the X_T (Parasolid) and SAT (ACIS) formats.

HOOPS Exchange - v5.20 Changes

Format Updates

A number of file formats were updated to support more current software versions. These format updates include:

Format Updated Version
CATIA V5 V5-62012 (R22)
CATIA V6 2013
Solid Edge ST5

B-Rep Enhancements

Global Copy and Adapt B-Rep

A new function has been added to globally adapt geometry and topology to your modelers specific needs. This function provides the capability to programmatically control the following repair behaviors:

For more information, please see the A3DAdaptAndReplaceAllBrepInModelFile function.

Physical Properties

A new function has been added to return the physical properties of a B-Rep model. These properties include:

For more information, please see the A3DComputePhysicalProperties function.

Point in FACE classification

A function has been added to determine whether a point lies inside or outside of a given FACE. For more information, please see the A3DFaceUVPointInside function.

Geometry Simplification

A function has been added for globally simplifying spline curves and surfaces to their analytic form (such as planes, cylinders, spheres, etc.). For more information, please see the A3DSimplifyModelFileCurveAndSurfaceAsAnalytic function.

PMI Enhancements

Semantic PMI

The data structure for returning semantic P}{MI have been enhanced to return the values of the semantic PMI data. This allows applications to easily read the numeric data associated with feature control frames and other PMI. For more information, please see the A3DMDSemanticFeatureControlFrameGet function.

Associative Datum

A new structure has been added that contains direct links between Datum and other associated entities such as other Datum and model geometry. For more information, please see the A3DMDFCFDrawingRowData data structure.

Text Bounding Box

A function has been added to calculate the 2D bounding box (height and length) for a text string. For more information, please see the A3DGlobalFontTextBoxGet function.

Font File Path

A new data member for specifying the font file path has been added to the A3DFontData structure.

Import Enhancements

Reading Files from Memory

A new function has been added to allow PRC data to be read directly from a memory buffer. Please see A3DAsmModelFileLoadFromPrcStream for more details.

IFC Enhancements

An import option has been added for the IFC reader. You can now specify the code page to use when converting 3D text to Unicode. For more information, please see the A3DRSParamsIFCData structure.

HOOPS Exchange - v5.10 Changes

Format Updates

A number of file formats were updated to support more current software versions. These format updates include:

Format Updated Version
Autodesk Inventor 2013
Creo Parametric 2.0

Interface Changes

Editing Functions

Two new functions have been added to enable editing of Product Occurrences and Part Definitions. Please refer to the Programmers Guide for more information on A3DAsmProductOccurrenceEdit and A3DAsmPartDefinitionEdit.


IGES - Sewing Option

A new structure, A3DRWParamsIGESData, has been added to the A3DRWParamsSpecificLoadData structure to control how IGES files are read. This new structure contains a data member, m_bSewBrepModels, that controls whether Exchange will try to sew IGES surface models into a solid model. Please see the Reference Guide for more information on the A3DRWParamsIGESData data structure.

JT Reader

A number of internal improvements have been made to the JT reader. The results of these improvements are general improvements to the stability of the JT reader.

HOOPS Exchange - v5.0 Changes

Format Updates

A number of file formats were updated to support more current software versions. These format updates include:

Format Updated Version
Industry Foundation Classes (IFC) IFC 2x4
Siemens PLM Software NX NX 8
Solid Edge ST4

New Formats


For HOOPS Exchange v5.0, we have added the capability to save PRC data to ACIS SAT files. This interface allows direct exchange of data with applications that support the SAT format (AutoCAD, Inventor, etc.). It also provides ACIS developers with an easy route to integrate HOOPS Exchange by using Exchange to convert CAD files to SAT format and using ACIS to read the generated SAT data.

In order to have maximum compatibility with other applications (including Autodesk applications like AutoCAD and Inventor), the Exchange SAT exporter writes an ACIS 5.0 format file.

Format Version
ACIS (SAT) 5.0

CATIA V5 Drawings (CATDrawing)

CATIA V5 drawing files (CATDrawing) are now supported. Please see the Drawing Model section of the Reference Manual for more information.

Interface Changes

Precise Measurement

A number of functions have been added to enable precise measurement of PRC B-Rep models. These functions include curve and surface simplification as well as high performance point project functions.

PRC Assembly File Management

Two new functions have been added to help manage subcomponents (parts, sub-assemblies) of a PRC assembly file. The first function extracts the filenames (including path) of all the parts and sub-assemblies referenced by a model file. The second function A3DAsmModelFileLoadFromMultiplePrcFile creates an assembly modelfile from multiple PRC files.