李棟 王宇杰



摘? 要:建筑信息模型技術在現今建筑行業中有著廣泛應用,但在技術應用上仍有一些問題亟待解決,比如把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—),男,漢族,河北保定人,本科在讀,研究方向:軟件工程。