Skip to main content

Hi,

 

I am trying to write a CityGML LOD1 file containing building parts in a proper way. I use OSM data (3dbuildings.com) in geopackage format as a proving ground. The only example workflow I have found was about Cesium https://www.youtube.com/watch?v=xSB_GLB_ikQ but the output file consisted of building parts only.

Actually I find resulting files looking similar to sample data from Hamburg in FZKViewer but I am not sure anyway.

 

The main idea as I get it right is to remove geometry in case of a building that consists of building parts and link them to a parent building with a gml_parent_id.

 

Do I need to create a separate gml_id for each building part or it's enough to leave a part without it? Unfortunately there are errors while validating an output file.

 

Can I connect directly buildings without geometries and building with geometries into the same CityGML Building writer?

 

Is there a more compact manner to get a right result (please find attached a workspace)? It looks clumsy maybe due to specific of OSM relations and inconsistencies.

 

A workspace and an archive with an initial geopackage and a resulting gml are attached.

Thank you in advance!

I have found a topic about gml id here: "Many CityGML features are aggregations of other features. In FME, this relationship can be specified through the “gml_id” and “gml_parent_id” attributes. The value of the “gml_parent_id” of a child element should be equal to the value of the “gml_id” of its parent element. The gml:id attribute must be unique for all features in a CityGML document. Using the UUIDGenerator transformer will ensure that these values are unique, but they must be prefixed with a non-numeric character. Note that the CityGML Writer will dynamically generate gml:id attribute values for all features it writes (essentially using the same method shown below), so it is not necessary to use these transformers unless the value of the gml_id attribute must be accessed."


Reply