前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Revit二次开发——套管位置随管道实时更新

Revit二次开发——套管位置随管道实时更新

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

2021年10月4日 天气晴,于福州。

最近很长时间没更新文章了,正好最近研究了一下套管随管道移动的动态更新功能,正好发上来大家参考。

要想实现这个功能,我认为有2种方法:

1.用DocumentChanged事件来实现。

2.利用revit提供的机制DMU功能(Dynamic Model Update)。

小编尝试使用DMU功能来实现这个过程,效果如下: http://mpvideo.qpic.cn/0bf23aaayaaa2uaitwc2krqvbwgdbtmaadaa.f10002.mp4?dis_k=46b033ba50bdc2bdc05615bcf4f4616d&dis_t=1650516618&vid=wxv_2075844648454897665&format_id=10002&support_redirect=0&mmversion=false

  1. 注册一个更新的RegisterUpdater UpdaterRegistry.RegisterUpdater(dmuUpdater);
  2. 添加一个监听接口AddTrigger UpdaterRegistry.AddTrigger(dmuUpdater.GetUpdaterId(), pipeCategoryfilter, geometryChange);

可以通过Element的以下方法来监听改变的事件:

1

GetChangeTypeAny

元素的任意改变

2

GetChangeTypeElementAddition

元素的添加

3

GetChangeTypeElementDeletion

元素的删除

4

GetChangeTypeGeometry

元素的图形的改变

5

GetChangeTypeParameter(ElementId)

指定元素的参数改变

6

GetChangeTypeParameter(Parameter)

参数的值改变

3.通过IUpdater接口注册更新元素

public class DMUUpdater : IUpdater

4. 更新的内容,都在Data里

public void Execute(UpdaterData data)

5.通过GetModifiedElementIds()来获得修改了的元素

ElementId elementId in data.GetModifiedElementIds()

6. 通过修改套管的Point 来实现跟随变化的动作

(el.Location as LocationPoint).Point = xyzNew;

基本上就是通过以上的方法来实现套管随管道变化而实时变化的。

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

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

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

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

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