2025.0

New featureLuciadLightspeed

It is now possible to visualize OGC 3D Tiles 1.1 datasets in a Lightspeed view, next to the existing support for version 1.0. For more detail, see the API documentation of the TLcdOGC3DTilesModelDecoder.

New featureLuciadLightspeed

The TLcdOGC3DTilesModelEncoder now allows specifying the OGC 3D Tiles version when encoding 3D Tiles. The version can be set using the setTileSetVersion method, which accepts an ELcdOGC3DTilesVersion argument.

  • The default version is VERSION_1_0, which is the earlier version of the OGC 3D Tiles specification.
  • Not all features of VERSION_1_1 are used. An overview of differences between data exported with the two versions can be found in the ELcdOGC3DTilesVersion javadoc.

New featureLucy (LuciadLightspeed)

Lucy now supports the DWG and DGN file formats natively in Lightspeed views, including its styling. To enable this capability, two new add-ons have been added: Note that the DWG format add-on doesn't support splitting the models in multiple layers yet.

New featureLucy (LuciadLightspeed)

Lucy now supports connections to Azure Maps, a geospatial mapping service provided by Microsoft. It offers data such as worldwide road maps and high-resolution imagery. To enable this capability, two new add-ons have been added:

New featureLuciadLightspeed

Added support for Azure Maps, a geospatial mapping service provided by Microsoft. It offers data such as worldwide road maps and high-resolution imagery. You can decode an Azure Maps model for a desired map and visualize the resulting data in GXY and Lightspeed views.

For more details, see the Azure Maps entry in the Data Formats documentation section.

Please note that Azure Maps is introduced by Microsoft as the successor of Bing Maps. Only enterprise account customers can continue using Bing Maps for Enterprise services until June 30th, 2028. Free (Basic) account customers can no longer use Bing Maps and need to switch to Azure Maps.

New featureLuciadLightspeed

TLspMagnifierController now has an additional constructor that allows the user to pass a TLspMagnifierController.OverlayShape. This sets the shape of the overlay used for the controller to either a circle or square.

New featureInfrastructure Standards

You can now display DGN data on a Lightspeed view with proper styling.

See TLspDGNStyler and TLspDGNLayerFactory for details.

The existing limitations of decoded objects and styling in GXY still apply.

New featureInfrastructure Standards

You can now display DWG and DXF data on a Lightspeed view with proper styling.

See TLspDWGStyler and TLspDWGLayerFactory for details.

The existing limitations of decoded objects and styling in GXY still apply.

ImprovementLuciadLightspeed

LCD-10696
The TLcdGeoPackageModelEncoder and TLcdGeoPackageModelEncoder now offer support for encoding and decoding elements with a TLcdLonLatGeoBuffer as shape.

ImprovementLucy (LuciadLightspeed)

Lucy now supports OGC 3D Tiles 1.1 visualisation in Lightspeed views. The capability for OGC 3D Tiles visualisation has been centralized in the new TLcyLsp3DTilesFormatAddOn. The existing TLcyLsp3DTilesB3DMFormatAddOn and TLcyLsp3DTilesPNTSFormatAddOn have been deprecated in favor of the new TLcyLsp3DTilesFormatAddOn. The settings in workspaces saved in older versions will automatically be migrated when using the new add-on.

ImprovementLuciadLightspeed

LCD-13721
TLcdPrimaryKeyAnnotation now has
  • A isAutoGenerated() method to determine if the primary key is autogenerated or not. When it is not known if the key is autogenerated or not, false is returned.
  • A TLcdPrimaryKeyAnnotation(TLcdDataProperty, boolean) constructor to specify whether the key is autogenerated or not.

ImprovementLuciadLightspeed

LCD-13685
TLcdGeoJsonModelEncoder can now encode properties of types java.time.Instant and java.time.Duration. By default, these properties are encoded as a Unix timestamp in seconds, and a duration in seconds respectively. To override the default behaviour, for example to encode ISO timestamps instead, you can configure a custom TLcdFeatureMetaDataProvider on the TLcdGeoJsonModelEncoder.

