Question

Rewriting CityGML file after editing as Building and Building Parts

  • 8 November 2021
  • 3 replies
  • 8 views

Hi every one

I have a lot of CityGML files and want to edit the roof type for some of them. After that I want to write it again as it was at first:

1-Some normal Buildings and some Buildings containing Building parts

2-Each address attached to a building

3- roof, wall, and ground surfaces attached to each building

But this part of connecting child and parent doesn't work. I attached my Fme file. Can somebody help me? It is really frustrating.


3 replies

Userlevel 4
Badge +26

You should just be able to run each input feature type directly out to the equivalent feature type. Do as few changes as possible. You shouldn't need to do any feature joining or merging - FME will use the gml_id and parent gml_id on writing.

A good way to start is by working backwards. Start with the Reader > Writer only to make sure the output is working as expected. Input = Ouptut. Then you can start changing things (like the rooftype).

It looks like you're also creating a tilename attribute? Consider just putting this at the building level rather than on all of the surfaces.

Another option is to use the 3DCityDB to update the roof type. It's difficult to add new generic attributes using the 3DCityDB, however, updating the rooftype can be quite simple.

Download the 3DCityDB, import the data into the database using the importer-exporter and then use FME to update the rooftype column. Just an idea though.

Many Thanks @virtualcitymatt​ 

Your ideas are always very helpful. I will try them.

You should just be able to run each input feature type directly out to the equivalent feature type. Do as few changes as possible. You shouldn't need to do any feature joining or merging - FME will use the gml_id and parent gml_id on writing.

A good way to start is by working backwards. Start with the Reader > Writer only to make sure the output is working as expected. Input = Ouptut. Then you can start changing things (like the rooftype).

It looks like you're also creating a tilename attribute? Consider just putting this at the building level rather than on all of the surfaces.

Another option is to use the 3DCityDB to update the roof type. It's difficult to add new generic attributes using the 3DCityDB, however, updating the rooftype can be quite simple.

Download the 3DCityDB, import the data into the database using the importer-exporter and then use FME to update the rooftype column. Just an idea though.

 

@virtualcitymatt​ 

And about the tile name(Kachel), I would like to use that to fan out, as I have many data, and they should be divided into tiles.

I made the Reader-Writer workflow. It works well, and everything is good but when I use my costume transformer -new roof type- everything will explode at the end and I have separated surfaces and building parts, although I didn't change the gml_id or gml_parent_id!!

Reply