# HOOPS Exchange 2026.1.0

## Technology Updates

### Format Updates

DGN Reader Official Release

Beginning with HOOPS Exchange release 2026.1.0, the DGN reader is officially supported. For more information, see DGN Reader.

See File Formats for the list of all supported formats.

## New Features

Creo Simplified Representation

HOOPS Exchange now provides a way to extract simplified representations as views independent of combined states while importing Creo files. A new option called `m_bReadSimplifiedRepresentationAsView` has been introduced.

## API Changes

For more details about migrating codebase to 2026.x.y, see HOOPS Exchange 2025 to 2026 Migration Guide.

Several API changes have been made in this release, to remove deprecated functions and structures, and to make their naming more consistent. To help with all the renaming you can use the `he_2026_1_api_update.py` located in the `tools` folder of the HOOPS Exchange installation.

- Renamed types:
  - `A3DAsmAttachmentsInfosSLW` is renamed to `A3DAsmAttachmentInfoSLW`
  - `A3DAsmLayerEntity` is renamed to `A3DAsmLayer`.
  - `A3DAsmLayerEntityData` is renamed to `A3DAsmLayerData`.
  - `A3DAsmProductOccurrenceDataProe` is renamed to `A3DAsmProductOccurrenceDataCreo`.
  - `A3DAsmProductOccurrenceDataUg` is renamed to `A3DAsmProductOccurrenceDataNX`.
  - `A3DElementsByRefsetUg` is renamed to `A3DElementsByRefsetNX`.
  - `A3DPromotedBodyUg` is renamed to `A3DPromotedBodyNX`.
  - `A3DRiComputeMeshDataParameters` is renamed to `A3DRiComputeMeshParametersData`.
  - `A3DRWParamsProEData` is renamed to `A3DRWParamsCreoData`.
  - `A3DRWParamsUnigraphicsData` is renamed to `A3DRWParamsNXData`.
- Renamed functions:
  - `A3DAsmGetFilesPathFromModelFile()` is renamed to `A3DAsmComputeFilePathsFromModelFile()`.
  - `A3DAsmLayerEntityGet()` is renamed to `A3DAsmLayerGet()`.
  - `A3DAsmProductOccurrenceGetProe()` is renamed to `A3DAsmProductOccurrenceGetCreo()`.
  - `A3DAsmProductOccurrenceGetUg()` is renamed to `A3DAsmProductOccurrenceGetNX()`.
- Renamed members:
  - In `A3DEMDDimensionSymbolType`, `KEA3DDimensionSymbolTypeUNKNOW` is renamed to `kA3DDimensionSymbolTypeUNKNOWN`.
  - In `A3DEEntityType`, `kA3DTypeAsmLayerEntity` is renamed to `kA3DTypeAsmLayer`.
  - In `A3DAsmProductOccurrenceDataSLW`, `m_uiAttachementsSize` is renamed to `m_uiAttachmentsSize`.
  - In `A3DAsmProductOccurrenceDataSLW`, `m_psAttachements` is renamed to `m_psAttachments`.
  - In `A3DRWParamsSpecificLoadData`, `m_sUnigraphics` and `m_sProE` are renamed to `m_sNX` and `m_sCreo`.
  - In `A3DAsmProductOccurrenceDataCreo`, `m_iProEMemberType` and `m_iProEMemberId` are renamed to `m_iCreoMemberType` and `m_iCreoMemberId`.
  - The enumeration names have been made more consistent:
    - Names starting with `EA3D` now start with `A3DE`, for example: `EA3DMDLineWeldingType` becomes `A3DEMDLineWeldingType`.
    - Names starting with `A3D` now start with `A3DE`, for example: `A3DMDGDTValueType` becomes `A3DEMDGDTValueType`.
    - Names starting with `A3DProE` now start with `A3DECreo`, for example: `A3DProESessionColorType` becomes `A3DECreoSessionColorType`.
    - Value names starting with `A3DProE` now start with `kA3DCreo`, for example: `A3DProEReadConstructEntities_AsDatum` becomes `kA3DCreoReadConstructEntities_AsDatum`.
    - Value names starting with `KEA3D` and `KA3D` have been renamed to `kA3D`, for example: `KEA3DDimensionSymbolTypePROJTOLZONE` becomes `kA3DDimensionSymbolTypePROJTOLZONE`.
    - Value names starting with `kA3DE_` have been renamed to `kA3D_`, for example: `kA3DE_JT81` becomes `kA3D_JT81`.
