基于Revit API 二次开发优化暖通数据提取与统计
2021-06-03陈培旺
陈培旺
(广东博意建筑设计院有限公司,广东 佛山 528300)
目前Revit 涵盖方案、建筑、结构、设备四大专业,同时能参与方案、设计施工、后期运营维护三大过程,是一款应用于BIM(Building Information Modeling,建筑信息模型)技术的常用软件[1]。Revit 在设计阶段能进行参数化设计、多专业协同设计,多样化出图,这是传统CAD 设计所不具备的强大功能[2-3]。然而,Revit 在建模设计上有不少缺点,如模型搭建命令单一繁琐,相同的建模操作不能一键复制,缺乏便捷性;建模有时无法有效搭建族块;搭建模型的族块类型有限;模型信息统计查询繁琐等,这些不足在影响设计效率的同时,也间接阻碍了BIM 技术的发展和应用[4-5]。面对日趋复杂的工程项目和Revit 自身建模功能不完善的背景下,基于Revit API 二次开发,不断优化改进其操作和功能,是当今提高BIM 技术应用的一个重要方向[6-7]。
1 二次开发流程及暖通插件构思
基于Revit 2015 二次开发流程如图1。
图1 基于Revit 2015 二次开发流程图
针对暖通专业统计和数据输出功能,在Revit 软件自身统计混乱,统计步骤繁琐、统计数据无法一键导出Excel 格式的情况下,基于Revit API 二次开发单独统计暖通专业工程材料量、暖通专业设备参数明细及造价的插件。设计的插件构想图如图2 所示。
2 暖通插件制作
IExternalCommand 是Revit API 用户通过外部命令来拓展功能的接口,本插件用此外部拓展接口进行二次开发。根据图2 构思插件的界面,二次开发的内容主要包括插件窗体的设计、初始化窗体、显示族参数和获取族参数。
图2 插件设计的界面
2.1 设计窗体界面
插件界面包括主窗体设计及子窗体界面,主窗体设计内容包括:添加WPF 窗体、添加现有项目、添加引用及添加窗体控件。通过TreeView 控件展现所需要统计的内容,即工程量、参数、成本三个方面。在界面的右下角的“统计”和“导出”来实现对暖通专业工程量、参数、成本统计,及针对的统计数据进行导出。子窗体设计内容,主要是在窗体上放置能显示Revit 模型族参数的DataGrid 控件,通过编写应用程序标记语言XAML 赋值给窗体控件。
2.2 初始化窗体
以参数明细统计功能为例,参数明细统计有子项“空调设备”“水泵”“空调水管直径长度”及“风管面积”。用CountSubCategory 类来封装下面的数据:
a.字符串“空调设备”“水泵”“空调水管直径长度”“风管面积”。
b.“空调设备”“水泵”“空调水管直径长度”“风管面积”分别对应的族参数。
c.“空调设备”“水泵”“空调水管直径长度”“风管面积”分别对应的子窗体。
TreeView 控件上包含的就是本插件主窗口所显示的三大方面的统计功能,用CountCategory 封装该“数量统计”“参数明细统计”“成本统计”这3 个字符串。将这3 个字符串对应的统计参数保存到CountSubCategory 类中。将CountCategory 类所储存的数据再封装到Vm.Count 类的属性中,这样经过创建Vm.Count 类的对象,进而将此对象传递给窗体,从而窗体得到数据,达到初始化窗体的目的。
2.3 显示族参数
将保存有暖通族数据的CountSubCategory 类赋值到子窗体控件,子窗体带有DataContext 属性的Grid 控件,从而Grid 便可得到数据,这样窗体就能显示族参数。
2.4 获取参数
Revit 文件中所有的族均为图元,带有ID 编号。使用Revit 本身的过滤器筛选暖通族的ID,通过封装ID 的参数,为每个参数赋予属性,这样插件便能获取数据。
经过这4 个方面的制作内容,完成暖通插件如图3所示。
图3 完成的暖通统计插件
3 暖通插件运用案例
现通过一个地铁模型检验插件。图4 为某地铁站的Revit 模型;图5 为只显示地铁站内MEP 的模型;图6 为风管及管径工程量统计结果;图7 是空调水管参数明细统计结果;图8 为暖通空调设备成本统计结果。
图4 Revit 模型
图5
图6 对风管及管径进行工程量统计
图7 对空调水管进行参数明细统计
图8 对空调机械设备成本统计
4 结束语
本文从改进Revit 统计功能为方向,基于Revit API进行二次开发,制作了能便捷统计BIM 模型中暖通空调专业参数的统计插件。改进效果如下:
(1)本插件避免原先软件层层筛选族的方式来统计,能做到一键将暖通专业的工程量、使用的设备参数规格及设备的成本一键统计到位。
(2)能解决Revit 软件本身统计混乱。本插件能区分暖通专业和给排水专业的管道,做到精准统计。
(3)统计的数据能导出Excel 格式,解决了Revit 只能导出TXT 文本格式的问题,为统计人员提供更加便捷计算的文本格式。
Revit 软件整合了建筑、结构、MEP 三个专业,包含不同专业的建模操作,出现使用功能便捷性的缺失难以避免,针对与不同专业功能便捷型缺失的问题进行二次开发,是目前BIM 发展研究其中的一个方向。本文通过基于Revit API 进行二次开发制作针对暖通专业的统计插件,希望能对暖通专业或者其他专业同行给予启发,开发更多基于本专业情况而优化Revit 软件本身的功能或者开发其没有的功能,让BIM 技术更好地服务自己的专业。