Exemplo n.º 1
0
 public static PlaneSurface ToRhinoSurface(this DB.PlanarFace face) => FromPlane
 (
     face.Origin,
     face.XVector,
     face.YVector,
     face.FaceNormal,
     face.GetBoundingBox()
 );
Exemplo n.º 2
0
 public static PlaneSurface ToRhinoSurface(DB.PlanarFace face, double relativeTolerance) => FromPlane
 (
     face.Origin,
     face.XVector,
     face.YVector,
     face.FaceNormal,
     face.GetBoundingBox(),
     relativeTolerance
 );
Exemplo n.º 3
0
        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) }));
        }
Exemplo n.º 4
0
        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));
        }
Exemplo n.º 5
0
 static public bool IsVertical(PlanarFace f)
 {
     return(IsHorizontal(f.FaceNormal));
 }
Exemplo n.º 6
0
 public static PlaneSurface ToRhinoSurface(this DB.PlanarFace face, double relativeTolerance) => RawDecoder.ToRhinoSurface(face, relativeTolerance);