Skip to main content

Hi,

 

I have some buildings and I will remove internal walls.

So for this I use surfaceonsurfaceOverlayer and tester to identify internal walls. That is working in most of the cases. Nevertheless I have a few buildings where the outer wall is removed like this:

image" data-fileid="0694Q00000HYXKEQA5 

Maybe someone has similar problems?

Is there a way to do a further check if wall lies on the building outline? If this is the case we have to keep this wall!

How can I avoid this kind of problem?

Thanks in advance

 

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 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)


Reply