Hi limo, I'm not sure what causes this behaviour. Have you tried tweaking the parameters of the SurfaceOnSurfaceOverlayer?
A possible solution (yet, not ideal) could be something along the lines of: using a SurfaceFootprintReplacer or 2DForcer followed by a Dissolver to get the 2D polygonal area of the buildings. Then, using a GeometryCoercer, you can transform the polygonal features into lines. Buffer these lines slightly, and than Spatially filter your walls with these buffered outer lines: the walls that fall completely within these buffers are your outside walls.
If your input geometry is very clean, this might do the job.
maayke wrote:
Hi limo, I'm not sure what causes this behaviour. Have you tried tweaking the parameters of the SurfaceOnSurfaceOverlayer?
A possible solution (yet, not ideal) could be something along the lines of: using a SurfaceFootprintReplacer or 2DForcer followed by a Dissolver to get the 2D polygonal area of the buildings. Then, using a GeometryCoercer, you can transform the polygonal features into lines. Buffer these lines slightly, and than Spatially filter your walls with these buffered outer lines: the walls that fall completely within these buffers are your outside walls.
If your input geometry is very clean, this might do the job.
Hi maayke,
yes I tried to play around with the parameters of the SurfaceOnSurfaceOverlayer.
It works really good for me with surface filtered by overlaps<2. But sometimes there is an error like as I already mentioned. So because of this I use overlaps<=2 this works fine for my data. But then I get a lot of internal walls within the building. These are not required!
Using a SpatialFilter as you already mentioned sounds a good idea.
As filter candidate I have set Bufferertyp to solid. Otherwise I have to create a 2D line and 2D Wall surfaces but I need 3D.
If I do afterwards a spatialfilter it says wrong invalid candidate geometry type.
My WallSurface comes from the BRepSolidBoundaryCreator.Beta (geometry: fme_aggregate, compositesurface)