1. A computer-implemented method for carving a building from a first three-dimensional model comprising a plurality of polygons representing a plurality of buildings in a three-dimensional environment, comprising: (a) determining which of the plurality of polygons represent a portion of a roof or a non-roof feature based on an orientation of the respective polygon; (b) identifying a mesh of polygons representing at least a portion of a roof of a building in the plurality of buildings from among the polygons determined in (a) using discontinuities between the polygons determined in (a); (c) determining, based on the mesh of polygons identified in (b), a volume of the first three-dimensional model, the volume representing the building; (d) determining an amount of overlap between each roof component of the first three-dimensional model determined in (c) and a second three-dimensional model representing the building; (e) culling the volume determined in (c) from the first three-dimensional model to carve the building from the first three-dimensional model; and (f) merging the culled first three-dimensional model and the second three-dimensional model, wherein the culling (e) and the merging (f) occur when the amount of overlap determined in (d) exceeds a threshold.