About this release

With this 2022.0 release, LuciadLightspeed is ready for GeoBIM. Data in the IFC format is now directly supported. Furthermore, we added an important set of improvements and enhancements that were high on our customers' wish lists.

luciad portfolio
Figure 1. The Luciad Product Portfolio.

Benefits of the new features

Support for Building Information Models (BIM) in the IFC format

The Industry Foundation Classes (IFC) format is an open file format used by Building Information Modeling (BIM) programs. It contains a model of a building or facility, including spatial elements, materials, and shapes. In recent years, GeoBIM has become necessary to bring situational awareness into infrastructure projects, and vice versa.

This 2022.0 release of LuciadLightspeed brings support for IFC. The IFC models can be decoded, and are then converted into OGC 3D Tiles for efficient visualization. This conversion can be done on the fly, resulting in “drag and drop” of IFC data. Depending on the size of the IFC model, this may take a while. Therefore, LuciadLightspeed also offers the capability to pre-compute the 3D tiles dataset once. Visualization will be instantaneous afterwards. Multiple IFC models can be combined into one 3D Tiles dataset, if required.

IFC models contain geometries as well as metadata. LuciadLightspeed allows you to correlate between the OGC 3D Tiles data and the properties inside the IFC. These properties can then be used to style, filter, or select elements from the IFC model.

For easy access to the metadata, LuciadLightspeed offers a tool to convert the IFC dataset into the GeoJSON format. This conversion maintains the properties stored inside the IFC dataset, together with a bounding box of each item. The unique identifier stored inside the 3D Tiles data is also present in the GeoJSON data. You can perform this conversion to GeoJSON programmatically, or you can run a convenient IFC data conversion script from the command line.

ClinicIFC Lucy
Figure 2. IFC data visualized in Lucy. The object properties can be explored via the standard properties panel.

Support for data in the IFC format has also been added to Lucy, the LuciadLightspeed high-level application framework.

Sample code to get you started

The decoder sample is the main access point for testing the LuciadLightspeed IFC support. Furthermore, several articles have been added to complete the product documentation with information about the format IFC and how to handle it. These articles are easily accessible via Data formats: IFC.

Extended OGC SE styling capabilities

OGC Symbology Encoding (SE), previously called Styled Layer Descriptor (SLD), is a standard for cross-platform and cross-vendor style definition. It mainly focuses on vector data, but also includes some parameters for defining the appearance of raster data.

OGC SE is widely used. Nevertheless, its expressive power is limited with respect to label styling options. This is one of the primary reasons that the industry introduced the concept of vendor options. Vendor options are key/value pairs that can be set on a symbolizer to customize settings that are not available in OGC SE.

This mechanism has already been used within the Luciad Portfolio products for labeling. A typical use case is street labeling. Now we have used the concept of vendor options to support the label box styling settings.

se labelbox
Figure 3. A set of vendor options to support the label box styling settings is now available in LuciadLightspeed.
Styling the points of a line-based shape

You can now style the points of a line-based shape. When you use a PointSymbolizer with the Geometry function “vertices”, the defined point style is applied to all points of the encountered shape. An example use case is the styling of waypoints along an ATS route.

Extended PointSymbolizer capabilities

You can now use the geometry function “interiorPoint” to style a shape using a PointSymbolizer. This function takes a point in the middle of the shape border itself if it is open, or inside the shape if it is closed.

Changing the anchor point of icons

You can now adjust the anchor point of icons in OGC SE, by using the AnchorPoint property on a PointSymbolizer graphic. An example use case is the alignment of the tip of an arrow icon with the end of a line segment.

se pointsymbolizer
Figure 4. Extended PointSymbolizer capabilities.

Sample code to get you started

The existing OGC SE samples have been extended. For the label box styling, see the article How to draw a box around labels.

Area calculation for complex polygons with holes

You can calculate the area of a surface with one of these three methods:

  • TLcdEllipsoidUtil.geodesicArea(ILcdShape, ILcdEllipsoid) for shapes with longitude/latitude coordinates

  • TLcdSphereUtil.geodesicArea(ILcdShape, double) for shapes with longitude/latitude coordinates

  • TLcdCartesian.area(ILcdShape) for shapes with Cartesian (X/Y) coordinates

All these functions now support complex polygons, including islands and holes.

area calculation example copy
Figure 5. An example of the area of Italy, the country borders of which make up a complex polygon.

Sample code to get you started

A new how-to article has been added. See How to calculate the area of a complex polygon?.

Improvements for customers in the aviation domain

Apply constructive geometry to AIS shapes

ince early versions of LuciadLightspeed, topological checks and constructive geometry operations have been possible. This capability has now been extended for aeronautical objects, that are decoded as so-called “AIS shapes” by the LuciadLightspeed API. It is particularly relevant to all polyline- and polygon-like objects.

airspaceCreation 3
Figure 6. Through a custom Lucy add-on, AIS airspace shapes and constructive geometry operations are combined to create the Churchill Low Military Operations Area (MOA) in Nevada. The MOA consists of a polygonal airspace volume from which a circular airspace volume is subtracted.

Note that the Lucy Drawing capability already supported constructive geometry operations on aeronautical shapes. This capability remains unchanged.

Sample code to get you started

This capability has been integrated into the Constructive Geometry sample.

DAFIFT support for Minimum Sector Altitude data

The decoder for the DAFIFT aviation data format now supports decoding and visualization of Minimum Sector Altitude data. This data defines the lowest altitude that provides a minimum clearance of 1000 feet above all objects located within a circle sector around a navigational aid, for example.

Other improvements

Scale locking in Lightspeed views

A Lightspeed layer can optionally have scale ranges to automatically adjust its visibility based on the view scale. For additional flexibility, it is now possible to adjust the scale value to be considered, independent of the view scale. This allows users to “lock” on a scale and keep a layer visible, regardless of the current view scale. The article How to lock scale-based styles to a certain zoom level provides more information and sample code.

Support for Draco compression

To reduce the tile size, and increase streaming speed, 3D tile geometries can be compressed using the Draco library. LuciadLightspeed now supports decoding and visualization of Draco-compressed 3D Tiles. Draco compression can also be applied to point cloud data.

Improved Java 17 support

The Java 17 support has been further improved:

  • This release removes a series of package splits over distinct jar files. Please consult the related upgrade consideration on the Release notes page for the details.

  • The sample code has been adapted. There are no more deprecation warnings when you are using Java 17.

  • There were some changes in third-party libraries to improve the compatibility with Java 17. For example, the samples now depend on the HikariCP third-party library. It is used to illustrate how the database model decoders can use a database connection pooling framework. The version of Ehcache was also updated from 3.2.0 to 3.10.0. Such changes are documented as an upgrade consideration in the Release notes as well.