ImprovementLuciadLightspeed

When using the class TLcdTransportFactory, you can now control the number of retry attempts for HTTP 429 and HTTP 503 errors using the newly added methods setRetryCount(int) and getRetryCount().

ImprovementLuciadLightspeed

LCD-13666
The TLcdGeoTIFFModelEncoder now supports writing ALcdBasicImage and ALcdMultilevelImage instances having values of type double.

ImprovementLucy (LuciadLightspeed)

LUCY-5077
TLcyGenericMapManager and ILcyMapManager now have a List accessor for their map components.

ImprovementDatabase Connectors

LCD-13873
The TLcdPostGISModelDecoder and TLcdPostGISModelEncoder now have support for the following geometry types:
MULTICURVE
MULTISURFACE
CURVEPOLYGON
COMPOUNDCURVE

ImprovementDatabase Connectors

LCD-13693
TLcdOracleSpatialModelDecoder and TLcdOracleSpatialModelEncoder are now able to handle columns of type TIMESTAMP WITH TIME ZONE. These columns are modeled as a TLcdDataType with instance class java.time.ZonedDateTime.

ImprovementOGC Server

LCD-13696
The WFS server has been made more flexible with respect to acceptable geometry types in Transaction requests. A format for which the data model had a TLcdShapeListAnnotation always required a MultiGeometry GML element in the past. This was for example the case for database formats. For such formats, the WFS server now accepts both single geometry types (e.g. Point, LineString or Polygon) and multi geometry types. This improves the interoperability with other WFS-T clients, such as Hexagon's GeoMedia application.

ImprovementDefense Standards

TLcdNITFModelDecoder#discoverDataSources now provides two data sources.
  • The first data source can be used to decode the NITF data into a georeferenced model, similar to the data source returned in the past. The resulting model can be used to visualize the data in georeferenced GXY or Lightspeed view.
  • The second data source can be used to decode the NITF data into a non-georeferenced model. This model is an ILcdModelTreeNode with a sub-model for each NITF data segment. The resulting model can be used to visualize the data in a GXY view with a CRS:1 reference or to publish the data in a LuciadFusion WMS service that has CRS:1 reference support. This is described in the LuciadFusion article "How to set up a non-georeferenced WMS".

ImprovementDefense Standards

The libjpeg-turbo library is now used to decode JPEG images in NITF files. The use of this library fixes the handling of images that use a YCbCr color space. Those were incorrectly displayed with red and green colors in the past.

ImprovementInfrastructure Standards

A Linux ARM 64-bit version of the libxatlas native library has been added to the release. This allows LuciadFusion to publish 3D mesh data in an OGC 3D Tiles service and the 3D Tiles Processing Engine to run on a Linux ARM 64-bit machine.

ImprovementInfrastructure Standards

The TLcd3DTilesProcessorBuilder now allows specifying the OGC 3D Tiles version when creating the 3D Tiles processor. The version can be set using the tileSetVersion method, which accepts an ELcdOGC3DTilesVersion argument.

  • The default version is VERSION_1_0, which is the earlier version of the OGC 3D Tiles specification.
  • Not all features of VERSION_1_1 are used. An overview of differences between data exported with the two versions can be found in the ELcdOGC3DTilesVersion javadoc.

ImprovementInfrastructure Standards

The myVRDatakitConverter library has been upgraded to version 2025.03.77665. The release now also comes with a Linux ARM 64-bit version of this library, enabling the use of the TLcdRevitModelDecoder and the TLcdNWDModelDecoder on this platform.

ImprovementInfrastructure Standards

LF-2665
It is now possible to specify a ForkJoinPool on the TLcd3DTilesProcessorBuilder to use to perform asynchronous tasks during the preprocessing of 3D Tiles. If no ForkJoinPool is specified, the common ForkJoinPool will be used by default (see ForkJoinPool.commonPool()). To configure the ForkJoinPool on the TLcd3DTilesProcessorBuilder, you can use the method TLcd3DTilesProcessorBuilder.forkJoinPool.

