private static bool CheckDistanceFromBorder(Mesh buiding, Grid grid) { Plane planeWorldXY = Plane.WorldXY; List <Point3d> points = grid.GridXY(); Point3d pMin = points.Min(); Point3d pMax = points.Max(); Point3d ptMin = new Point3d(pMin.X + (grid.DimX * Grid.MIN_NUM_BORDER_CELLS), pMin.Y + (grid.DimY * Grid.MIN_NUM_BORDER_CELLS), 0); Point3d ptMax = new Point3d(pMax.X - (grid.DimX * Grid.MIN_NUM_BORDER_CELLS), pMax.Y - (grid.DimY * Grid.MIN_NUM_BORDER_CELLS), 0); NurbsCurve border = new Rectangle3d(planeWorldXY, ptMin, ptMax).ToNurbsCurve(); Brep bbox = buiding.GetBoundingBox(true).ToBrep(); Transform xprj = Transform.PlanarProjection(planeWorldXY); bbox.Transform(xprj); foreach (BrepVertex v in bbox.Vertices) { if (border.Contains(v.Location, planeWorldXY, tolerance: 0.01) == PointContainment.Outside) { return(false); } } return(true); }