Skip to main content
Question

Converting IFC to CityGML to upload to 3DCityDB

  • 25 July 2024
  • 2 replies
  • 57 views

I am transforming an IFC file to CityGML to upload the CityGML model to the 3DCityDB. I used the workspace published by Liz (https://support.safe.com/hc/en-us/articles/25407718003341-BIM-to-GIS-Intermediate-IFC-LOD-300-to-LOD-4-CityGML). The CityGML file created looks fine in the FME inspector. However, when I try to import the CityGML into the database, I get a lot of errors saying, “Failed to resolve XLink reference”. I was doing some research, and it seems the problem is that 3DCityDB does not support a gml:MultiGeometry with different dimensions (This is what they mention in the GitHub: In general, a gml:MultiGeometry is a collection of geometries that are allowed to have mixed dimensions: points (0D), curves (1D), surfaces (2D) and solids (3D). The 3DCityDB can handle geometries of different dimensions and collections of geometries having the same dimension. But collections containing geometries of different dimensions are not supported.). Is there a way I can modify the FME workspace to avoid the creation of gml:MultiGeometry? (This is what 3DCityDB recommends: Avoid using gml:MultiGeometry. Use the following collection geometries instead: gml:MultiPoint (0D), gml:MultiCurve (1D), gml:MultiSurface (2D) or gml:MultiSolid (3D).)

Thanks in advance for the support. I am relatively new in FME, so I am a little lost about how to solve this problem

2 replies

Userlevel 3
Badge +15

Hello @lisap, thanks for posting and apologies no one has reached out yet! So it sounds like we need to find an alternate valid GML geometry to use, instead of gml:MultiGeometry ?

Have you come across this documentation yet: Writing CityGML from FME? If you navigate to the bottom of the document, you’ll find a table of valid geometries for the citygml_lod_name attribute values, and which GML geometries they map too. 

If we need to break up the geometries in a collection, so they can be mapped to a valid geometry, consider using the Deaggregator. Hope this helps, Kailin.

Badge +1

Hi @kailinatsafe,

This was the first time I had seen that documentation. I will check it out; thanks for sharing!

 

Reply