Question

How to identify walls that lie on the building outline?

  • 29 March 2022
  • 2 replies
  • 6 views

Badge +7

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

 


2 replies

Badge +1

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.

Badge +7

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