Bug fixLuciadLightspeed

LCD-13867
Fixed a bug where TLcdOGC3DTilesModelEncoder could fail when encoding an empty payload.

Bug fixLuciadLightspeed

LCD-13874
Fixed an issue where the OSGi sample did not work on Windows 11.

Bug fixAdvanced Raster Connectors

LCD-13875
TLcdGeospatialPDFModelDecoder#decode left files open even after ILcdModel#dispose was called. As a result, decoded files could not be renamed or removed until the JVM process exited.

Bug fixDatabase Connectors

LCD-12654
Fixed an issue that prevented the TLcdMSSQLModelEncoder from creating a spatial index if a schema was used in the table name. This also fixes the issue of not being able to export any data when a schema was used in the table name.

Bug fixDatabase Connectors

LCD-13751
The ILcdBounds of the ILcdModel decoded by the TLcdPostGISModelDecoder were always two-dimensional. This is corrected so that the dimensions of data are correctly used.

Bug fixOGC Server

The WCS server could not handle data represented by an ILcdModelTreeNode. This is for example the case when decoding an USRP dataset through its header file.

Bug fixOGC Server

LCD-13850
Fixed an issue in the WFS server's GeoJSON export capability to avoid failing on geo-referenced text (ILcdText) geometries. Because they cannot be expressed in GeoJSON, these geometries are now approximated by their bounding box.

Bug fixDefense Standards

LCD-10122
The display level of NITF segments is now correctly applied to the paint order of the NITF segments in GXY Views.

Upgrade considerationLuciadLightspeed

LCD-13554
LuciadLightspeed now uses the widely adopted SLF4J logging framework instead of java.util.logging by default. If you haven't explicitly configured a logging framework for LuciadLightspeed yet, and you still need to use java.util.logging, follow the instructions in the TLcdLoggerFactory class javadoc to configure the desired logging framework.

Upgrade considerationLuciadLightspeed

The libjpeg-turbo library has been upgraded to version 3.0.0.lcd-5, introducing support for a Linux ARM 64-bit version of the library.

Upgrade considerationLuciadLightspeed

Added a dependency on the third party library meshoptimizer and its Java bindings from LWJGL. These libraries are used to decode OGC 3D Tiles data that use the EXT_meshopt_compression glTF extension.

Upgrade considerationLuciadLightspeed

The Draco library has been upgraded to version 1.5.7.lcd-6.

With this upgrade, a Linux ARM 64-bit version of this library is added, while the win32 version is removed. We also improved memory usage when decoding a Draco compressed dataset.

This library is used by the TLcdOGC3DTilesModelEncoder and allows you to use Draco compression on 3D mesh and point cloud data.

Upgrade considerationLuciadLightspeed

TLcdMBTilesModelDecoder: the Google Protobuf library used by the decoder has been updated to version 3.25.5.

Upgrade considerationLuciadLightspeed

In alignment with the end of support for Windows 8.1 and Windows Server 2012 by Microsoft, and the end of support for macOS 12 by Apple, we are updating our platform support. LuciadLightspeed and LuciadFusion are now supported for development and deployment on:
  • Windows, starting from Windows 10 and Windows Server 2016
  • macOS, starting from macOS 13

Upgrade considerationLuciadLightspeed

The class TLcdBingMapsTransportFactory which was deprecated since 2013 has been removed. The features of the deprecated class like caching etc. are now available through the TLcdTransportFactory class. If you are using the TLcdBingMapsTransportFactory class, you can replace it with the following code:

TLcdTransportFactory transportFactory = new TLcdTransportFactory();
transportFactory.setCaching(true);
transportFactory.setMaxCacheEntries(1000);
transportFactory.setRetryCount(3);
    

Upgrade considerationLuciadLightspeed

