HOOPS Exchange 2024.7.0
Technology Update
Format Updates
Format |
Updated Version |
---|---|
STEP |
AP 242 Ed2 (beta) and Ed3 (beta) |
Parasolid |
37.0 |
Revit |
2025 |
See File Formats for the list of all supported formats.
Beginning with 2024.7.0 release of HOOPS Exchange, STEP AP 242 Edition 2 & 3 is supported in beta state. Although we have not explicitly added any new classes, HOOPS Exchange STEP reader is able to read Edition 2 and Edition 3 files. Thanks to this improvement, the HOOPS Exchange STEP reader is now ready for further evolutions of the STEP standards.
Third-Party Libraries Updates
Below third-party libraries have been updated:
Library |
New Version |
---|---|
ODA |
25.8 |
Within the context of supporting Revit 2025, we have updated the binary dependencies to ODA (Open Design Alliance) to 25.8. This update fixes few bugs related to our Revit support as well as some third party versions are updated adressing reported CVEs. Windows and Linux packages are updated for this version.
For more information about package content, see Distributing Your Application.
See also
New Features
Export wireframe tessellation in JT
The wireframe tessellation stored in A3DRiPolyWireData
can now be exported in JT 8.1, 9.5 and 10.0 using the option m_bWriteWireframe
from A3DRWParamsExportJTData
(this option is set to false by default).
T-Junctions Detection and Removal
A T-junction occurs when two adjacent triangles subdivide the edge of a third triangle, hence forming T-shaped edge junction. T-junctions can cause issues in rendering, such as visible seams and cracks, or problems in simulations and mesh deformations due to the lack of proper vertex connections, leading to geometric inconsistencies.
We now provide a way to repair mesh geometry by removing T-junctions.
This new feature is provided as experimental (see Experimental Features below). It extends the HOOPS Exchange API with a new function and structure:
For more information, see T-Junctions Detection and Removal.
Experimental Features
A new API mechanism is provided to enable experimental API functions. For more information, see Extending HOOPS Exchange.
API Changes
Deprecation: Removal of HOOPS_LICENSE
As of this release, the automatic inclusion of the hoops_license.h header file from HOOPS Exchange headers is deprecated. This change will take effect in the upcoming release, HOOPS Exchange 2024.8.0.
The hoops_license.h file contains the macro definition HOOPS_LICENSE
used to pass the license key when initializing HOOPS Exchange via the function A3DLicPutUnifiedLicense()
.
This change removes the automatic definition of HOOPS_LICENSE
when including HOOPS Exchange header files.
As a reminder, license initialization is currently handled as follows:
A3DStatus result = A3DLicPutUnifiedLicense(HOOPS_LICENSE);
While no code changes are required until the 2024.8.0 release, it is possible to prepare for this change by migrating now. The following migration guide is valid starting with the 2024.7.0 release.
To initialize HOOPS Exchange correctly, you now have three options:
1. Explicitly Include hoops_license.h
You can still explicitly include hoops_license.h in your source code:
#include <hoops_license.h>
// ...
A3DStatus result = A3DLicPutUnifiedLicense(HOOPS_LICENSE);
2. Manually Define HOOPS_LICENSE
Alternatively, you can manually define the HOOPS_LICENSE
macro in your source code before calling A3DLicPutUnifiedLicense()
:
#define HOOPS_LICENSE "Enter the license key"
// ...
A3DStatus result = A3DLicPutUnifiedLicense(HOOPS_LICENSE);
This approach eliminates the need to include hoops_license.h entirely.
3. Pass the License Key Directly
Finally, you can pass the license key directly as a string when calling A3DLicPutUnifiedLicense()
:
A3DStatus result = A3DLicPutUnifiedLicense("Enter the license key");
This method eliminates the need for both the macro definition and the inclusion of hoops_license.h.
For more information, please refer to our Initializing HOOPS Exchange guide and our Set Up Your Environment tutorial.
Documentation Update
HOOPSY
We are excited to introduce HOOPSY our new Documentation AI assistant, now available for HOOPS Exchange and Publish users. This tool leverages advanced AI capabilities to help you find relevant information quickly and efficiently, providing on-demand, multilingual support for your documentation needs.
Key Features
Natural Language Processing (NLP): The assistant understands your queries in everyday language, delivering precise and contextually relevant answers.
Comprehensive Documentation Search: Searches across the HOOPS Exchange and Publish documentation to retrieve the most relevant pages, ensuring you get accurate information for your queries.
Reference Links: Offers direct links to the original documentation, enabling deeper exploration and providing full context to enhance understanding.
Conversation Sharing: Easily share your AI assistant conversations with others for collaborative troubleshooting and knowledge sharing.
Multilingual Support: Supports multiple languages to cater to a global user base, allowing you to interact with the assistant in your preferred language.
Continuous Learning: The AI assistant continuously improves its responses based on user interactions, ensuring it becomes more helpful over time.
Deprecations
These symbols are deprecated. They will be moved to a separate namespace and/or header file and made opt-in starting with version 2025.1.0, and then removed completely in 2026.1.0:
A3DAsmPartDefinitionFeatureTreesGet
A3DAsmProductOccurrenceUnload
A3DCallbackDrawBegin
A3DCallbackDrawBeginFixedSize
A3DCallbackDrawBeginFrameDraw
A3DCallbackDrawBeginLineStipple
A3DCallbackDrawBeginLineWidth
A3DCallbackDrawBeginMaterial
A3DCallbackDrawColor
A3DCallbackDrawCylinder
A3DCallbackDrawEnd
A3DCallbackDrawEndFixedSize
A3DCallbackDrawEndFrameDraw
A3DCallbackDrawEndLineStipple
A3DCallbackDrawEndLineWidth
A3DCallbackDrawEndMaterial
A3DCallbackDrawFont
A3DCallbackDrawGetDrawContext
A3DCallbackDrawMarkupTriangle
A3DCallbackDrawMaterial
A3DCallbackDrawMultMatrix
A3DCallbackDrawPattern
A3DCallbackDrawPicture
A3DCallbackDrawPoint
A3DCallbackDrawPolyLine
A3DCallbackDrawPolygon
A3DCallbackDrawPopMatrix
A3DCallbackDrawProject
A3DCallbackDrawPushMatrix
A3DCallbackDrawSetTessellationPoints
A3DCallbackDrawSymbol
A3DCallbackDrawText
A3DCallbackDrawTriangle
A3DCallbackDrawTriangleFan
A3DCallbackDrawTriangleFanOneNormal
A3DCallbackDrawTriangleFanOneNormalTextured
A3DCallbackDrawTriangleFanTextured
A3DCallbackDrawTriangleOneNormal
A3DCallbackDrawTriangleOneNormalTextured
A3DCallbackDrawTriangleStripe
A3DCallbackDrawTriangleStripeOneNormal
A3DCallbackDrawTriangleStripeOneNormalTextured
A3DCallbackDrawTriangleStripeTextured
A3DCallbackDrawTriangleTextured
A3DCallbackDrawUnProject
A3DComputeOrthoHLROnModelFile
A3DComputeOrthoHLROnModelFile2
A3DDisableHandleSIGSEGV
A3DDraw
A3DDrawGetBoundingBox
A3DDrawInitCallbacks
A3DDrawMarkup
A3DDrawRepresentationItem
A3DEnableHandleSIGSEGV
A3DGetCurveAsAnalytic
A3DGetCurveAsAnalyticFromCoEdge
A3DGetSurfaceAsAnalytic
A3DMkpRTFDelete
A3DMkpRTFGetField
A3DMkpRTFInit
A3DProjectPointCloud2
A3DSimplifyModelFileCurveAndSurfaceAsAnalytic
A3DSurfBaseGetAsNurbs
The A3DSDKDraw.h header.
For more information, please see our Support policies documentation.
Messages will be emitted by the compiler for these symbols. They can be silenced by defining the A3DAPI_IGNORE_DEPRECATED macro before including HOOPS Exchange headers.
Fixed Bugs
As of 2024-11-27
Issue |
Description |
---|---|
SDHE-21929 |
Fixed misplaced geometry in NWD file |
SDHE-21888 |
Fixed incorrect PMI upon importing from 3DXML |
SDHE-21847 |
Fixed undefined behavior while reading from SAT |
SDHE-21819 |
Fixed vulnerability exposed by reading some Parasolid files |
SDHE-21802 |
Fixed garbled names in Creo on Chinese locale |
SDHE-21801 |
Fixed error upon importing from Creo |
SDHE-21616 |
Fixed incorrect behavior in ‘Prefer Face’ projection option |
SDHE-21418 |
Upgraded Zlib dependency to 1.3.1 |
SDHE-20867 |
Improved performances of point projection |