基于Revit API的BIM数据提取方法研究

2020-06-08 01:24李栋王宇杰
现代信息科技 2020年19期
关键词:三维可视化二次开发数据库

李栋 王宇杰

摘  要:建筑信息模型技术在现今建筑行业中有着广泛应用,但在技术应用上仍有一些问题亟待解决,比如把BIM通过Web端展示将极大提高便携性和跨平台性。针对上述问题,提出一种基于Revit API的相对高效的BIM模型数据和材质信息的提取方法。通过Revit API提供的函数对对象的信息结构和获取方法进行研究,形成基于类型过滤的数据提取方案。所述方法实现了.rvt文件BIM模型和材质信息的数据提取,可供前端展示时进行数据库的信息查询、模型渲染、材质数据显示。

关键词:BIM;三维可视化;Revit;二次开发;数据库;数据提取

Abstract:Building information modeling technology is widely used in todays construction industry. However,there are still some problems to be solved in the technical application. For example,displaying BIM through Web terminal will greatly improve portability and cross-platform. To address the above problems,a relatively efficient extraction method of BIM model data and material information based on Revit API is proposed. The information structure and acquisition method of the object are researched through the functions provided by the Revit API to form a data extraction scheme based on type filtering. The method implements data extraction of BIM model and material information from .rvt files,which can be used for database query,model rendering and material data display in front-end display.

Keywords:BIM;3D visualization;Revit;secondary development;database;data extraction

0  引  言

20世纪70年代,乔治亚理工学院的教授Chuck Eastman引入了BIM(建筑信息建模)的概念。中国也非常重视BIM技術的发展和应用,国务院办公厅2017年《关于促进建筑业持续健康发展的意见》中也明确阐述了BIM的重要性。

BIM涉及的行业非常广泛,不仅应用于建筑领域,水利、交通等行业也得到了基本普及。作为建筑设计的新技术,BIM技术使用现代信息技术统一各种资源,和实际操作联系在一起,并将各种信息整合在三维模型数据库的设计、建设、运营和完成建筑的整个过程中,从而有效地解决了建筑从设计、建设到运营、维护的整体协同工作的问题。

中国的BIM技术应用起步较晚,直到2005年,欧特克为推广其软件在国内宣传BIM进入中国,BIM的概念才逐渐在国内得到认知。《2010中国商业地产BIM应用研究报告》和《2011中国工程建设BIM应用研究报告》在一定程度上说明了BIM在中国工程建筑行业的发展现状。根据这两份报告,国内建筑行业对于BIM的认知水平从2010年的60%上升到2011年的87%。2011年,共有39%的单位表示他们使用过BIM相关的软件,其中大部分是设计单位。到2020年底,甲级勘察、设计单位以及特级、一级房屋建筑工程施工企业应掌握和实现BIM与企业管理系统的集成应用程序和其他信息技术。建筑信息模型技术是建筑业信息化的体现,BIM技术可将施工周期所有数据信息整合,为施工过程做好前期工作,同时,电子内容减少了信息格式与纸质文件转换,可极大方便人员作业,因此BIM技术也越来越受到行业重视。

但在上述背景和实际项目需求下,BIM作为一项快速发展的技术,仍有一些问题亟待解决。例如,众多BIM以Autodesk公司的Revit软件为工具进行制作,其保存的.rvt格式文件只能在Revit软件内查看,便携性较差,存在客户端软件固有的缺点。

若使用B/S架构将BIM置于Web端进行展示,则能够极大方便设计和施工人员查看。故本文提出一种方法,可将.rvt格式模型文件的关键数据提取出来以供Web端展示所用。

本课题小组隶属于成都理工大学信息科学与技术学院软件工程系,在合作项目的建筑施工设计阶段遇到设计沟通烦琐、效率低下等问题,故开展此项研究,以解决BIM展示方式单一等问题,从而节省时间的目的。项目整体流程大致为“数据提取-信息持久化-渲染展示”。前期任务主要是确定提取方法和信息持久化数据结构,即所述研究内容,并为课题小组内其他后续研究如“Revit几何模型提取与Web可视化研究”提供基础。

1  基于Revit API数据提取方法介绍

1.1  Revit API简介

Revit API是Autodesk公司为开发者提供的Revit应用程序的开发接口,为开发者基于Revit软件的二次开发工作提供了强有力的支持。Revit为开发者提供了丰富而强大的.net API,可用于自动化重复性的任务,扩展Revit的核心功能。Revit提供的.net API允许用户使用VB.NET、C#和C++/CLI等任何.net兼容的语言进行编程。

1.2  Revit API的优点

通过Revit API可以极大程度地将Revit的强大功能应用在其他平台上,可以更高效的二次开发,实现性能、便捷等方面需求。它使用两种方式来扩展Revit功能:一种是Revit自带的,使用Revit API中直接为开发者提供的函数;另一种是开发者自行编写。本文所述方法利用Revit API使用数据名称进行查找访问所需数据。

1.3  数据提取方法

在Revit中有一个重要概念——族(family)。本文所述的方法即使用Revit API依次确定族类别、族类型、族实例。

首先使用类型过滤,即可得到每种数据类型。根据得到数据类型的不同,使用相应的用于获取数据的Revit API函数进行数据提取。程序运行过程中函数返回的结果存放于内存中,待模型信息和颜色信息提取完成写入JSON文件持久化保存,材质预算等信息在提取完成后存入搭建好相应表结构的MySQL数据库。两部分数据在Web端展示时可由系统同时调用组合展示。

