之前小编分享了不少关于Revit二次开发的文章,今天我们想继续聊聊这个话题,讲跟Revit接口有关的一些内容。
RevitAPI提供了强大的类库,配备一套完整的机制规范和扩展Revit的功能,Revit主要提供了RevitAPI.dll和RevitAPIUI.dll两个类库文件,其中封装了大量的库函数供开发者调用,一般开发者都需要调用IExternalCommand函数来实现外部应用,如果Revit处于运行状态下,外部命令就会被触发激活,当使用者调用该命令,软件会自动地去访问模型数据。
如果开发者创建的外部命令被集成在Revit中后,一般通过Revit功能区的附加模块栏目或者外部自定义菜单栏进行触发。
Revit提供了IExternalCommand接口用于使用者访问模型数据,该接口只提供Excute()函数,因此用户需要重载该函数来进行开发,该函数主要提供了输入参数commandData、输出参数message和输出参数elemnt,不同的参数功能基本能满足用户者的需求。当调用到接口后,如果实际访问到模型数据,需要使用库函数中的类函数,Revit为用户访问数据提供了UIDocument和Document两个大类,Document类主要用于访问模型上的数据,例如模型的场地和位置、模型中梁板柱等元素的数据等,UIDocument类提供更好的用户交互性,比如当用户希望获取选中的Revit模型中某个构件的数据,利用该类中的函数将会获得软件给出的数据。
Revit也为用户提供了用于添加外部应用的接口IExternalApplication,该接口封装了OnStartup和OnShutdown函数。如果用户希望在Revit原有的功能栏中添加需求的功能项目,该接口将能提供更多的方便用于个性化UI开发,但是无法访问模型的数据。
Revit将每次修改模型的操作都会进行一个自动记录,该行为称为事务,如果一个修改操作没有被完成,当软件执行外部命令的时候就会抛异常,这时候会产生事务回滚的现象。事务的模式主要有手动模式和自动模式,其也提供了Transaction、SubTransaction以及TransactionGroup三个类。
- BIM学习群
- 微信扫一扫
- 微信公众号
- 微信扫一扫