LCD-13666, LCD-13731
Added support for writing TIFF files with doubles. Added support for reading GDAL sparse GeoTIFF files. Therefore, the following dependencies have been updated:
Group ID Artifact ID Old Version New Version
javax.media jai 1.1.4+8-lcd 1.1.4+9-lcd
com.sun.media jai_imageio 1.2+23-lcd 1.2+25-lcd

Upgrade considerationLuciadLightspeed

The following dependencies have been updated:
Group ID Artifact ID Old Version New Version
com.fasterxml.jackson.core jackson-annotations 2.15.4 2.18.4
com.fasterxml.jackson.core jackson-core 2.15.4 2.18.4
com.fasterxml.jackson.core jackson-databind 2.15.4 2.18.4
com.google.protobuf protobuf-java 3.25.3 3.25.5
com.microsoft.sqlserver mssql-jdbc 7.2.1.jre8 12.10.0.jre11
org.slf4j slf4j-api 2.0.16 2.0.17

The following dependencies have been added:
Group ID Artifact ID Version
com.fasterxml.jackson.datatype jackson-datatype-jdk8 2.18.4
com.fasterxml.jackson.datatype jackson-datatype-jsr310 2.18.4
org.apache.httpcomponents.client5 httpclient5 5.4.3
org.apache.httpcomponents.client5 httpclient5-cache 5.4.3
org.apache.httpcomponents.core5 httpcore5 5.3.4
org.apache.httpcomponents.core5 httpcore5-h2 5.3.4
org.lwjgl lwjgl-meshoptimizer 3.3.3

The following dependencies have been removed:
Group ID Artifact ID Version
org.apache.httpcomponents httpclient-cache 4.5.13
org.apache.httpcomponents httpmime 4.5.13

The following sample dependencies have been updated:
Group ID Artifact ID Old Version New Version
ch.qos.logback logback-classic 1.4.14 1.5.18
ch.qos.logback logback-core 1.4.14 1.5.18
com.fasterxml.jackson.datatype jackson-datatype-jdk8 2.15.4 2.18.4
com.fasterxml.jackson.datatype jackson-datatype-jsr310 2.15.4 2.18.4
com.fasterxml.jackson.module jackson-module-parameter-names 2.15.4 2.18.4
com.zaxxer HikariCP 5.0.1 5.1.0
io.micrometer micrometer-commons 1.12.11 1.14.7
io.micrometer micrometer-observation 1.12.11 1.14.7
org.apache.logging.log4j log4j-api 2.21.1 2.24.3
org.apache.logging.log4j log4j-to-slf4j 2.21.1 2.24.3
org.apache.tomcat.embed tomcat-embed-el 10.1.31 10.1.41
org.eclipse.jetty jetty-alpn-client 12.0.9 12.0.21
org.eclipse.jetty jetty-client 12.0.9 12.0.21
org.eclipse.jetty jetty-ee 12.0.9 12.0.21
org.eclipse.jetty jetty-http 12.0.9 12.0.21
org.eclipse.jetty jetty-io 12.0.9 12.0.21
org.eclipse.jetty jetty-jndi 12.0.9 12.0.21
org.eclipse.jetty jetty-plus 12.0.9 12.0.21
org.eclipse.jetty jetty-security 12.0.9 12.0.21
org.eclipse.jetty jetty-server 12.0.9 12.0.21
org.eclipse.jetty jetty-session 12.0.9 12.0.21
org.eclipse.jetty jetty-util 12.0.9 12.0.21
org.eclipse.jetty jetty-xml 12.0.9 12.0.21
org.eclipse.jetty.ee10 jetty-ee10-annotations 12.0.9 12.0.21
org.eclipse.jetty.ee10 jetty-ee10-plus 12.0.9 12.0.21
org.eclipse.jetty.ee10 jetty-ee10-servlet 12.0.9 12.0.21
org.eclipse.jetty.ee10 jetty-ee10-webapp 12.0.9 12.0.21
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-jakarta-client 12.0.9 12.0.21
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-jakarta-common 12.0.9 12.0.21
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-jakarta-server 12.0.9 12.0.21
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-jetty-server 12.0.9 12.0.21
org.eclipse.jetty.ee10.websocket jetty-ee10-websocket-servlet 12.0.9 12.0.21
org.eclipse.jetty.websocket jetty-websocket-core-client 12.0.9 12.0.21
org.eclipse.jetty.websocket jetty-websocket-core-common 12.0.9 12.0.21
org.eclipse.jetty.websocket jetty-websocket-core-server 12.0.9 12.0.21
org.eclipse.jetty.websocket jetty-websocket-jetty-api 12.0.9 12.0.21
org.eclipse.jetty.websocket jetty-websocket-jetty-common 12.0.9 12.0.21
org.ow2.asm asm 9.7 9.7.1
org.ow2.asm asm-commons 9.7 9.7.1
org.ow2.asm asm-tree 9.7 9.7.1
org.slf4j jul-to-slf4j 2.0.16 2.0.17
org.springframework spring-aop 6.1.14 6.2.7
org.springframework spring-beans 6.1.14 6.2.7
org.springframework spring-context 6.1.14 6.2.7
org.springframework spring-core 6.1.14 6.2.7
org.springframework spring-expression 6.1.14 6.2.7
org.springframework spring-web 6.1.14 6.2.7
org.springframework spring-webmvc 6.1.14 6.2.7
org.springframework.boot spring-boot 3.2.11 3.4.6
org.springframework.boot spring-boot-autoconfigure 3.2.11 3.4.6
org.springframework.boot spring-boot-starter 3.2.11 3.4.6
org.springframework.boot spring-boot-starter-json 3.2.11 3.4.6
org.springframework.boot spring-boot-starter-logging 3.2.11 3.4.6
org.springframework.boot spring-boot-starter-web 3.2.11 3.4.6
org.yaml snakeyaml 2.2 2.3

