面向 BIM 模型二次开发数据提取与应用技术

转载
6次浏览
BIMOpen GLAPI数据模型
1点赞
评论
举报
2021-2-5

摘 要 目的 在 BIM 技术中面向数据提取与应用研究相对较少现状下,提出一套完整高效率的 BIM 数据提取与应用技术方案,解决建筑行业中各专业之间在施工过程中数据使用效率低的问题. 方法 通过对 BIM 模型数据需求的分析,利用 Revit API外部功能扩展方式,研究 Revit 对象的访问、过滤、编辑与创建,形成了基于构件的数据提取方案; 结合 SQL Server,对 BIM 模型构件图元实现基于关系数据库的数据储存,并创建形成构件拓扑关系; 利用 Open GL 三维图形库,采用完全面向对象设计方法,进行三维模型重建的研究. 结果 笔者所提方案实现了 BIM 模型的数据提取至数据库,进行数据库的关联查询,模型重建,构件查找. 结论 数据提取与应用技术具有可行性,在建筑工程领域具有一定的应用价值; 能够解决模型与信息相互独立、模型抽象、信息断层等问题,实现模型与信息的完美结合.
关键词 BIM; 数据提取; 拓扑关系; Open GL; API

建 筑 信 息 模 型 ( Building Information Modeling ,BIM ) 结合了所有的模型信息、功能需求和构件属性,将一个建筑项目整个生命周期内的所有数据信息整合到一个单独的BIM 模型 中[1]. 以 IFCs 信 息 格 式 作 为 图 档信息交换标准的 BIM 模型越来越受建筑产业的重视,其优点在于能将图形与非图形信息整合于文件模型中,减少不必要的信息格式与纸本文件转换、提高了信息处理的效率.然而至今为止,BIM 数据的研究成果仍着重在规划设计时间的应用以及 BIM 信息交换标准的建立上,对于 BIM 在项目计划与施工管理的应用上,则仍尚未有具体的发展. 因此美国则进一步发布了国家 BIM 标准,其目的在于规定项目施工过程中的各项程序、信息需求及作业成果,以作为建立 BIM 信息模型的参考依据. BIM 可以看作数位化的建筑3D 模型,在这个模型中,建筑构件所包含的数据信息,除几何尺寸外,还包含建筑或工程的数据.BIM 技术 作 为 一 种 可 以提 升 工程项目质量,增强工程项目全生命周期管理效果的新兴技术、运用了信息技术手段与土木工程知识,达到了三维可视化的图纸增强效果,减少工程施工障碍的目的. 在工程施工领域中,由于计算机仿真、建模与优化、虚拟现实、BIM 理念等先进技术广泛而深刻的结合,数据信息提取实现了可视化管理,提高了数据信息提取的使用效率,特别是在施工过程中展现了高效率和方便性[2].万小飞等[3]研究了各种建筑图元的参
数,根据其中的参数不同,采用不同的方法对图元进行数据提取,从而实现建筑图元的抽取和三维重建; 邱天在万小飞完成的基础上完成了图元三维建模和建筑空间关系提取. 针对目前 BIM 模型数据使用不方便的问题,笔者提出了一种 BIM 模型的二次开发数据提取与应用技术方案. 在 BIM 模型中实现了数据提取与储存的功能. 在使用的过程中,结合了 SQL Server 数 据库、Open GL、Win-form 等多种技术手段,实现了数据的关联查找,模型重建,以及构件查找功能.
1 BIM 提取的技术
1. 1 Revit API 功能扩展方式
Revit API 是应用程序接口,为软件的二次开发提供了强大的支持. Revit API 通过使用两种方式来扩展 Revit 功能,External Com-mand 和 External Application. External Com-mand 实现外部命令的功能,需要新建类,并从 IExternal Command 接口派生; 然后,重载IExternal Command. Execute( ) 方法; 最后,需要添加编写的代码来实现功能需求[5]. 使用外部工具进行加载,External Application 实现外部应用的功能. External Application 是通过 On Startup( ) 和 On Shutdown( ) 方法的联合使用,在命令进行时不需重新启动 Revit.exe,只要重新加载就可以了,这样才能实现功能扩展[6 - 7].
1. 2 Revit API 对象访问
Revit API 有两种 方式 根 据标 识 对 不 同对象的进行辨别和访问[8 - 9]. 第一种方式是系统族的实例. 只用类名来判断. 第二种方式是可载入族的实例. 通过类名无法分辨出来,梁、柱子等实例都是 Family Instance 的实例.需要与对象的类别( Category) 一起来判断.应该采用 Built In Category 来创建 Element Cat-egory 对象,并且对对象进行访问.

