#######################
HOOPS Exchange 2025.1.0
#######################

Technology Update
=================

Format Updates
--------------

================== ==================== 
*Format*           *Updated Version*
================== ====================
Parasolid          14.0 (Export)
Solid Edge         2025
SolidWorks         2025
================== ====================

See :doc:`/start/supported-formats` for the list of all supported formats.

Third-Party Libraries Updates
-----------------------------

Below third-party libraries have been updated:

================== ==================== 
*Library*          *New Version*
================== ====================
libexpat           2.6.2
================== ====================

For more information about package content, see :doc:`/distributing`.

Platform Changes
----------------

HOOPS Exchange support has now been extended to Linux on ARM64 (ARMv8-A).  
The minimum supported OS is RHEL 8 with Devtoolset 9.  

See our :doc:`/start/supported-platforms` page for details.  

Removal of ``HOOPS_LICENSE``
----------------------------

As of **HOOPS Exchange 2025.1.0**, the automatic inclusion of the *hoops_license.h* header file from HOOPS Exchange headers has been removed.
This change, first introduced as a deprecation in **2024.7.0**, is now mandatory and in full effect.

.. rubric:: Key Changes

* The ``HOOPS_LICENSE`` macro is no longer automatically defined unless *hoops_license.h* is explicitly included.
* Developers are required to explicitly include *hoops_license.h*, manually define the ``HOOPS_LICENSE`` macro, or pass the license key directly in their code when initializing HOOPS Exchange via the function :cpp:func:`A3DLicPutUnifiedLicense`.

To initialize HOOPS Exchange correctly, the :cpp:func:`A3DLicPutUnifiedLicense` function expects a C-string value containing your license information.
You may either directly pass this value in parameter or explicitly include *hoops_license.h* to get access to the ``HOOPS_LICENSE`` macro.

For more details, please refer to our :doc:`/guide/basic_operations/initialize-hoops-exchange` guide and our :doc:`/tutorials/environment-setup` tutorial.

Other Changes
-------------

* Added a new option :cpp:member:`~A3DRWParamsRevitData::m_bReadEmptyAttributes` to be able to read attributes with empty value from Revit format.


Documentation Changes
=====================

The documentation has been extended to provide a detailed overview of the recently introduced **C# API**. This new API layer enables developers to integrate HOOPS Exchange functionality using C# for enhanced flexibility and platform support.

For more information on this new API, please refer to the following resources:

* :doc:`/api/cs`
* :ref:`platforms_cs_cpp_support`
* :doc:`/tutorials/cs/index`
* :doc:`/sample_codes`


Deprecations
============

The deprecated symbols have been renamed and moved to the new ``A3DSDKDeprecated.h`` header.

The ``A3DSDKDraw.h`` header has been removed.
For more information, see :doc:`/extension`.


Package Changes
===============

From-the-vault package removal
------------------------------

The "from-the-vault" package which used to contain unsupported formats like Lattice XVL, has been removed from the standard delivered packages.
If you are interested in those formats and require the package, please reach out to our Support team.

DLL name change (Unix)
----------------------

On Unix platforms, the name of HOOPS Exchange library files has changed to conform better to usual naming standards:

* **GNU/Linux**: ``libA3DLIBS-25.1.0.so`` is changed to ``libA3DLIBS.so.25.1.0``.
  ``libA3DLIBS.so`` is still provided and is now a symlink to the new file name.
* **macOS**: ``libA3DLIBS-25.1.0.dylib`` is changed to ``libA3DLIBS.25.1.0.dylib``.
  ``libA3DLIBS.dylib`` is still provided and is now a symlink to the new file name.

For more information about package files, see :doc:`/distributing`.

New DLL for Evaluators
----------------------

A new DLL called *a3dttd.dll* has been introduced in the HOOPS Exchange package.
This DLL is a pre-requisite to initalize HOOPS Exchange with a trial license.
The DLL is not required while initializing HOOPS Exchange with long term perpetual license.
The DLL is used to collect telemetry data useful for improving user experience.
More information can be found `here <https://techsoft3d.atlassian.net/wiki/x/RgJJ0>`__.


Fixed Bugs
==========

.. csv-table::
  :header: "Issue", "Description"

  "SDHE-22190", "Fixed issue with missing points in DWG file import"
  "SDHE-22105", "Fixed issue in getting the File Units with the API A3DAsmModelFileGetUnit()."
  "SDHE-22014", "Improved the import time required for Creo files with DXF elements"
  "SDHE-21970", "Fixed issue with import time of specific CATIA part"
  "SDHE-21917", "Fixed issue with PMI visibility in some configurations from SolidWork files "
  "SDHE-21890", "Improved handling of hidden Creo bodies"
  "SDHE-21839", "Improved support of Tolerance types in STEP Import"
  "SDHE-21836", "Improved support of Tolerance types in STEP Import"
  "SDHE-21787", "STEP PMI loading in TcVis (JT)"
  "SDHE-21748", "Fixed lost status of surfaces in Creo"
  "SDHE-21639", "Improved handling of hidden Creo bodies"
  "SDHE-21509", "Issue with Attribute Loss During Exchange Parsing"
  "SDHE-21230", "Fixed issue with lost Textures during GLB export"
  "SDHE-20398", "Improved handling of hidden Creo bodies"
  "SDHE-20139", "Improved algorithm to have accurate STEP file generation for a given ACIS file."
  "SDHE-19533", "Improved SAT to STEP file conversion."
  "SDHE-19048", "Improved SAT to STEP file conversion."
  "SDHE-18236", "Fixed issue in STEP export when similar material from JT files were merged."
  "SDHE-12337", "Fixed error while exporting SLW to SAT"
