Revit API:草图 Sketching 基本知识
前言草图模式,或者说 Sketching 是 Revit 的基本功能。 Revit 里面的很多图元和构件都需要编辑轮廓,那么它们就必须有 Sketch 这个元素。构件的例子:墙、楼板、楼梯、屋顶等。图元的例子:拉伸体、开孔、范围等。草图模式 API按照二维和三维划分,二维有 SketchPlane、Sketch、ModelCurve。三维有GenericForm和Path3D。二维草图...
前言
草图模式,或者说 Sketching 是 Revit 的基本功能。 Revit 里面的很多图元和构件都需要编辑轮廓,那么它们就必须有 Sketch 这个元素。
构件的例子:墙、楼板、楼梯、屋顶等。
图元的例子:拉伸体、开孔、范围等。
文章中图片均转自官方文档。
草图模式 API
按照二维和三维划分,二维有 SketchPlane
、Sketch
、ModelCurve
。三维有GenericForm
和Path3D
。
二维草图
官方文档:二维草图
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
是一个平面,它是一个抽象的概念,没有边界。平面本身有两个方向,XVec
,YVec
,还有一个原点,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
三维草图包括:
- Extrusion
- Revolution
- Blend
- Sweep
实际上,这就是在 Revit 里面创建立体几何图形的几种方法,参考 GeometryCreationUtilities
API。
参考:Revit API 几何专题 5: 体 - Solid
Extrusion
定义草图轮廓,起始位置和结束为止,拉伸一个几何体,如下所示。
Revolution
绕轴旋转,需要一个轴、角度和旋转轮廓。
Blend
定义起始位置和结束位置,起始轮廓和结束轮廓。
Sweep
三维路径 Path3d,SketchPlane,以及SketchPlane上面的轮廓,扫略得到几何图形。
更多推荐
所有评论(0)