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.

../_images/advanced_t_junction_before_after.svg

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