The following sample dependencies have been added:
Group ID Artifact ID Version
commons-logging commons-logging 1.2
org.apache.httpcomponents httpclient 4.5.13
org.apache.httpcomponents httpcore 4.4.13

The following sample dependencies have been removed:
Group ID Artifact ID Version
com.fasterxml.jackson.core jackson-annotations 2.15.4
org.slf4j slf4j-api 2.0.12

Upgrade considerationLuciadLightspeed

LCD-13019
SLD support has been enhanced with the possibility to use a function to define the wellKnownName of a mark graphic. This means that TLcdSLDMark#getWellKnownName() now returns a TLcdSLDParameterValue instead of a String. You can still retrieve any text content from that TLcdSLDParameterValue.

Upgrade considerationLuciadLightspeed

Third party libraries used in the product have been moved from the lib directory to the lib/thirdparty directory, so that they can be easily distinguished from the product libraries. If you have custom startup scripts, you'll need to add both directories to the classpath.

Upgrade considerationAdvanced Raster Connectors

LCD-13700

The TLcdMrSIDModelDecoder#canDecodeSource method no longer accepts .sdw files. The main entry point for a MrSID data set is the .sid file, as indicated by the class documentation of TLcdMrSIDModelDecoder. The .sdw file is only a supporting file.

This fix avoids that a MrSID file that gets added to LuciadFusion results in two similar data items. Users that used the .sdw file as the entry point of a data set can simply switch to the .sid file.

Upgrade considerationDatabase Connectors

The lib directory now contains the latest SQL Server JDBC driver version 12.10.0.jre11 replacing version 7.2.1.jre8. You might be required to add ;encrypt=true;trustServerCertificate=true; to the url property, see the SQL Server Connecting with encryption page for more information.

Upgrade considerationDatabase Connectors

PostgreSQL version 12 is no longer supported as a database by the TLcdPostGISModelDecoder and TLcdPostGISModelEncoder. This version is no longer supported by the PostgreSQL Global Development Group, see the PostgreSQL Versioning Policy page. It's advisable to upgrade to a newer version of PostgreSQL if you are still using version 12.