- Added enum values in `A3DEEntityType`:
  - `kA3DTypeMiscAttributeUnit`
  - `kA3DTypeDrawingCurve3D`
- Removed functions:
  - `deprecated_A3DDrawGetBoundingBox()`. Use `A3DMiscComputeBoundingBox()` with the parameter `A3DMiscComputeBoundingBoxOptions` having `m_bIncludePMI` set to true instead.
  - `deprecated_A3DGetCurveAsAnalytic()`. Use `A3DSimplifyCurveWithAnalytics()` instead.
  - `deprecated_A3DGetCurveAsAnalyticFromCoEdge()`. Use `A3DSimplifyCurveWithAnalyticsFromCoEdge()` instead.
  - `deprecated_A3DGetSurfaceAsAnalytic()`. Use `A3DSimplifySurfaceWithAnalytics()` instead.
  - `deprecated_A3DProjectPointCloud2()`. Use `A3DProjectPointCloud3()` instead.
  - `deprecated_A3DComputeOrthoHLROnModelFile()`. Use `A3DComputeOrthoHLROnModelFile3()` instead.
  - `deprecated_A3DComputeOrthoHLROnModelFile2()`. Use `A3DComputeOrthoHLROnModelFile3()` instead.
  - `deprecated_A3DDisableHandleSIGSEGV()`.
  - `deprecated_A3DEnableHandleSIGSEGV()`.
  - `deprecated_A3DAsmPartDefinitionFeatureTreesGet()`.
  - `deprecated_A3DSurfBaseGetAsNurbs()`. Use `A3DSurfBaseWithDomainGetAsNurbs()` instead.
  - `deprecated_A3DMkpRTFInit()`. Use `A3DMkpRTFFieldCreate()` instead.
  - `deprecated_A3DMkpRTFGetField()`. Use `A3DMkpRTFFieldGet()` instead.
  - `deprecated_A3DMkpRTFDelete()`. Use `A3DMkpRTFFieldDelete()` instead.
  - `deprecated_A3DAsmProductOccurrenceUnload()`. Use `A3DAsmModelFileUnloadParts()` instead.
  - `deprecated_A3DSimplifyModelFileCurveAndSurfaceAsAnalytic()`. Use `A3DSimplifyModelFileWithAnalytics()` instead.
  - `deprecated_A3DPDFInitializePDFLib()`. Use `A3DPDFInitializePDFLibAndResourceDirectory()` instead.
  - `deprecated_A3DPDFDocumentCreateUniquePage()`. Use `A3DPDFDocumentAppendNewPage2()` instead.
  - `deprecated_A3DPDFDocumentAppendNewPage()`. Use `A3DPDFDocumentAppendNewPage2()` instead.
  - `deprecated_A3DPDFDocumentAppendPageFromPDFFile()`. Use `A3DPDFDocumentAppendPageFromPDFFileAndSuffixFields()` instead.
  - `deprecated_A3DPDFDocumentCreateUniquePage2()`. Use `A3DPDFDocumentAppendNewPage2()` instead.
  - `deprecated_A3DPDFDocumentGetUniquePage()`. Use `A3DPDFDocumentGetPage()` instead.
  - `deprecated_A3DPDFDocumentSetPassword()`. Use `A3DPDFDocumentSetPasswordSecurity()` instead.
  - `deprecated_A3DPDFDocumentSetDocumentPermissions()`. Use `A3DPDFDocumentSetPasswordSecurity()` instead.
  - `deprecated_A3DPDFDocumentSave()`. Use `A3DPDFDocumentSaveEx()` instead.
  - `deprecated_A3DPDFImageCreate()`. Use `A3DPDFImageCreateFromFile()` or `A3DPDFImageCreateFromStream()` instead.
  - `deprecated_A3DPDFPageInsertImage()`. Use `A3DPDFPageInsertImage2()` instead.
  - `deprecated_A3DPDFDefineViewCarousel()`.
  - `deprecated_A3DPDF3DArtworkCreate()`. Use `A3DPDF3DArtworkCreate2()` instead.
  - `deprecated_A3DPDFAnimMotionCreate()`. Use `A3DPDFAnimMotionCreate2()` instead.
  - `deprecated_A3DPDFDocumentAddImageAsIcon()`. Use `A3DPDFDocumentAddImageAsIcon2()` instead.
  - `deprecated_A3DPDFTableCreate()`.
  - `deprecated_A3DPDFDefineSlideTable()`.
  - `deprecated_A3DPDFDefineSlideTable2()`.
  - `deprecated_A3DPDFSlideTableLinkTo3DNodes()`.
  - The `A3DAsmProductOccurrenceGetLayerList()` function is removed. Please use instead the `A3DAsmLayer` entities in `A3DAsmProductOccurrence`.
  - All the other functions from the draw module have also been removed.
