Release Notes
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 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
- Linux:
- Minimum OS version for CentOS upgraded from 6.x to 7
- Compiler toolchain version upgraded from GCC 6.5 to GCC 8
- Android:
- Compiler toolchain version upgraded from NDK 11c to NDK R18b
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:
- Windows
- ImageMagick.dll
- Unix
- libImageMagick.so
Because of the removal of ImageMagick, the following image formats are not supported anymore by our readers:
- Autodesk Animator (CEL)
- Enhanced MetaFile (EMF, only supported on Windows platforms)
- Interleaved Bitmap (ILBM)
- PiCture eXchange (PCX)
- Adobe PhotoShop (PSD)
- Tagged Image File Format (TIFF)
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:
- Linux:
- Minimum OS version for CentOS upgraded from 6.x to 7
- Compiler toolchain version upgraded from GCC 6.5 to GCC 8
- Android:
- Compiler toolchain version upgraded from NDK 11c to NDK 19c
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:
- When creating a new model file with A3DAsmModelFileCreate, if the provided data doesn't have any product occurrence, a root will be implicitly created.
- Any model file with no root product occurrence is considered inconsistent. When getting a model file using A3DAsmModelFileGet, the function returns
A3D_MODELFILE_INCONSISTENT_EMPTY
.
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:
- Within the same Representation Item all meshes with the same materials are grouped together.
- An assembly node will no longer be created for each Representation Item.
- A post process fixes vertex duplication and manages instancing.
See also
Features Improvements
We added the reading of new feature types:
- Mirroring: kA3DFRMEnumValue_CadType_Mirror
- Translation: kA3DFRMEnumValue_CadType_Translate
- Rotation: kA3DFRMEnumValue_CadType_Rotate
- Symmetry: kA3DFRMEnumValue_CadType_Symmetry
- Warning
- Not all feature types are supported by all readers.
See also
- EA3DFRMEnumValue_CadType
- Reading the Feature Tree
- Feature Tree Reference
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
- Added
3DS
import for macOS and Linux. - Added
COLLADA
for macOS and Linux. - Added
OBJ
export for Windows, macOS and Linux. - Added
OBJ
import for macOS and Linux. - Added
Revit
for Linux
See also
Compilation Toolchain Changes
- Linux
- As mentioned in the previous release, Linux binaries are now compiled using CentOS 6 and built with devtoolset 6.
- g++/gcc 6.5 (new ABI)
- macOS
- We now support macOS 10.10 Yosemite and Xcode 8.3.
- Android
- Android NDK 11c - Clang with
gnustl_static
- Android NDK 11c - Clang with
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:
- Import and export tessellated model (triangles only), position, colour and material/texture. (The texture information is exported as external files, they are not embedded in the FBX files.)
- No animation data or information will be imported or exported. Polylines (PMI etc.), point clouds and meta data will be ignored, both for import and export.
- B-rep and 3D curves are not supported.
- Assembly files are exported to a unique FBX file which contains the assembly, any sub-assemblies and the part files.
See also
New format support: Autodesk Revit (official support)
Supported versions and platforms:
- Revit 2015 to 2019 inclusive
- Windows and Linux
- 64 bits only.
Support for Revit contains:
- Import
.rvt
files and.rfa
files - Import tessellated objects
- Support for colour and transparency
- Ability to sort, gather and display objects by level (storey/floor), and then on each level categories are collected together. Each level has a metadata
TYPE = IFCBUILDINGSTOREY
- Import 3d views (change visibility + set camera)
Not supported:
- Link to external Revit files.
- Views only handle the ability to change visibilities. You cannot change the LOD (level of detail), the color or rendering mode.
- Revit metadata.
- Floor plans or drawing sheets.
- "Crop Region" from views.
- Textures.
- Instance: In case of identical
.rfa
files imported multiple times, the tessellation will simply be duplicated.
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:
A3DAsmGetFixedComponents()
A3DAsmGetFixedTogetherComponents()
A3DAsmGetFlexibleComponents()
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.


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.

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:
A3D_LOAD_FILE_TOO_OLD
if the input format is too old for HOOPS Exchange.A3D_LOAD_FILE_TOO_RECENT
if the input format is too recent for HOOPS Exchange.
As of version 2019, this functionality is available with the formats below:
- CATIA V5
- Creo - Pro/E
- GL Transmission Format
- Autodesk Inventor
- JT
- NX - Unigraphics
- Revit
- Rhino3D
- Solid Edge
- SolidWorks
- U3D
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:
m_uiFeatureBasedEntitiesSize
(A3DUns32
) is the size of the array andm_ppFeatureBasedEntities
(A3DFRMFeatureTree**
) is a pointer to the array.
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:
IFCTESSELLATEDFACESET
IFCADVANCEDBREP
IFCADVANCEDBREPWITHVOIDS
IFCINDEXEDPOLYCURVE
(from IFC 4 Addendum 2)IFCPOLYGONALFACE
(from IFC 4 Addendum 2)
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
.
A3DMDToleranceSizeData
is a concatenation on a line of dimensions for defining an element. For example, for a hole we can have anA3DMDToleranceSizeValueData
for the depth and aA3DMDToleranceSizeValueData
for the diameter.A3DMDToleranceSizeValueData
: Contains a dimension value and an enumerator specifying type of dimension. And information like the symbol before the value.A3DMDToleranceSizeGet()
can be called to fill in anA3DMDToleranceSizeData
instance.A3DMDToleranceSizeValueGet()
can be called to fill in anA3DMDToleranceSizeValueData
instance.
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:
kA3DRead_3D
: Read 3D onlykA3DRead_Drawings
: Read Drawings onlykA3DRead_Both
: Read 3D and drawings
See Also
A3DRWParamsGeneralData
- Simple load and export
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
A3DComputePhysicalProperties
- Getting physical properties
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
A3DCopyAndAdaptBrepModelData
- Getting B-Rep
New option for sewing
A new structure is added which allows to customize sew: A3DSewOptionsData
. This implies changes in the signature of following functions:
A3DSewBrep
A3DAsmModelFileSew
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
A3DSewOptionsData
- Model Sewing
New documentation for incremental load
New documentation is available for performing an incremental load.
Other C API Changes
A3DCollisionParameterData
: renamedm_dTesselationTolerance
tom_dTessellationTolerance
.A3DRWParamsTranslateToPkPartsData
: renamedm_bUseUTF8ForNameAttribute
tom_bUseUNameAttribute
.A3DTopoItemOwnersManagerGet()
: function parameters changed.A3DTopoItemOwnersGet()
: function parameters changed.
HOOPS Exchange 2018 SP2 U2
Fixed Bugs
Issue Number | Description |
---|---|
31547 | Add/Implement support of additional search directories for XML files |
31755 | SolidEdge Assemblies Missing parts, loading from PRC is OK |
32284 | A3DLicPutUnifiedLicense called twice returns -34 |
32361 | Collision isn't detected |
32380 | Empty model when loading XML |
32426 | HOOPS Exchange does not identify proper Clearance or Collision result |
32479 | A3DTopoEdgeGetSurfaces() crashes |
C API Changes
HOOPS Exchange 2018 SP2 U1
Format Updates
Format | Updated Version |
---|---|
Inventor | 2019 |
Fixed Bugs
Issue Number | Description |
---|---|
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
Format | Updated Version |
---|---|
Creo | 5 |
New Format Support (Summary)
Format | Import/Export | Platforms |
---|---|---|
3D Studio .3ds | Import Only | Windows Only |
AutoCAD .dwg .dxf | Import Only | Windows/Linux/Android (new) |
COLLADA .dae | Import Only | Windows Only |
DWF .dwf .dwfx | Import Only | Windows/Linux |
glTF .gltf .glb | Import Only | Windows/Linux/Mac |
Revit .rvt .rfa | Import Only | Windows 64 bits only |
Wavefront .obj | Import Only | Windows 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.
glTF
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.
AutoCAD DWF
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.
AutoCAD DWG DXF
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.
SolidWorks
Datum entity visibility can be controlled by option A3DRWParamsSolidworksData::m_usDisplayVisibleDatum.
Rhino
You can switch between colors or material with A3DRWParamsRhinoData::m_bForceRenderedModeColors. The default parameter sets to use materials.
JT
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:
A3DRWParamsTessellationData::m_bAccurateSurfaceCurvatures
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)


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:
File | API | Change |
---|---|---|
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/he_2018_2_api_update.py 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 Number | Description |
---|---|
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
Format | Updated Version |
---|---|
Catia V5 | V5_6R2018 |
NX | 12 |
Parasolid | v30.1 |
Acis | 2018 (R28) |
Rhino | 6 |
Enhancements
C++ API
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
SolidWorks
Support for SolidWorks Virtual Components. A Virtual Component is a component that is embedded inside the assembly file rather than being an external reference.
NX
Improved the support and handling of very large assemblies.
3DXML
Improved the quality of the default view.
JT
JT views have been improved to fix exploded view problems.
Miscellaneous
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 Number | Description |
---|---|
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 Number | Description |
---|---|
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
Format | Updated Version |
---|---|
SolidWorks | 2018 |
SolidEdge | ST10 |
New Formats: DWG and DXF
DWG and DXF Support. Exchange now supports DWG and DXF Drawings and 3D as input formats.
JT
The following enum identifiers in A3DEJTReadTessellationLevelOfDetail have changed: JTTessLODLow, JTTessLODMedium, JTTessLODHigh.
These identifiers now have a "kA3D" prefix: kA3DJTTessLODLow, kA3DJTTessLODMedium, kA3DJTTessLODHigh.
Parasolid
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).
3DXML
B-rep is now supported with our 3DXML reader.
Enhancements
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.
Miscellaneous
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 Number | Description |
---|---|
29270 | Parsing error when reading IPT file in tess only. |
29593 | Cyrillic characters get lost at Export |
30087 | NX 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 |
Enhancements
Parasolid
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 Number | Description |
---|---|
27553 | Creo PMI issue |
28638 | CV5 PMI issue |
29269 | CV5 PMI issue |
29537 | NX PMI issue |
29615 | A3DAsmGetFilesPathFromModelFile issue |
29693 | Export to StepZ issue |
29756 | NX PMI issue |
HOOPS Exchange 2017 SP2
Format Updates
Format | Updated Version |
---|---|
Catia V5 | V5_6R2017 |
Inventor | Inventor 2018 |
Parasolid | v30 |
Acis | 2017.1 (R27) |
Enhancements
Parasolid
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).
IGES
Export to IGES is now available on the iOS platform.
Step
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.
STL
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 / Component | Description |
---|---|
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
MAPPED_ITEM support |
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 Number | Description |
---|---|
28051 | PRC issue |
28162 | Forward PRC compatibility |
28238 | ACIS export issue |
28299 | Solidedge Assembly issue |
28506 | Forward PRC compatibility |
28810 | STEP export issue |
28821 | Catia V5 issue |
28919 | Catia V5 issue |
28932 | SolidEdge issue |
28956 | SolidEdge issue |
28973 | VRML issue |
29024 | ACIS issue |
29081 | Solidworks Default View support |
29101 | STEP export issue |
29144 | Catia V5 issue |
HOOPS Exchange 2017 SP1 U1
Fixed Bugs
Issue Number | Description |
---|---|
27593 | CV5 reading issue |
27757 | CAT Drawing – Line Pattern |
27891 | 3DXML Color issue |
27893 | 3D XML visibility issue |
27918 | JT ULP |
27953 | JT - Fix PMI link with geometry |
28314 | Step Export – scale issue |
28652 | STL read on Linux |
28840 | Solidworks reading issue |
28457 | Creo reading issue |
28828 | Loop closing algorithm |
28816 | DLL 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
Format | Updated Version |
---|---|
Creo | 4.0 |
New Formats
HSF
- HOOPS Exchange now supports the HOOPS Stream Format.
File Reader Enhancements
STEP
- Semantic PMI are now supported for both read and write operations.
ACIS
- Custom attributes are now supported.
Rhino
- 2D & 3D wires are now supported.
JT
- 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 Number | Description |
---|---|
26075 | Publish template: fix issue with data field |
26843 | SLW unit in Incremental load: fix issue |
27764 | SLW Physical properties unit: fix issue |
27799 | JT Brep face creation error: loading tessellation instead of B-Rep |
28025 | ACIS Export: fix issue |
28029 | Poster Generation Improvement in memory management |
28116 | JT 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 Number | Description |
---|---|
26843 | Solidworks Config product occurrence importing in mm. |
27764 | For 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
JT
- HOOPS Exchange can now export JT 9.5 files. This new version also supports views, PMI, mesh and exact geometry.
3MF
- 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
- Parasolid users can now export Parasolid data in their session using multiple processes. Please see the function A3DRepresentationItemsTranslateToPkPartsMultiProcess for more details.
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.
Enhancements
Creo
- 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.
SolidWorks
- Fixed some issues related to a specific SolidWorks Education version.
- Hierachical configuration management has been improved.
STEP
- 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.
NX
- Some issues have been fixed with NX files that embed JT data.
Others
- 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
- A new function has been added to determine if a Markup is described in the screen coordinate system: A3DMarkupPositionIsScreenLocation.
- An executable has been added in our binaries directory to export Parasolid files using Multi-process; see the function A3DRepresentationItemsTranslateToPkPartsMultiProcess.
Fixed Bugs
Issue Number | Description |
---|---|
27359 | Error when loading an NX file with PMI |
27375 | Error when loading a Creo file with PMI |
27388 | Error when loading a V5 file with PMI |
27331 | Issue when using HLR functionality on Linux |
27412 | Fixed 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
STEP
- 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
- Parasolid customers now have the ability to use multi-process when exporting assemblies into Parasolid.
Creo
- Better management of screen notes.
Inventor
- 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.
Other
- 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
3DXML
- Fixed various issues
CATIA V5
- Support of V5_6R2016
- PMI improvements
NX
- Improved file support
Solidworks
- 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 libA3DLIBS.so pointing to libA3DLIBS.9.1.3.so.
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
CatiaV5
- Fixed various issues regarding CGR files.
STEP
- 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
CATIA V5
- 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
Creo
- 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
JT
- Fix for conversion issue on specific parts
STEP
- 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
SolidWorks
- 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
IFC
- 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
Density
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
Creo
- 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
SolidWorks
- Several enhancements related to configuration, memory, and PMI
- Several bug fixes
Inventor
- 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.
JT
- Support for JT file created from Daimler NX version (JT Version 10.0 DM 8.1.3.3)
- Enhancement density and PMI views
CATIA V5
- Persistent IDs now supported
- Several enhancements related to reader performance
- Enhancement related to graphical PMI
- Enhancement related to markup linked items
- Several bug fixes
NX
- Support for files created by NX Daimler version 10.0.4
- Several bug fixes to reader and PMI
IGES
- Enhancement to orientation computation
- Several bug fixes
Parasolid
- 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
Enhancements
- The HOOPS Exchange API will now avoid splitting parametric surfaces. You can now compute parametric curve that cross periodic surface boundaries. The result is better performance and a better overall model, as the topology of the B-rep doesn't change (previously, a split could cut a cylinder in two half cylinders).
- There are general improvements in performance and quality with our AdaptAndReplaceAllBrepInModelFile function.
- HOOPS Exchange is now about to detect degenerate surfaces or continuous surfaces. See API functions A3DSurfIsDegenerated and A3DSurfIsG1Continuous.
New API functions
New data structures added to A3DMiscMaterialPropertiesData
Other data structures, fields, and types
New error messages
Functional Changes
- A3DAsmProductOccurrenceData::m_uiAssemblyMaterialAndVisualisationSetupSize removed
- A3DAsmProductOccurrenceData::m_psAssemblyMaterialAndVisualisationSetup removed