上一讲中,我们利用WPF创建简单的界面,并通过点击按钮选择族,来显示族的信息,但如果我们想通过点击按钮建立事务实现对Revit文档的修改,就没有那么容易了,Revit从2013版之后就不允许在外部窗体下直接开启事务,这时,我们可以使用模态窗体阻止线程的运行解决此问题,窗体本质上就是用户与程序的交互界面,在窗体上设置好数据然后传递给主程序,但如果我们需要频繁的数据交互,模态窗体显然是很不方便的,RevitAPI为我们提供了外部事件ExternalEvent的方法,接下来我们使用ExternalEvent实现非模态窗体命令。
知识点介绍(关于模态与非模态窗体)
模态与非模态窗体的主要区别是窗体显示的时候是否可以操作其他窗体。模态窗体不允许操作其他窗体,非模态窗体可以操作其他窗体。
呈上代码
首先创建一个新类并继承IExternalEventHandler
注册一个通用外部事件可直接在窗体中使用事务
编写代码如下:
Class1类中修改代码如下:
窗体代码:
添加字段如下
添加构造函数重载
调用外部事件方法并建立事务
将之前创建基于标高实例的代码移动到点击按钮的事件下
窗体界面如图
运行结果:
点击创建族实例按钮
Revit中会出现通过点击按钮创建的树的实例
小编有话说
到目前为止,我们的第一个Revit二次开发 小案例就完成了,在案例中介绍了Revit二次开发很基本也非常重要的知识,其中第一讲介绍了创建族实例的方法,第二讲介绍了修改族参数与创建基于标高族实例的方法,第三讲介绍了WPF的基本知识,并通过实现了通过选择元素,在界面显示元素信息的功能,第四讲介绍了建立外部事件来实现在外部窗体下开启事务修改Revit文档。
本次小案例旨在能够激发大家对Revit二次开发的兴趣,帮助大家快速熟悉二次开发的过程。
在Revit中修改管道附件中部分构件的显示情况。在Revit建模过程中,需要在模型中放置设备,例如风机,可以分为吊装式和落地式的,两者的区别在在于有无底座,这时就可以通过控制族中部分构件的显示情况来满足要求。
以下是中建八局revit mep视频培训教程,百度云免费下载地址 总体上比较系统的介绍revit安装教学软件的介绍和基本操作安装方面的知识及其管线综合碰撞