Skip to main content

I'm using the Cesium 3D Tiles Writer to export some CityGML data to Cesium. Although I can export and interact with entire buildings, I would like to model and interact with buildings as a hierarchy of individual parts (e.g. walls, roofs, etc.). The 3D tiles spec appears to support specifying such relations in the batch table (https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/TileFormats/BatchTable#batch-table-hierarchy).

I'm looking to achieve something similar to this: https://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=3D%20Tiles%20Batch%20Table%20Hierarchy.html&label;=3D%20Tiles

I've looked and can't find any information on how to write this type of information to the tiles using FME. Does anyone know if this possible using FME? Are there any examples or documentation I could use?

Hi @hpet,

It is possible to build a hierarchical model within FME from the CityGML data, using the Aggregator transformer in Assemble Hierarchy mode. You can use the CityGML format attributes gml_id and gml_parent_id to control the hierarchy.

However, the Cesium writer will collapse this hierarchy into a single mesh. This was done for performance reasons, since each separate mesh requires more time to render, and many Cesium models generated by FME are quite large.

I would recommend setting the appearances on the features in FME before aggregating, using the GeometryColorSetter or AppearanceSetter transformer. These appearances will be maintained in the Cesium output, without a need for hierarchical models.


Reply