3dcitydb / importer-exporter

3D City Database client for high-performance import and export of 3D city model data
Apache License 2.0
126 stars 54 forks source link

File not Found during Collada Export Process #4

Closed slightHYP closed 9 years ago

slightHYP commented 9 years ago

Dear all,

we would like to export our CityGML dataset to Collada but we are facing some issues during the export process.

In particular, from the 3D City DB log, the errors are raised up by a File Not Found Exception in the __temp folder (as you can see from the attachment image)

schermata 2015-10-16 alle 13 47 25

Which is the problem? With other dataset generated in the same way everything works fine.

Thank you for the support and best regards, Michele

clausnagel commented 9 years ago

Do you think you can share the CityGML data? This would help us a lot in reproducing and fixing the issue.

slightHYP commented 9 years ago

Sure no problem, here you can find one smaller dataset with the same problem:

http://www.graphitech.it/public/cles.zip

Thank you for your swift reply, Michele

yaozhihang commented 9 years ago

Hi Michele,

thank you for providing the test data. we'll look into this issue and get back to you.

Zhihang

yaozhihang commented 9 years ago

Hi Mechele,

I can reproduce that problem as well. The cause of that problem is that your CityGML files (e.g. CLES_11) contain some invalid GMLIDs like "Unit_106.419/4.1170". According to the XML/GML Specification, GMLID must start with a letter or underscore, and can only contain letters, digits, underscores, hyphens, and periods.....

It means that the character "/" is not allowed in GMLID.

Solution: The Importer-Exporter Tool provides a functionality for generating globally unique UUIDs and assigning them to all GML objects during the CityGML-Import process. Invalid GMLIDS will be therefore replaced by the newly generated UUID value, and then the Collada-Exporter should work fine. This functionality can be found under (preferences --> CityGML Import --> gml_id handling --> replace all gml:ids by UUIDs) on importer-exporter-GUI.

Zhihang

slightHYP commented 9 years ago

Dear Zhihang,

thank you for your reply. I've just tested your solution and it works well, no errors are raised up.

We didn't noticed the "/" character in the ID, now we have to find the problem in our CityGML generation process, but the replace:ids functionality works.

Thank you, Michele