=========【更多高级应用请关注公众号】========
===================================
创建Area的方法是Document. Create. NewArea,RevitAPI提供三个重载函数创建面积。
① Area NewArea(ViewPlan areaView, UV point):在给定的一个面积平面视图 (AreaPlan)和一个放罝点(UV),在该放置点创建一个面积。如果该视图不是面积视图,会有异常 InvalidOperationException 抛出。
•如果在该放置点有闭合回路,那么创建的面积会自动绑定该回路。
•如果在该放置点没有房间边界可以绑定,会有警告框弹出:面积不在完全闭合的区
域中。
•如果在该放置点已有一个房间,也会有瞥告框弹出:多个房间位于同一个闭合区
域中。
代码:创建面积
using (Transaction transaction = new Transaction(RevitDoc))
{
transaction.Start("Create Area");
//如果在点(30.0, 30.0)这个位置找不到面积边界,将会有警告对话框弹出。
Area area = RevitDoc.Create.NewArea(areaView, new UV(30.0, 30.0));
transaction.Commit();
}
② NewAreas(List<AreaCreationData〉dataList):每一组数据包含一个平面视图(ViewPlan)和一个放置点(UV),来创建一系列的面积,效果等同于使用同样的输人而多次调用NewArea。
③其他一些和创建面积相关函数:ModelCurve NewAreaBoundaryLine(SketchPlane sketchPlane,Curve geometryCurve,ViewPlan areaView)。给定一个草图视图,一条曲线和一个面积视图,创建一条面积边界曲线(ModelCurve)。调用该方法形成一个闭合区域之后,取该区域的一个点,再调用New Area就可以在该点处创建面积了。
代码片段4-25创建了一个四方形闭合区域,然后在该区域内的一个点处创建一个面积。
注意:一般而言,该区域必须是闭合或者接近闭合(误差不超过1英寸)。
代码:创建四方形闭合区域并在其上创建面积
void CreatArea(Autodesk.Revit.DB.Document RevitDoc)
{
using (Transaction transaction = new Transaction(RevitDoc))
{
var create = RevitDoc.Create;
//通过创建四条面积边界线来形成一个正方形的闭合区域
transaction.Start("Create Area Boundary");
var sketchPlane = areaView.SketchPlane;
create.NewAreaBoundaryLine(sketchPlane,
Line.CreateBound(new XYZ(20, 20, 0), new XYZ(40, 20, 0)), areaView);
create.NewAreaBoundaryLine(sketchPlane,
Line.CreateBound(new XYZ(40, 20, 0), new XYZ(40, 40, 0)), areaView);
create.NewAreaBoundaryLine(sketchPlane,
Line.CreateBound(new XYZ(40, 40, 0), new XYZ(20, 40, 0)), areaView);
create.NewAreaBoundaryLine(sketchPlane,
Line.CreateBound(new XYZ(20, 40, 0), new XYZ(20, 20, 0)), areaView);
transaction.Commit();
//在新创建的面积边界的中心点(30.0, 30.0)位置放置一个面积
transaction.Start("Create Area");
Area area = create.NewArea(areaView, new UV(30.0, 30.0));
transaction.Commit();
}
}