I am looking to create buildings with accurate height representation within a city.
My lots contain a building height attribute, which allows me to create 3D buildings to the correct height. However, due to the fact that my height attribute data was collected using Lidar, my height attributes are representative of the highest point on the building (often the ridge or chimney on a roof). As such, when I place a roof on my extruded building the height becomes an over estimate by the amount of height the roof itself adds.
Is there any way to incorporate the roof height within the building model attribute so that the height of the building is correct once the roof is added?
If you only know the maximum height you must assign a roof angle, then assuming a gable roof you eave height will be: MaxHeight-(0.5*BuildingWidth*tan(roofAngle)) or for a shed roof MaxHeight-(BuildingWidth*tan(roofAngle))
or if you know the eave height the and the max height you can calulate the roof slope: Gable: atan(2*(MaxHeight-EaveHeight)/BuildingWidth) Shed: atan((MaxHeight-EaveHeight)/BuildingWidth)
building width will equal scope.sx (or .sy or .sz) assuming the scope is aligned to the geometry and it is a building with a simple rectangular footprint.
If you only know the maximum height you must assign a roof angle, then assuming a gable roof you eave height will be: MaxHeight-(0.5*BuildingWidth*tan(roofAngle)) or for a shed roof MaxHeight-(BuildingWidth*tan(roofAngle))
or if you know the eave height the and the max height you can calulate the roof slope: Gable: atan(2*(MaxHeight-EaveHeight)/BuildingWidth) Shed: atan((MaxHeight-EaveHeight)/BuildingWidth)
building width will equal scope.sx (or .sy or .sz) assuming the scope is aligned to the geometry and it is a building with a simple rectangular footprint.
Great idea, it may get a little bit complex as i have a few different roof types under a random attribute selector, but I am sure I can work on the theory to come up with something,