Upgrade considerationDatabase Connectors

SQL Server version 2014 is no longer supported by the TLcdMSSQLModelDecoder and TLcdMSSQLModelEncoder. This version is no longer supported by Microsoft, see the SQL Server 2014 lifecycle page. It's advisable to upgrade to a newer version of SQL Server if you are still using version 2014.

Upgrade considerationOGC Server

To ease representing bounding boxes for references other than WGS 84 in a WMS layer, the following methods have been added to ALcdWMSLayer and its default implementation TLcdWMSLayer.
  • ALcdWMSLayer#getBoundingBox(String) allows to retrieve a bounding box for a given coordinate reference system.
  • TLcdWMSLayer#addBoundingBox(String, ILcdBounds) allows to register a bounding box for a given coordinate reference system.
Custom implementations of ALcdWMSLayer need to implement the new getBoundingBox(String) but can decide to return either a bounding box for the given coordinate reference system, or return an empty optional.

Upgrade considerationDefense Standards

The following changes were made to the NITF API:
  • TLcdNITFUncompressedImageDecoder has been removed.
  • TLcdNITFModelDecoder#decodeImageBounds has been removed.
  • TLcdNITFModelDecoder#decodeModelReference has been removed.
  • TLcdNITFTextSegment now has a copy constructor.
  • TLcdNITFModelDescriptor#addTextSegment has been added.
The removed class and methods were not intended for direct use and caused issues when they were used this way. Users interested in NITF decoding should rely on the main decoder class: TLcdNITFModelDecoder.

Upgrade considerationInfrastructure Standards

The names of the DWG native jar files have been revised to indicate the library version update from 24.8 to 26.2. Version 26.2 aligns with the latest release of the OpenDesignAlliance's Drawings SDK, version 2026.2.

The available DWG native jar files, at the time of writing, are:

  • libdwg-26.2.lcd-1-native.linux64.jar
  • libdwg-26.2.lcd-1-native.linux64_arm.jar
  • libdwg-26.2.lcd-1-native.macos_64.jar
  • libdwg-26.2.lcd-1-native.macos_64_arm.jar
  • libdwg-26.2.lcd-1-native.win64.jar

Upgrade considerationInfrastructure Standards

The names of the DGN native jar files have been revised to indicate the library version update from 24.8 to 26.2. Version 26.2 aligns with the latest release of the OpenDesignAlliance's Drawings SDK, version 2026.2.

The available DGN native jar files, at the time of writing, are:

  • libdgn-26.2.lcd-1-native.linux64.jar
  • libdgn-26.2.lcd-1-native.linux64_arm.jar
  • libdgn-26.2.lcd-1-native.macos_64.jar
  • libdgn-26.2.lcd-1-native.macos_64_arm.jar
  • libdgn-26.2.lcd-1-native.win64.jar

Upgrade considerationInfrastructure Standards

The TLcdIFCModelDecoder returns a feature data model with an ILcdDataObject. The TLcdDataModel of that ILcdDataObject has been changed to align it with the feature data models of other BIM formats. The data model now has:

  • A new property with the name Metadata. This property is a Map and contains the non-categorized metadata of the object as found in the IFC dataset. In previous versions, the ILcdDataObject itself contained this metadata.
  • A new property with the name MetadataGroups. This property is a Map and contains the metadata within the different IfcPropertySets linked to the object in the IFC dataset. In previous versions, an array of IfcPropertySet elements contained this information.

The following image shows an illustration of the new TLcdDataModel (on the right) compared to the old TLcdDataModel (on the left).

IFC feature model comparison
Comparison of the old and new IFC feature model

Upgrade considerationInfrastructure Standards

The geometry model returned by the TLcdBinzModelDecoder no longer contains the metadata of the objects. Only the FeatureID is retained in the geometry model. This change has an impact on the OGC 3D Tiles generation process: it now stores only the FeatureID inside the batch table. Depending on the amount of metadata inside the Binz dataset, this can lead to a significant reduction in the size of the OGC 3D Tiles output.

