本文演示创建面积边界及面积。
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace RevitAddin4
{
[TransactionAttribute(TransactionMode.Manual)]
public class RevitAddin : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
UIDocument uiDoc = commandData.Application.ActiveUIDocument;
Document doc = uiDoc.Document;
ViewPlan viewPlan = doc.ActiveView as ViewPlan;
if (viewPlan == null)
{
TaskDialog.Show("错误", "不是viewPlan");
return Result.Failed;
}
using (Transaction tr = new Transaction(doc))
{
Autodesk.Revit.Creation.Document document = doc.Create;
//通过创建四条边界线来形成一个正方形的闭合区域
tr.Start("Create area bound");
var sketchPlane = viewPlan.SketchPlane;
document.NewAreaBoundaryLine(sketchPlane,
Line.CreateBound(new XYZ(20, 20, 0), new XYZ(40, 20, 0)), viewPlan);
document.NewAreaBoundaryLine(sketchPlane,
Line.CreateBound(new XYZ(40, 20, 0), new XYZ(40, 40, 0)), viewPlan);
document.NewAreaBoundaryLine(sketchPlane,
Line.CreateBound(new XYZ(40, 40, 0), new XYZ(20, 40, 0)), viewPlan);
document.NewAreaBoundaryLine(sketchPlane,
Line.CreateBound(new XYZ(20, 40, 0), new XYZ(20, 20, 0)), viewPlan);
tr.Commit();
//在新创建的面积边界中心点(30,30)处放置一个面积
tr.Start("Create area");
Area area = document.NewArea(viewPlan, new UV(30.0,30.0));
tr.Commit();
}
return Result.Succeeded;
}
}
}
执行结果:(注意:正常情况下,面积只能绘制在面积平面中。所以当前视图为面积平面时,该程序才能正常运行)

如果想为上述“面积”加上"面积标注",在创建面积之后,事务提交之前,加上代码:
document.NewAreaTag(viewPlan,area, new UV(30.0,30.0));
执行结果:

本文介绍了一个Revit插件实现面积边界的创建及面积放置的方法。通过定义正方形闭合区域并放置面积,展示了如何使用Revit API进行操作。此外,还介绍了如何添加面积标注。
715

被折叠的 条评论
为什么被折叠?



