Hello everyone,
I am converting CAD data to CityGML. To create the LoD2 class of buildings with hierarchical integrity, I used GeometryCoercer to transform the extruded solids into surfaces, followed by the Deaggregator, separating the roofs, walls and grounds.
I tried to use SurfaceOnSurfaceOverlayer to identify shared walls between buildings but the transformer is not identifying all the cases. When I set the tolerance, it identify more cases but it ends up disturbing the geometry of the surfaces, generating non-flat surfaces, with duplicate points, etc ... all verified by GeometryValidator and by CityGML validation tools like Val3dity.
As you can see in the prints, a case of shared surface is identified (Surface 1 and 2) and another one with the same characteristics (Surface 3 and 4) no.
As I used the vertical direction in the Extruder and have the same X and Y coordinates, they should be coplanar- I also used the PlanarityFilter before the process and the value of the _surfaceNormalX and Y module practically the same, differing only in the 16th decimal place.
I need to identify the shared surfaces to assign two parent_id to those surfaces, reducing the redundancy of geometries in the final output file using xlink_href.
Could someone indicate to me actions or alternative ways that could solve this issue?
Thanks in advance for your attention.