BoundingBoxXYZ GetModelExtents( Document doc )
{
FilteredElementCollector quick_model_elements
= new FilteredElementCollector( doc )
.WhereElementIsNotElementType()
.WhereElementIsViewIndependent();
IEnumerable<BoundingBoxXYZ> bbs = quick_model_elements
.Where<Element>( e => null != e.Category )
.Select<Element,BoundingBoxXYZ>( e
=> e.get_BoundingBox( null ) );
return bbs.Aggregate<BoundingBoxXYZ>( ( a, b )
=> { a.ExpandToContain( b ); return a; } );
}