public void ByOutlineTypeAndLevel_PolyCurveCeilingTypeLevel_ProducesCeilingWithCorrectArea() { var elevation = 100; var level = Level.ByElevation(elevation); var outline = new[] { Line.ByStartPointEndPoint(Point.ByCoordinates(0, 0, 0), Point.ByCoordinates(100, 0, 0)), Line.ByStartPointEndPoint(Point.ByCoordinates(100, 0, 0), Point.ByCoordinates(100, 100, 0)), Line.ByStartPointEndPoint(Point.ByCoordinates(100, 100, 0), Point.ByCoordinates(0, 100, 0)), Line.ByStartPointEndPoint(Point.ByCoordinates(0, 100, 0), Point.ByCoordinates(0, 0, 0)) }; var polyCurveOutline = PolyCurve.ByJoinedCurves(outline); var ceilingType = CeilingType.ByName("Generic"); var ceiling = Ceiling.ByOutlineTypeAndLevel(polyCurveOutline, ceilingType, level); BoundingBoxVolume(ceiling.BoundingBox).ShouldBeApproximately(100 * 100, 1e-3); }