前言

草图模式,或者说 Sketching 是 Revit 的基本功能。 Revit 里面的很多图元和构件都需要编辑轮廓,那么它们就必须有 Sketch 这个元素。
构件的例子:墙、楼板、楼梯、屋顶等。
图元的例子:拉伸体、开孔、范围等。
文章中图片均转自官方文档。

草图模式 API

按照二维和三维划分,二维有 SketchPlaneSketchModelCurve。三维有GenericFormPath3D

二维草图

官方文档:二维草图

Sketch 包含一个 SketchPlane 和表示轮廓的 Profile

namespace Autodesk.Revit.DB
{
    public class Sketch : SketchBase
    {
        public SketchPlane SketchPlane { get; }
        public CurveArrArray Profile { get; }
    }
}

SketchPlane 本质上是和一个 Plane 联系在一起的。可以通过SketchPlane.GetPlane()来获得。
CurveArrArray 包含多个 CurveArray,而CurveArray包含多个Curve
Plane 是一个平面,它是一个抽象的概念,没有边界。平面本身有两个方向,XVecYVec,还有一个原点,Origin,以及法向量,Normal,实际上这些不仅可以确定一个平面,还可以确定一个完整的坐标系。

namespace Autodesk.Revit.DB
{
    //     The parametric equation of the plane is S(u, v) = origin + u*xVec + v*yVec.
    public class Plane : Surface
    {
        public XYZ YVec { get; }
        public XYZ XVec { get; }
        public XYZ Origin { get; }
        public XYZ Normal { get; }

        public static Plane Create(Frame frameOfReference);
        public static Plane CreateByNormalAndOrigin(XYZ normal, XYZ origin);
        public static Plane CreateByOriginAndBasis(XYZ origin, XYZ basisX, XYZ basisY);
        public static Plane CreateByThreePoints(XYZ point1, XYZ point2, XYZ point3);
    }
}

SketchPlane 示例:
在这里插入图片描述
创建一个新的 SketchPlane,从它的接口可以看到有多种创建方式,不过本质是一样的,都需要一个Plane

private SketchPlane CreateSketchPlane(UIApplication application)
{
    //try to create a new sketch plane
    XYZ newNormal = new XYZ(1, 1, 0);  // the normal vector
    XYZ newOrigin = new XYZ(0, 0, 0);  // the origin point
    // create geometry plane
    Plane geometryPlane = Plane.CreateByNormalAndOrigin(newNormal, newOrigin);

    // create sketch plane
    SketchPlane sketchPlane = SketchPlane.Create(application.ActiveUIDocument.Document,geometryPlane);

    return sketchPlane;
}

三维草图

官方文档:3D Sketch
三维草图包括:

  1. Extrusion
  2. Revolution
  3. Blend
  4. Sweep

实际上,这就是在 Revit 里面创建立体几何图形的几种方法,参考 GeometryCreationUtilities API。
参考:Revit API 几何专题 5: 体 - Solid

Extrusion

定义草图轮廓,起始位置和结束为止,拉伸一个几何体,如下所示。
在这里插入图片描述

Revolution

绕轴旋转,需要一个轴、角度和旋转轮廓。
在这里插入图片描述
在这里插入图片描述

Blend

定义起始位置和结束位置,起始轮廓和结束轮廓。
在这里插入图片描述

Sweep

三维路径 Path3d,SketchPlane,以及SketchPlane上面的轮廓,扫略得到几何图形。
在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