Skip to main content
Question

how to create a mansard roof from a top and bottom surfaces. the solid will have 6 surfaces including the top and bottom

  • January 23, 2017
  • 15 replies
  • 141 views

Hi, i have shapefile datas for the top and bottom surfaces and i would like to know if i can make a mansard roof solid with 6 surfaces from 2 (the top and bottom).

Thanks.

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.

15 replies

david_r
Celebrity
  • January 23, 2017

I think the Extruder might get you the building itself, but hopefully someone else has an idea about how to make the roof.


Forum|alt.badge.img+7

Hi @anhphanuet

Those more advanced / specific situations I like to solve using Python code. With some basic math and this api you can generate really nice results.


  • Author
  • January 23, 2017

Hi @anhphanuet

Those more advanced / specific situations I like to solve using Python code. With some basic math and this api you can generate really nice results.

Hi @jeroenstiers , could you plesea be more specific? thank you.

 


  • Author
  • January 23, 2017

I think the Extruder might get you the building itself, but hopefully someone else has an idea about how to make the roof.

 

Hi @david_r

 

I used the Extruder to make Wall surfaces of buildings. but i don't know how to orient the surfaces on every side of the roof

Forum|alt.badge.img+7

Hi @anhphanuet

Those more advanced / specific situations I like to solve using Python code. With some basic math and this api you can generate really nice results.

The complete horizontal faces can be created easily using the top of the building block and changing the z-value (this can be done with 'pure' FME [see: https://knowledge.safe.com/questions/32944/how-do-i-detect-2d-lines-and-how-to-change-height.html]) on the one hand or buffering it a bit to created the bigger bottom surface on the other hand.

 

 

For the 4 other surfaces, you can extract the x/y/z coordinates from the corners of your building (the 4 corners of the topsurface). Connect them for every side to an FMELine. Now you have created the top lines. Than you'll have to calculate the coordinates of the points located most on the outside (use the bottom surface with chopper for this) and connect them to the already created line (Check FMELine > addPoint(s) on https://docs.safe.com/fme/html/FME_Objects_Python_API/index.html). Lastly close the line by connecting everything to one 'polygon' so this polygon can be used to as input for the creation of the FME Face (https://docs.safe.com/fme/html/FME_Objects_Python_API/index.html).

 

 


jdh
Contributor
Forum|alt.badge.img+40
  • Contributor
  • January 23, 2017

Assuming you know the height of the roof (not the height of the building), you can create it without the use of python, I'm attaching a workspace that illustrates the concept, though my lunch break ended before I figured out which surfaces need to have their faces flipped.

 

mansardroof.fmw

 


daveatsafe
Safer
Forum|alt.badge.img+20
  • Safer
  • January 23, 2017

makemansards.fmw

The mansard roof can be created using a combination of 3DForcers, DonutBuilder and FaceReplacer. I am attaching a workspace to illustrate the process.


jdh
Contributor
Forum|alt.badge.img+40
  • Contributor
  • January 23, 2017

makemansards.fmw

The mansard roof can be created using a combination of 3DForcers, DonutBuilder and FaceReplacer. I am attaching a workspace to illustrate the process.

I've never used the DonutBuilder in 3D, that's an interesting tidbit

  • Author
  • January 24, 2017

Hi @anhphanuet

Those more advanced / specific situations I like to solve using Python code. With some basic math and this api you can generate really nice results.

thanks @jeroenstiers for the tip

 


  • Author
  • January 24, 2017

makemansards.fmw

The mansard roof can be created using a combination of 3DForcers, DonutBuilder and FaceReplacer. I am attaching a workspace to illustrate the process.

thank you @Dave this really helps me

  • Author
  • January 24, 2017

Assuming you know the height of the roof (not the height of the building), you can create it without the use of python, I'm attaching a workspace that illustrates the concept, though my lunch break ended before I figured out which surfaces need to have their faces flipped.

 

mansardroof.fmw

 

Thank you! I really really appreciate that.

 

 


takashi
Celebrity
  • February 11, 2017
It's an interesting subject, I would suggest another approach: If you create two 3D polygon representing the top and bottom boundaries of a mansard roof, the TINGenerator can transform them into the shape of the roof as a TIN surface (Mesh). e.g.

 

Result:

 

The attached workspace creates all parts of the building including roof, wall, and floor, and also builds a solid from the parts. mansard-roof-solid.fmw

takashi
Celebrity
  • February 11, 2017

makemansards.fmw

The mansard roof can be created using a combination of 3DForcers, DonutBuilder and FaceReplacer. I am attaching a workspace to illustrate the process.

It's an interesting subject, I would suggest another approach: If you create two 3D polygon representing the top and bottom boundaries of a mansard roof, the TINGenerator can transform them into the shape of the roof as a TIN surface (Mesh). e.g.

 

Result:

 

The attached workspace creates all parts of the building including roof, wall, and floor, and also builds a solid from the parts. mansard-roof-solid.fmw

  • Author
  • February 12, 2017
It's an interesting subject, I would suggest another approach: If you create two 3D polygon representing the top and bottom boundaries of a mansard roof, the TINGenerator can transform them into the shape of the roof as a TIN surface (Mesh). e.g.

 

Result:

 

The attached workspace creates all parts of the building including roof, wall, and floor, and also builds a solid from the parts. mansard-roof-solid.fmw
thank you, it's perfect!

 

 


takashi
Celebrity
  • February 13, 2017

I think the Extruder might get you the building itself, but hopefully someone else has an idea about how to make the roof.

I found a way to create a mansard roof as a CSG (Constructive Solid Geometry) using four Extruders in conjunction with CSGBuilders, like this.

 

 

 

There is more than one way :-)