1. 3 Revit API 对象过滤
Revit 二次开发平台中 所有的对象遍历都要使用 Filtered Element Collector 类,它的作用是收集被过滤的对象,同时也对当前文档中的对象提供了过滤的功能,在过滤操作时可以联合多个过滤器一起使用[10]. 过 滤 之后,满足条件的对象集合就被这个收集器获取. Revit 可以通过三种不同的方法实现 Fil-tered Element Collector 对当前项目文档过滤,过滤的方法、名称、特点及实例如表 1 所示.


2 主要设计方法
笔者首先分析了 Revit API 两种外部功能扩展方式,研究了 Revit 对象的访问、过滤、编辑与创建等方法,随后对数据提取方法进行了分析,最后形成了一套完整的数据提取方案. 实现了面向 Revit 二次开发的数据提取方法、数据存储方法以及实现图元间拓扑关系. 随后利用 Open GL 实现了模型的重生以及利用 Winform 在模型中具体图元的查找. 总体技术路线如图 1 所示.


图 1 总体设计方案
Fig. 1 General design plan
2. 1 数据提取设计
2. 1. 1 数据提取的方案
为了方便构件数据的使用,针对 BIM 模型提出了一套完整的数据提取方案,并对建筑信息模型中的构件进行完整的提取. 数据提取的流程如图 2 所示.

数据的提取思想主要是根据各个构件来进行提取,首先对模型中的所有构件进行过滤,将过滤出的图元放在收集器中,然后遍历收集器中的所有图元,判断是不是墙,如果是墙,得到墙的集合,继续判断墙集合能不能形成闭合的轮廓,如果是闭合的轮廓,那么在相应的闭合轮廓内创建房间,最后将墙上实例的属性、墙的属性以及房间的属性提取出来,为下一步数据存储做好准备.

2. 1. 2 数据提取的创新点
BIM 模型 的 数 据 与构 件间 拓扑 关 系 至关重要. 这样提取的好处是通过在每个墙体的闭合轮廓内创建一个房间,将房间、墙体、门、窗、洞口等族实例紧紧联系在一起,从中提取到墙的数据,房间的数据以及墙上构件实例的数据,便于数据的关联查询和使用.
2. 2 BIM 数据库的设计
2. 2. 1 BIM 数据库的构建
BIM 技术 的 核 心 在于 建筑全 生 命 周 期过程中信息模型的转换与共享. 目前的 BIM软件自带的数据库存在着数据导出时丢失或者冗余的问题. 为了解决此问题,结合 SQLserver 构建 一 个 基 于 BIM 模 型 的 数 据 库.BIM 数据库的开发可以任意添加数据,可以准确、完整的存储数据信息,并且无数据丢失、错误的输出. 保证了 BIM 模型数据的完整性和可靠性. 进一步在 BIM 数据库的基础上开发各种 BIM 应用软件从而真正实现建筑信息模型的数据转换与共享. BIM 数据库的开发,需要对建筑信息模型进行深入的研究,从模型中找出构件之间的关系[11].
鉴于以上分析,本方案中 BIM 数据库的构件主要包含 3 张数据表,分别为①房间的数据表,保存了 BIM 模型中房间的属性以及构成房间的墙体 ID; ②墙体的数据表,保存了 BIM 模型中墙体的属性以及墙上构件的ID ; ③墙上构 件的 数 据 表,保 存 了 墙 上构 件的属性.为了使每条记录都可以被唯一识别,便于和其相关的语句相映射,需要定义 ID 来使数据库中每条记录可以被唯一识别,以便于在各个表之间建立主键和外键的关系[12]. 表2 所示为一个存储房间数据的数据表,以房间的 ID 作为主键,其他的字段包括文件名、名称、周长、面积、标高以及围成房间四面墙的 ID 等,清晰地反映房间的属性[11].
表 2 房间数据库表
Table 2 Room database table

2. 2. 2 构建的创新点
传统的 BIM 数据库,是以构件为单位建立的数据库. 然而,每个建筑模型中有很多构件,且关系复杂,这样的构建方式会使数据库没有条理性. 而本研究所采用的方法,仅使用3 张数据表,使得数据结构简单,清晰,维护便捷,大大降低了数据存储的难度[13 - 14]. 仅需要提供要操作的建筑信息模型,无需改动数据库本身,使用时可以实现数据库的关联查找. 提高了数据的使用效率.
2. 3 BIM 模型重建
2. 3. 1 Open GL 概述
Open GL 是一个三维的计算机图形和模型库,从本质上说,它是一种应用程序编程接口,而不是一种编程语言[15]. 使用 Open GL可以创建出精致漂亮的 3D 模型.
2. 3. 2 Open GL 的工作流程
Open GL 的工作流程如图 3 所示. 其中,几何物体含有多个顶点和它描述的元素,如点、线和多边形组成,Open GL 中的所有集合物体最终都是用顶点来描述,定点的数据除了包含顶点坐标之外,还包括许多属性数据,而数据沿着箭头方向进行传输,评价器将计算每一个顶点,随后光栅化为片元,执行完片元操作之后将光栅化后的数据直接送入到帧缓存器中[16 - 17].


