2025.0
New featureLuciadLightspeed
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 theELcdOGC3DTilesVersion
javadoc.
New featureLucy (LuciadLightspeed)
TLcyLspDWGFormatAddOn
to load DWG and DXF files on a Lightspeed viewTLcyLspDGNFormatAddOn
to load DGN files on a Lightspeed view
New featureLucy (LuciadLightspeed)
TLcyAzureMapsAddOn
to connect to Azure Maps and visualize its data on a GXY viewTLcyLspAzureMapsFormatAddOn
to visualize data from Azure Maps on a Lightspeed view
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
TLcdGeoPackageModelEncoder
and TLcdGeoPackageModelEncoder
now offer support for encoding and decoding elements with a TLcdLonLatGeoBuffer
as shape.
ImprovementLucy (LuciadLightspeed)
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
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
TLcdGeoTIFFModelEncoder
now supports writing ALcdBasicImage
and ALcdMultilevelImage
instances having values of type double
.
ImprovementLucy (LuciadLightspeed)
LUCY-5077
ImprovementDatabase Connectors
LCD-13873
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
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
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
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 theELcdOGC3DTilesVersion
javadoc.
ImprovementInfrastructure Standards
TLcdRevitModelDecoder
and the
TLcdNWDModelDecoder
on this platform.
ImprovementInfrastructure Standards
LF-2665
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
TLcdOGC3DTilesModelEncoder
could fail when encoding an empty payload.
Bug fixLuciadLightspeed
LCD-13874
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
Bug fixDatabase Connectors
LCD-13751
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
ILcdModelTreeNode
. This is for example
the case when decoding an USRP dataset through its header file.
Bug fixOGC Server
LCD-13850
ILcdText
) geometries. Because they cannot be expressed in GeoJSON, these geometries
are now approximated by their bounding box.
Bug fixDefense Standards
LCD-10122
Upgrade considerationLuciadLightspeed
LCD-13554
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
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
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
- 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
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
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
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
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
;encrypt=true;trustServerCertificate=true;
to the url property, see the SQL Server Connecting with encryption page for more information.
Upgrade considerationDatabase Connectors
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
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
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.
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
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.
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 aMap
and contains the non-categorized metadata of the object as found in the IFC dataset. In previous versions, theILcdDataObject
itself contained this metadata. -
A new property with the name
MetadataGroups
. This property is aMap
and contains the metadata within the differentIfcPropertySets
linked to the object in the IFC dataset. In previous versions, an array ofIfcPropertySet
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).

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 aMap
and contains the non-categorized metadata of the object as found in the Binz dataset. In previous versions, theILcdDataObject
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, aFeatureIDOffset
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 theFeatureID
property of the object. -
The features in the model no longer implement the
ILcdExtrudedShape
interface. Instead, this information can be derived from theBounds
,MinZ
andMaxZ
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"));