This is a very complex task… a simple convex hull would help because too big… the bottom areashas to be detected as ground ans some how deleted… then a convex hull may be a start… deleting the vertices very near to this… adding an (inverse ?) concev hull to substract the upper part… recursivley trying this approuch but this will not help fro slanted roofs… the deth of the recursion has to be controlled checked…
I guess there are thousend of scientific papers about reconstruction building from aerial data…