Solved

Converting a multisolid (Building in cityGML) to roof, ground and wall surfaces

  • 29 April 2021
  • 4 replies
  • 3 views

Hi. I am searching for a solution to convert the result of my workflow which is a multi solid to different surfaces including ground, wall and roof. Is it possible in FME? I have searched a lot but it seems to be impossible.

icon

Best answer by virtualcitymatt 29 April 2021, 11:13

View original

4 replies

Userlevel 4
Badge +26

You can use a GeometryPartExtractor to extract the IFMEFace Geometries. This will give you the surfaces. You can then use a PlanrityFilter to extract the surface normals, once you have the surface normals you can filter based on the Z normal - Positive Z should be a roof, 0 Z should be a wall and -1 Z should be a ground. Sometimes the normals are not quite so perfect for wall or the ground so check is they are close.

@virtualcitymatt, thanks for your Reply.

I added them to your last workflow but it doesn't work well. can you please take a look at that and correct it?​ 

Userlevel 4
Badge +26

@virtualcitymatt, thanks for your Reply.

I added them to your last workflow but it doesn't work well. can you please take a look at that and correct it?​ 

You just need to switch the test in the GeometryPartExtractor to be IFMEFace (not Brep) You want to extract the Face geometries from the Solid

Thanks @virtualcitymatt​ . It was really helpful.

Reply