Skip to main content
Question

How to identify walls that lie on the building outline?


limo
Supporter
Forum|alt.badge.img+8
  • Supporter

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

maayke
Contributor
Forum|alt.badge.img+6
  • Contributor
  • April 6, 2022

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.


limo
Supporter
Forum|alt.badge.img+8
  • Author
  • Supporter
  • April 6, 2022
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)


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings