一、草图编辑
草图编辑在Revit中被广泛用于创建各种元素,包括绘制和修改模型的形状。
没有用于创建元素的绘制形状的绘画也属于草图编辑,例如,用鼠标移动的操作画一根曲线,在已经创建好的楼板上绘制褶皱来修改楼板的几何形状等。
草图编辑在用户界面上有专门的窗口区域,不同的元素提供不同的绘制草图的工具集,标准的工具集一•般有两种: 方法 |
描述 |
public static SketchPlane Create(Document document, ElementId datumId); |
从网格、引用平面或者标高等元素创建一个草图平面 |
public static SketchPlane Create(Document document, Reference planarFaceReference); |
从一个几何平面创建一个草图平面 |
public static SketchPlane Create(Document document, Plane plane); |
从一个几何平面的引用创建一个草图平面 |
public void CreateModelCurve(Autodesk.Revit.DB.Document doc)
{
// 在族文档中找到名字为"Ref. Level"的标高
FilteredElementCollector collector = new FilteredElementCollector(doc);
collector = collector.OfCategory(BuiltInCategory.OST_Levels);
var levelElements = from element in collector
where element.Name == "Ref.Level"
select element;
List levels = levelElements.ToList();
if (levels.Count <= 0)
return;
Level refLevel = levels[0] as Level;
// 创建一条几何直线,一个基于标高的草图平面,然后在这个草图平面上创建一条模型线.
using (Transaction trans = new Transaction(doc, "Create model line."))
{
trans.Start();
Line line = Line.CreateBound(XYZ.Zero, new XYZ(10, 10, 0));
SketchPlane sketchPlane = SketchPlane.Create(doc, refLevel.Id);
ModelCurve modelLine = doc.FamilyCreate.NewModelCurve(line, sketchPlane);
trans.Commit();
}
}
public void CreateSketchPlaneByPlane(Autodesk.Revit.ApplicationServices.Application app, Autodesk.Revit.DB.Document doc)
{
using (Transaction trans = new Transaction(doc, "Create model arc."))
{
trans.Start();
Plane plane = app.Create.NewPlane(XYZ.BasisZ, XYZ.Zero);
SketchPlane sketchPlane = SketchPlane.Create(doc, plane);
Arc arc = Arc.Create(plane, 5, 0, Math.PI * 2);
ModelCurve modelCircle = doc.FamilyCreate.NewModelCurve(arc, sketchPlane);
trans.Commit();
}
}
public void GetSketchFromExtrusion(Document doc,ElementId extrusionId)
{
Extrusion extrusion = doc.GetElement(extrusionId) as Extrusion;
SketchPlane sketchPlane = extrusion.Sketch.SketchPlane;
CurveArrArray sketchProfile = extrusion.Sketch.Profile;
}
Revit中的三维模型,如拉伸(Extrusion)、融合(Blend )、旋转(Revolution )、放样 (Sweep)、放样融合(SweepBlend),都使用到了草图。不但在创建好的模型中可以获取到它的草图(Sketch属性),而且在创建过程中(比如NewExtunsion等方法)也需要使用到草图平面和轮廊。
=========【更多高级应用请关注公众号】========
==================================