2  数据提取主要方法

2.1  设计思路

本小节介绍数据提取的思路要点和注意事项。主要思路为使用Revit API提供方法提取BIM中的数据属性信息和模型信息,存放在已建立完整数据结构的数据库表中。实现过程需要注意以下要点:

(1)一般的BIM模型材质信息都十分复杂、细节较多,所以对于建筑模型中的各项具体构件,将其在数据库中按一定规则进行存放;

(2)将模型的图形构建信息和模型各材质的参数属性信息分开提取,模型文件变为纯图形文件,不带任何参数信息,存放在本地或服务器中。各构件属性信息通过其ID访问,由其对应的Revit API获取其材质参数(若是在Revit API中没有对应的参数,需要先在该文件中写好),提取后放入各构件所对应的数据表中;

(3)构件的信息除自身拥有的由数据提取所需的ID外还映射对应模型的ID及对其信息文件的操作所需的ID,并为所有的映射建立一个映射表。

2.2  数据库设计

以建筑的词汇按照规定的建筑语法进行构建设计的建筑能给人们带来更为直觀的感受,所以在庞大的建筑词汇中,有必要归纳总结出一些常用的词汇,便于设计和使用,从而提高工作效率。故根据Revit自身元素参数进行分类,以常用参数举例,如:墙体(wall)、楼板(floor)、柱(column)、屋顶(roof)等常用结构构件以及门(door)、窗(window)、家具(elseelement)、植物(plant)等附着构件。本文提出的方法需要对数据库进行设计实现,将整理设计好的建筑词汇制作成数据库表的形式添加所需数据列,其数据结构如图1所示。

运用Revit API将需提取的元素参数数据存入数据库中并标记所属模型ID和所属用户ID以实现多用户和多模型数据。

由于Revit二次开发是以C#进行代码编程的,因此本课题选取了SqlSugar ORM作为数据库连接访问库,其优势在于以下几点:

(1)高性能,达到原生最高水准,比SqlHelper性能要高,比Dapper快30%,比EF快50%;

(2)支持多种数据库,可以在多种数据库中用一种编程方式;

(3)支持.netCore;

(4)支持多库并行计算;

(5)带有实体生成函数和T4模版生成实体;

(6)无须任何配置,主键可为若干个;

(7)轻量级,一个DLL只有150 kB,一个EFDLL有5 MB,一个EF扩展DLL有500多kB。

因此在众多.NET框架中,SqlSugar ORM是较为容易使用的数据库访问库。运用所给出的API可以很好地实现本文中所述方法对数据的处理。

2.3  实现过程

为实现数据的分别提取,并尽可能减少程序运行时的负担,提高数据存取速度,实现对Revit API高效二次开发的目的,该小节设计实现了一个将基本功能进行封装的插件。插件的工作流程如图2所示。

图2  插件工作流程图

对于自动和手动两套工作流程需要以下两点说明:

(1)使用自动模式和手动模式两种方式对应不同的功能,自动模式下插件自动与客户端建立连接并由客户发送命令完成相应操作,手动模式下需要用户自行操作;

(2)插件的输入数据为Revit文件地址,输出数据通过写入导出新的JSON文件所存放的地址确定(自动模式下文件的访问路径和生成JSON文件的路径都是默认选择路径)。导出方式可提供仅数据导出、仅模型导出、全部导出三种导出方式。

2.4  提取效果

对数据进行分别提取后,可以将模型的Web端展示。在Web端展示的三维模型可以通过对构件的点击选择查看对应的参数信息,如图3所示。

3  结  论

通过对Revit API的二次开发可以有效地将BIM模型的材质属性数据与三维图形数据分离,并分别保存,关系型数据库能够实现各属性值相互关联的存储办法。数据部分可单独用于数据分析,模型部分可结合属性参数用于网页端快速展示。该提取技术在一定程度上提高了BIM模型的加载速度,简化了参数信息的获取,模型信息和参数信息既单独存储用又同步加载展示,在智能建造领域有引鉴之处。

参考文献:

[1] 陶婉婉.基于二次开发方法的BIM模型数据提取方法研究 [J].价值工程,2019,38(8):159-161.

[2] 钟辉,李驰,孙红,等.面向BIM模型二次开发数据提取与应用技术 [J].沈阳建筑大学学报(自然科学版),2019,35(3):560-566.

[3] 伍丹琪,陈俊涛,肖明.基于Revit二次开发的泵站厂房参数化BIM解决方案 [J].水电与新能源,2019,33(4):15-18+68.

[4] 陈志杨,罗飞.基于WebGL的Revit三维建筑模型重建 [J].浙江工业大学学报,2016,44(6):608-613.

[5] 陈宁.试析Revit三维显示技术的开发与应用 [J].数字技术与应用,2019,37(1):117-118.

[6] 王凤起.BIM技术应用发展研究报告 [J].建筑技术,2017,48(11):1124-1126.

[7] 包行健.BIM技术在建筑设计中运用和发展趋势 [J].中国室内装饰装修天地,2019(24):177.

作者简介:李栋(1998.11—),男,汉族,河北保定人,本科在读,研究方向:软件工程。

猜你喜欢
三维可视化二次开发数据库
例谈对高中数学教材中习题的二次开发
浅谈CAD软件二次开发的方法及工具
例谈课本习题的“二次开发”
基于ArcScene平台的电子沙盘制作
数据库
3D机房运维可视化系统的设计与实现
数据库
数据库
数据库