加入BIM圈
2019-06-01 20:39 发布
Revit开发 - 尺寸标注(Dimension)
代码:
using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Autodesk.Revit.UI.Selection;
using System;
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;
Selection selection = uiDoc.Selection;
//选择待标注的对象
Reference reference1 = selection.PickObject(ObjectType.PointOnElement);
Reference reference2 = selection.PickObject(ObjectType.PointOnElement);
ReferenceArray refArray = new ReferenceArray();
refArray.Append(reference1);
refArray.Append(reference2);
Element element = doc.GetElement(reference1);
Line line = element.GetGeometryObjectFromReference(reference1) as Line;
if (line == null)
TaskDialog.Show("错误", "不是line");
return Result.Failed;
}
//旋转90度,作为尺寸标注线
double dir = Math.Acos(line.Direction.X) + Math.PI / 2;
Line dirLine = Line.CreateUnbound(line.Origin, new XYZ(Math.Cos(dir), Math.Sin(dir), 0));
//在事务中创建尺寸标注线
using (Transaction tr = new Transaction(doc))
tr.Start("Create detail curve");
doc.Create.NewDimension(doc.ActiveView, dirLine, refArray);
tr.Commit();
return Result.Succeeded;
最多设置5个标签!