1. A method comprising: receiving a three dimensional (3D) surface representing a geographic area, the surface having elevation values associated with points of the surface and the geographic area comprises a structure having a geographic footprint smaller than the geographic area; projecting, by a processor, the elevation values into a two dimensional (2D) plane; generating an intensity image comprising pixel values based on corresponding elevation values of the 2D plane; segmenting the intensity image in the 2D plane to distinguish the structure from other portions of the intensity image; detecting a shape representing the geographic footprint of the structure in the geographic area from the segmented intensity image by: detecting a pattern representing the geographic footprint of the structure in the geographic area from the segmented intensity image; identifying the pattern as the shape; determining a confidence level in the identified shape based on a percentage of the shape that required extrapolation from the pattern to form the shape; and determining that the detected pattern is the identified shape if the determined confidence level is above a predetermined confidence threshold; and constructing a 3D model of the structure by assigning heights to the shape from the pixel values based on the elevation values projected into points of the 2D plane corresponding to the shape.