- Removed types:
  - `deprecated_A3DRTFFieldData`. Use `A3DMkpRTFFieldData` instead.
  - `deprecated_A3DPDFPageData`. Use `A3DPDFPageData2` instead.
  - `deprecated_A3DPDFImageData`.
  - `deprecated_A3DPDF3DArtworkData`. Use `A3DPDF3DArtworkData2` instead.
  - `deprecated_A3DPDFAnimMotionData`. Use `A3DPDFAnimMotionData2` instead.
  - `deprecated_A3DPDFTableData`.
  - The deprecated `A3DAsmLayer` structure is removed.
- Removed members:
  - In `A3DStatus`, `A3DPDF_CANNOT_LOAD_TABLETOPDF_DLL`, `A3DPDF_HTML_TABLE_ERROR`, `A3DPDF_HTML_STYLE_ERROR` have been removed.
  - In `A3DETessellationLevelOfDetail`, `deprecated_kA3DTessLODControlledPrecision` has been removed.
  - In `A3DEStepFormat`, `deprecated_kA3DStepAP242` has been removed.
  - In `A3DRWParamsGeneralData`, `deprecated_m_iNbMultiProcess`.
  - In `A3DRWParamsTessellationData`, `deprecated_m_dMinimalTriangleAngleDeg`.
  - In `A3DRWParamsIGESData`, `deprecated_m_bSewBrepModels`.
  - In `A3DAsmProductOccurrenceDataJT`, `deprecated_m_usValidDisplayFields`.
  - The `kA3DFontStreched` macro constant has been removed, please use `kA3DFontStretched` instead.

## Documentation Changes

### Expanded File Formats Information

The File Formats section of Getting Started now contains expanded information on format-specific features supported by HOOPS Exchange readers and writers. Simply click the format titles in the Import and Export tables for more detailed information.

## Deprecations

These symbols are deprecated. They will enter the opt-in stage in 2027.1.0, and then be removed completely in the 2028.1.0 release:

- `A3DAsmProductOccurrenceData::m_ucBehaviour`
- `A3DAsmModelFileDelete()`
- `A3DDllActivateXMLTrace()`
- `A3DFaceUVPointInsideManagerDelete()`
- `A3DGraphicsDelete()`
- `A3DMiscCascadedAttributesDelete()`
- `A3DMkpRTFFieldDelete()`
- `A3DProjectPointCloudManagerDelete()`
- `A3DXmlParsing()`
- `A3DPDFCheckBoxSetForFitSelectedMode()`
- `A3DPDF3DAnnotGetJavascriptHighlightManagerName()`

## Fixed Bugs

Issue | Description
--- | ---
SDHE-23123 | Fixed unexpected behavior when importing corrupted iges file.
SDHE-23044 | Fixed an access violation to an uninitialized TfMarkupTessData when all markup symbol entities contain only Note.
SDHE-23033 | Fixed unexpected behavior when importing corrupted iges file.
SDHE-23031 | Fixed unexpected behavior when importing corrupted iges file.
SDHE-23030 | Fixed unexpected behavior when importing corrupted iges file.
SDHE-22779 | Resolved a security issue (CVE) in the U3D reader
SDHE-22722 | Handled IGES export of root product-occurrence placements and general transformations with uniform scale.
SDHE-22645 | Added type kA3DTypeDrawingCurve3D to the API.
SDHE-22521 | Flatten Contours and Rosette are now also linked to correct feature node (CATCoFlattenBodyFeatName).
SDHE-22235 | Improve the Parasolid reader and file format check to reliably process files larger than 2 GB
SDHP-2937 | Fixed support of semantic texts surrounding datums in STEP AP242.
SDHP-2936 | Fixed default values for frame and score in dimensions for STEP export.
SDHP-2931 | Fixed iType mismatch in Step242 export.

- HOOPS Exchange 2025 to 2026 Migration Guide

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Exchange in your own language, or choose a sample question below to start a conversation:

What is HOOPS Exchange?
What are the latest release notes for HOOPS Exchange?
How do I start evaluating HOOPS Exchange?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...