The metadata of the objects is still available in the feature data model. The FeatureID in the geometry model can be used to match the objects in the geometry model with the objects in the features model. If you have code that reads out the metadata directly from the OGC 3D Tiles data, you must change this code to read this metadata from the feature data model. The Visualize BIM data article explains this in more detail.

Upgrade considerationInfrastructure Standards

LCD-13711
TLcd3DTilesProcessorBuilder: the cache directory is now placed under the system-wide temporary files directory. This allows the 3D Tiles Processing Engine to be used when the installation directory is not writable.

Upgrade considerationInfrastructure Standards

The TLcdBinzModelDecoder returns a feature data model with elements implementing the ILcdDataObject interface. The TLcdDataModel of these elements has been changed to align it with the feature data models of other BIM formats. These changes were made:

  • Added a property with the name Metadata. This new property is a Map and contains the non-categorized metadata of the object as found in the Binz dataset. In previous versions, the ILcdDataObject itself contained this metadata.
  • Removed the RenderId property. This property was used to store the original FeatureID of the feature in the Binz dataset. Instead, a FeatureIDOffset property is stored in the root feature of the model. You can use this property to calculate the original FeatureID by subtracting this offset from the FeatureID property of the object.
  • The features in the model no longer implement the ILcdExtrudedShape interface. Instead, this information can be derived from the Bounds, MinZ and MaxZ properties.

You must change code that reads out this Binz metadata to use this new structure. This snippet shows a code example of how to read the moniker Binz property in a previous version of the model:

// will no longer work in 2025.0
TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
ILcdModel featuresModel = decoder.decodeSource(new TLcdBIMDataSource("path/to/dataset.binz", FEATURES));
ILcdDataObject feature = (ILcdDataObject) featuresModel.elements().next();
String moniker = (String) feature.getValue("moniker");

To work with the new model, change the code to retrieve the Metadata property first. This property is a Map containing the Binz metadata, like the moniker. This snippet shows how to read this moniker property in the new version of the model:

TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
ILcdModel featuresModel = decoder.decodeSource(new TLcdBIMDataSource("path/to/dataset.binz", FEATURES));
ILcdDataObject feature = (ILcdDataObject) featuresModel.elements().next();
Map<String, Object> metadata = (Map<String, Object>) feature.getValue("Metadata");
String moniker = (String) metadata.get("moniker");

The RenderId property is no longer available on the features in the model. Instead, you can now calculate it by subtracting the FeatureIDOffset from the FeatureID. This snippet shows a code example of how to accomplish that:

TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
ILcdModel featuresModel = decoder.decodeSource(new TLcdBIMDataSource("path/to/dataset.binz", FEATURES));

// Get some feature
ILcdDataObject feature = (ILcdDataObject) featuresModel.elements().next();

// Get the root feature
Integer rootFeatureId = ((List<Integer>) feature.getValue("AncestorPath")).get(0);
ILcdDataObject rootFeature = (ILcdDataObject) featuresModel.query(...);

// Calculate the RenderID
Integer featureId = (Integer) feature.getValue("FeatureID");
Integer featureIdOffset = (Integer) rootFeature.getValue("FeatureIDOffset");
Integer renderId = featureID - featureIdOffset;

Casting a Binz feature to an ILcdExtrudedShape now results in a ClassCastException because the feature no longer implements this interface. This snippet shows a code example of how to convert a Binz feature into an ILcdExtrudedShape in the new version of the model:

TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
ILcdModel featuresModel = decoder.decodeSource(new TLcdBIMDataSource("path/to/dataset.binz", FEATURES));
ILcdDataObject feature = (ILcdDataObject) featuresModel.elements().next();
ILcdExtrudedShape shape = new TLcdExtrudedShape(ALcdShape.fromDomainObject(feature),
                                                (Double) feature.getValue("MinZ"),
                                                (Double) feature.getValue("MaxZ"));