public static PlaneSurface ToRhinoSurface(this DB.PlanarFace face) => FromPlane ( face.Origin, face.XVector, face.YVector, face.FaceNormal, face.GetBoundingBox() );
public static PlaneSurface ToRhinoSurface(DB.PlanarFace face, double relativeTolerance) => FromPlane ( face.Origin, face.XVector, face.YVector, face.FaceNormal, face.GetBoundingBox(), relativeTolerance );
public static Surface ExtractSurface(Autodesk.Revit.DB.PlanarFace face, IEnumerable <PolyCurve> edgeLoops) { edgeLoops = edgeLoops.ToList(); var x = face.get_Vector(0).ToVector(); var y = face.get_Vector(1).ToVector(); // Construct planar surface larger than the biggest edge loop var or = edgeLoops.First().StartPoint; // don't use origin provided by revit, could be anywhere var maxLength = edgeLoops.Max(pc => pc.Length); var bigx = x.Scale(maxLength * 2); var bigy = y.Scale(maxLength * 2); return(Surface.ByPerimeterPoints(new[] { or.Subtract(bigx).Subtract(bigy), or.Add(bigx).Subtract(bigy), or.Add(bigx).Add(bigy), or.Subtract(bigx).Add(bigy) })); }
static internal Rhino.Geometry.Brep[] ToRhino(this Autodesk.Revit.DB.PlanarFace face) { var loops = face.GetEdgesAsCurveLoops().ToRhino(); return(Rhino.Geometry.Brep.CreatePlanarBreps(loops, Revit.VertexTolerance)); }
static public bool IsVertical(PlanarFace f) { return(IsHorizontal(f.FaceNormal)); }
public static PlaneSurface ToRhinoSurface(this DB.PlanarFace face, double relativeTolerance) => RawDecoder.ToRhinoSurface(face, relativeTolerance);