BIM网校

DIMENSION 5支持revit吗

2019-06-01 20:39 发布

1条回答
360U1462871376 BIM小白
1楼 · 2019-06-01 21:18.

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;

        }

    }

}

转载请注明来源:www.bimsq.com

一周热门 更多>