图 3 Open GL 工作流程图
Fig. 3 Flow chart of Open GL
2. 3. 3 Open GL 重建模型
模型重建的流程如图 4 所示. 先过滤出所有墙体实例,在获取每个墙体的轮廓坐标,根据数据提取出构件的点坐标,将其相应的缩小一定的倍数,在利用 Open GL 库提供的函数实现了模型的重建. 与原模型形成了对比,方便查找一些构件之间的关系.


图 4 重建模型流程图
Fig. 4 Reconstruction model flow chart
2. 4 构件查找设计
2. 4. 1 界面应用程序设计
应用程序开发中最常见的情形之一是在窗体中显示模型与数据,Windows 窗体对 Revit后台数据的处理提供全面支持,可以访问模型中的数据,并在窗体上显示和操作数据[18].笔者利用 Winform 界面实现模型重建与构件查找的设计,总体思路如图 5 所示. 首先创建 Winform 窗体来实现人机交互,在Winform 界面中添加一些自定义控件并且改变其属性,然后过滤出视图中所有的标高,接着根据标高过滤出所对应的构件 ID,最终实现图元在模型中被点亮的过程.


图 5 构件查找流程

2. 4. 2 设计的特点
通过 Winform 的设计,实现了人机交互的过程,界面优美,方便维护,可以在线更新,使用起来更方便. 当想要查找某一构件在模型的位置的时候,需要知道该构件的标高,根据标高选择相应的 ID,就可以实现图元点亮. 这样,即方便了构件的查找,又方便了使用[19].
3 实验结果
3. 1 数据的分析
3. 1. 1 数据提取与存储
将提取出的数据直接存储到 SQL Server中,可以实现数据库关联查找的功能. 在数据库中建立了三个表,其中一个表的提取结果如图 6 所示,该图表示存储了房间的一些数据以及房间的轮廓,如本模型的 rvt 文件,房间的ID、名称、周长、面积、标高以及多面为成房间的墙体 ID,都清晰的展现在数据表中,为后续查询工作打下良好的基础. 通过某一个房间还可以找到围成房间的轮廓,也就是墙体的 ID.这样可以得到房间的属性以及围成房间的多面墙,进而形成了墙体之间的拓扑关系. 多个墙体构件对应于一个房间,房间与墙的数据实现关联查找,墙上实例的数据可以通过墙来查找. 利用建立房间将其他构件连接在一起便于查询和使用. 可以实现数据的快速查询与应用.


3. 1. 2 数据库的应用查询
数据库的关联查询是存储数据的最主要应用. 通过房间数据表可以找到墙的 ID,然后在墙的数据表中找到与之对应的 ID,这样房间的数据以及墙的数据都展示在一个数据表中. 通过构件间的拓扑关系,实现了数据库的关联查找功能.
3. 2 数据的应用
3. 2. 1 模型重建
Open GL 提供了完善的图形变换功能和真实感图形动画功能,利用 Open GL 三维图形库,将 BIM 模型中的图元进行三维实体真实感的重现[20]. 如图 7 所示,利 用 Open GL库提供的函数实现了模型的重建. 重建模型与原模型形成了一一对应的关系,可以得到房间以及墙体的位置关系. 构件间的拓扑关系也会呈现出来. 模型可以随着 X 轴、Y 轴或者 Z 轴从 - 180°到 + 180°的旋转,也可以用面或者线的模式浏览重建模型,点击复位按钮,模型就会回到与BIM 模型中对应的原


图 7 构件重建示例图
Fig. 7 The sample diagram for rebuilding component
始位置. 这样即实现了模型重建,又方便了使用人员从不同的角度使用不同的模式来浏览重建模型.
3. 2. 2 构件查找
在重建模型的基础上,可以实现构件查找. 根据标高的提示,先选择要查看构件的标高,标高选择完毕之后,点击 ID 选项就会列出所有的当前标高下所有构件的 ID. 点击点亮按钮之后相应的图元就会被点亮. 墙体构件查找示例如图 8 所示. 根据标高和 ID 找到了一个墙实例,这个墙实例就被点亮,实现了重建模型的空间查找.


图 8 墙体构件查找示例图
Fig. 8 Example diagram for searching w all component
4 结 论
面向 BIM 模型数据提取技术进行数据的提取、存储、模型的重建以及构件的查找是可行的,可大大提高施工工作效率. 研究结果表明: 关系数据库的查找功能是可行的,且图元的三维查找功能也是可行的. 随着 BIM 提取与存储技术的发展,可以解决模型与信息相互独立、模型抽象、信息断层等问题,实现模型与信息的完美结合. 通过进一步的提取与应用功能完善,本应用方案及相关技术在建筑施工领域具有广泛的应用前景.

出处:钟 辉1,李 驰1,孙 红2,张 珂2,面向 BIM 模型二次开发数据提取与应用技术【J】,2019.


1点赞
评论

评论区

不超过500字