Question

create 3d objects and separate roof and body

  • 23 January 2024
  • 5 replies
  • 38 views

Badge

Hello

I would like to create 3D objects, I have footprints, DEM, LAS file of building. Roof of the buildings are pretty unique, so It's hard to use Extruder on it, do you have any idea to create 3D objects with unique roof? And then I would like to separate roof and the body. Could you help me?


5 replies

Userlevel 1
Badge +15

Hi @totree30​,

Assuming that footprints are 2D, DEM is ground level, LAS include roof tops:

  • Assign unique id to footprint with Counter
  • Drape copy of footprint by LAS data - this will be the eave line
  • Drape another copy of footprint on DEM - this will be floor line
  • Extract lower bound of floor line with BoundsExtractor
  • FeatureMerger to merge floor line bound attribute on eave line
  • Extract upper bound of eave line, then subtract lower bound of floor line to get wall height
  • Extruder to extrude eave line by negative wall height to create walls
  • Clip LAS by copy of eave line with Clipper
  • Use clipped LAS and copy of eave line in TINGenerator to create roof surfaces - group by footprint id

This should give you wall surfaces and roof surfaces for each building, linked by footprint id.

Badge

Hi @totree30​,

Assuming that footprints are 2D, DEM is ground level, LAS include roof tops:

  • Assign unique id to footprint with Counter
  • Drape copy of footprint by LAS data - this will be the eave line
  • Drape another copy of footprint on DEM - this will be floor line
  • Extract lower bound of floor line with BoundsExtractor
  • FeatureMerger to merge floor line bound attribute on eave line
  • Extract upper bound of eave line, then subtract lower bound of floor line to get wall height
  • Extruder to extrude eave line by negative wall height to create walls
  • Clip LAS by copy of eave line with Clipper
  • Use clipped LAS and copy of eave line in TINGenerator to create roof surfaces - group by footprint id

This should give you wall surfaces and roof surfaces for each building, linked by footprint id.

Thank you for the replying! Could you give me an detail about getting the eave line?

Badge

Thank you for the replying! Could you give me an detail about getting the eave line?

Oh and floor line as well! I used the Lowest point of LAS and assign it as a floor elevation.

Userlevel 1
Badge +15

Thank you for the replying! Could you give me an detail about getting the eave line?

To get the eave line, use the SurfaceDraper transformer to drape the footprint lines on the LAS. To get the floor line, drape the footprint on the DEM in the SurfaceDraper.

Badge +1

Thanks for answering, you made my day :)

Reply