Skip to main content
Solved

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

  • April 29, 2021
  • 4 replies
  • 139 views

mahbouberezaiee

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.

Best answer by virtualcitymatt

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.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

4 replies

virtualcitymatt
Celebrity
Forum|alt.badge.img+47

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.


mahbouberezaiee

@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?​ 


virtualcitymatt
Celebrity
Forum|alt.badge.img+47

@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


mahbouberezaiee

Thanks @virtualcitymatt​ . It was really helpful.