前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Revit二次开发——多管道线性标注(第十八期)

Revit二次开发——多管道线性标注(第十八期)

作者头像
一席青衣卧龙城
发布2022-04-21 12:24:50
6830
发布2022-04-21 12:24:50
举报
文章被收录于专栏:Revit二次开发Revit二次开发

2020年还真的是见证历史的一年,疫情爆发,美元熔断,原油暴跌,所以是玛雅预言的2012推迟了?

说回正题,来说说线性标注。

线性标注主要是提供了2种API:

但其实也算是一种,第二个可以选择标注样式。

主要的三个参数:

  • view 标注的视图
  • line 标注线
  • references 稳定的引用

这里要注意标注视图只能在平面视图或者立面视图进行,本节示例方法只可用在线性元素上。

示例代码如下:

管线标注比较简单不用访问几何图元,因此以此作为参考示例,方法基本是一致的。

代码语言:javascript
复制
            Selection selection = uiDoc.Selection;
            //选择需要标注尺寸的图元
            IList<Reference> referenceList = selection.PickObjects(ObjectType.Element, "请选择要标注的图元");
            if (referenceList.Count < 1)
            {
                TaskDialog.Show("警告", "选择数量出错,请重新选择");
            }
            Autodesk.Revit.DB.View view = doc.ActiveView;
            ViewType vt = view.ViewType;
            if (vt == ViewType.FloorPlan || vt == ViewType.Elevation)
            {
                //取得其中一个图元 获取其位置
                Element element = doc.GetElement(referenceList.ElementAt(0));
                Line line = (element.Location as LocationCurve).Curve as Line;
                Element element2 = doc.GetElement(referenceList.ElementAt(1));
                Line line2 = (element2.Location as LocationCurve).Curve as Line;
                XYZ linemiddle = line.Evaluate(0.5, true);
                //在这条线上投射指定的点的交点
                XYZ projectPoint = line2.Project(linemiddle).XYZPoint;
                Line newLine = Line.CreateBound(linemiddle, projectPoint);
                ReferenceArray references = new ReferenceArray();
                foreach (Reference reference in referenceList)
                {
                    references.Append(reference);
                }
                //调用创建尺寸的方法创建
                Dimension autoDimension = doc.Create.NewDimension(view, newLine, references);
            }
            else
            {
                TaskDialog.Show("警告", "标注视图不是平面视图或立面视图");
            }

来看一下效果:

标注前

选中要标注的管道

标注完成的效果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 精讲Revit二次开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档