Question

CityGML from shapefile

  • 18 October 2017
  • 3 replies
  • 11 views

Badge

 

Hello,

I have a shapefile that consists of roof, walls and ground in a buildings model. Each surface has it's own ID ('UUID_BYGGN') assigned to it together with building part ('MSLINK2').

I have a workspace where I read in all the features and sort the surface based on attribute ('IGDS_LEV_N') which tells if it's a roof, wall or ground. After this I assign the attributes 'gml_id' and 'gml_parent_id' to each surface but something is wrong in the workspace. I get error message:

CityGML Writer: Found a cycle. The ids of the elements which created this path were `GML_01861c27-7df2-4021-bd4b-300c3b496991,GML_01861c27-7df2-4021-bd4b-300c3b496991_1,GML_01861c27-7df2-4021-bd4b-300c3b496991'.

CityGML Writer: While determining the CityGML element heirarchy (based on the gml_id and gml_parent_id attributes) a cycle was detected. Cyclic features can't be serialized into a CityGML Document.

A fatal error has occurred. Check the logfile above for details.

Can anyone help me with why this cycle beahaviour occurs? I guess it has to do with the way I assign my UUID:s to the attributes 'gml_id' and 'gml_parent_id' but I can't seem to figure out why!

I am also rather new to FME so that might be a reason why I am having problems also. Thank you :)


3 replies

Userlevel 2
Badge +17

Hi @carolineivarsso,

In your workspace, the non-Wall output from the FilterOutWalls transformer goes to both the BuildingPart and Roof geometry sections. The BuildingParts are given a gml_parent_id from the UUID_BYGGN value and a gml_id from UUID_BYGGN + MSLINK2.

The Roof geometries are given a gml_parent_id of UUID_BYGGN + MSLINK2, which will make them the children of the BuildingPart features, but they are also given a gml_id of UUID_BYGGN, which makes them the parents of the BuildingParts. Hence the circular reference.

Please add a value to the end of the Roof geometry gml_id to prevent them from being the BuildingPart parents.

Badge

Hi @DaveAtSafe,

Thank you for the reply! However it doesn't seem to solve my problem... Is still get them same error message:

CityGML Writer: Found a cycle. The ids of the elements which created this path were `GML_01861c27-7df2-4021-bd4b-300c3b496991,GML_01861c27-7df2-4021-bd4b-300c3b496991_1,GML_01861c27-7df2-4021-bd4b-300c3b496991'.

CityGML Writer: While determining the CityGML element heirarchy (based on the gml_id and gml_parent_id attributes) a cycle was detected. Cyclic features can't be serialized into a CityGML Document.

A fatal error has occurred. Check the logfile above for details

A fatal error has occurred. Check the logfile above for details

Did I enter the value at the wrong transformer? I added to modified workspace again.

prio1-esrishape2citygml-ci-2.fmw

Userlevel 2
Badge +17

Hi @carolineivarsso,

It looks like you may have the same issue in the Wall geometry. You may also want to check the Base geometry as well - I can't tell just from the workspace.

Reply