趙全斌王昌輝程浩
(山東建筑大學 土木工程學院,山東 濟南250101)
建筑信息模型BIM(Building Information Modeling)技術以其可視化、參數化、協同效率高及對項目在全壽命周期中的優化作用得到廣泛認可,近年來發展極其迅速[1]。BIM技術不僅在工民建、道路橋梁、設備機電等諸多項目中扮演著輔助的角色,并且在深化設計、碰撞優化等方面也發揮著舉足輕重的作用。許多工程中以三維模型為基礎,借助于BIM技術的可視化、精細化、信息化等特點,解決了諸多難題[2-4]。
Revit軟件是為BIM而設計的一款平臺級建模軟件,具有強大的三維建模功能。其功能豐富,可以滿足大多數情況如參數化建模、工程量統計、圖紙繪制等的需求,并在國內外擁有大量的應用案例[5-8],但有些需要實現更多、更復雜功能的項目中,對Revit軟件提出了更高要求。設計者需要利用二次開發工具,通過Revit軟件提供的應用程序編程接口API(Application Programming Interface),自行開發所需的功能。
二次開發技術作為BIM學習與應用中的一個研究熱點,具有積極的實用和理論價值,能夠解決快速建模、信息管理以及數據交互等方面的一系列應用難題,從而提高工作效率、縮短工作周期,得到了建筑業研究者廣泛關注。雖然很多BIM軟件(如Tekla Structure、CATIA、SketchUp、Civil3D、SolidWorks等)都能實現自身的二次開發,可以應用到項目中并取得很好的效果。但是,Revit軟件作為一款出色的平臺級建模軟件,其二次開發技術應用范圍及應用價值更大。
二次開發是指發現軟件存在的問題后,有針對性地編寫新的功能,并通過應用程序編程接口,將新程序載入到軟件中,以豐富軟件功能,達到預期目標。Revit二次開發所具有的豐富功能[9]見表1。
Revit API是Revit軟件提供的應用程序編程接口,具有豐富的功能。開發者能夠通過Revit API將其應用程序集成到Revit軟件中,以擴展和增強Revit的功能和應用。Revit API允許開發者通過任何與.NET兼容的語言編程,這些語言有Visual Basic.NET、C#、C++、F#等。歐特克提供的.NET API類都位于Autodesk.Revit開頭的命名空間中,其中常用的命名空間見表2[10]。

表2 常用的命名空間表
Revit API借助Microsoft Visual Studio平臺,依托編程語言,進行Revit二次開發。Revit二次開發所需的條件包括:Revit軟件、Microsoft Visual Studio、Revit SDK(Software Development Kit,軟件開發工具)等。
Revit全系列產品均包含Revit API平臺,隨著Revit API的不斷更新換代,Revit軟件的功能拓展能力也越來越強。Microsoft Visual Studio是一套基于組件的軟件開發工具,可用于構建功能強大、性能出眾的應用程序。SDK包含Revit API開發手冊“RevitAPI.chm”、Revit API示例“Samples文件夾”以及初學者需要閱讀的入門文檔。另外,SDK中提供的AddinManager.dll插件可以較為方便地加載二次開發程序。
Revit二次開發的流程主要包括:可行性分析、架構設計、編寫代碼、注冊加載、調試等步驟[11]。
若通過Revit API訪問和擴展Revit,開發者必須在自己開發的插件中繼承Revit提供的特殊接口。Revit軟件提供的外部程序實現接口有:外部命令(IExternalCommand)、外部應用(IExternalApplication)和數據庫(Database)級別的外部應用(IExternalDBApplication)。其區別在于接口和重載的函數不同,啟動方式也有所差別。如需在Revit中調用上述3種接口生成的插件,還應使用.addin文件對插件進行注冊。
針對工程實際需求,設計者利用二次開發工具,通過Revit API自行開發所需功能,如快速建模、信息管理和數據交互等,以提升工作效率,全面滿足項目需求。另外,由于目前還沒有軟件能獨立實現BIM全生命周期信息管理和共享,API便成為打通各款軟件實現數據交互的重要工具。
三維建模功能是Revit軟件最重要的功能,決定了快速建模將成為Revit軟件使用者最強烈的需求。通過Revit二次開發調用和創建參數來實現快速建模,是當前的研究熱點,涉及土建、機電和其他等眾多方向。
2.1.1 土建工程
土建工程中往往包含大量的重復建模,通過Revit二次開發,可以利用程序自動執行建模過程,從而實現快速建模。
(1)上部結構
在建筑專業中,趙全斌等[1]研究了異型玻璃纖維增強混凝土GRC(Glass fiber Reinforced Concrete)幕墻系統的深化設計建模;李暢等[12]開發了類WP多面體的參數化建模插件,為其他異型建筑建模提供了開發經驗。對于結構專業,陸海燕等[13]研究了剪力墻邊緣構件參數化設計,提出了一種基于BIM技術的剪力墻邊緣構件參數化設計模型;張維錦等[14]總結出一種實現柱結構三維模型的快速生成方法。而朱愛民[15]借助于Revit API進行了腳手架程序開發,實現了腳手架專項工程安全計算和腳手架智能建模,在一定程度上解決了腳手架布置及計算困難的問題。在歷史木屋文物保護方面,YANG等[16]研究開發一個以斜交梁框架為單元的木屋蓋結構參數化建模工具,能夠自動創建參數化梁單元,并通過嚴格的關系將它們連接在一起。同時,正在研究開發另一個快速建模插件,該插件可以通過Revit API從全站儀點和地面激光掃描數據中獲取參數化光束模型,實現快速精確建模。
(2)基礎
為實現基礎的快速建模,孫昱等[17]基于Revit的二次開發實現了10 000余根地下錨桿的自動生成和長度統計;張維錦等[18]研究開發了一種能自動快速創建地下連續墻的程序。隨著二次開發技術的發展,在實現基礎建模的同時還能進行承載力計算,張維錦等[19]提出了一種基于Revit二次開發的樁基承臺自動設計算法,提高了樁基工程建模效率和準確性,更加符合工程需要。
(3)鋼結構
鋼結構因其建模復雜而成為研究的重點。為解決輕鋼龍骨建筑Revit建模復雜的問題,羅仲東等[20]研究了一種基于Revit的輕鋼龍骨復合墻參數化建模插件。喬恩懋等[21]建立空間網架結構模型,在自動化快速建模的同時能夠自動檢查干涉和遺漏,提高了鋼結構空間網架的建模效率;孟祥良等[22]基于Revit二次開發,編制了裝配式鋼結構在Revit軟件環境下的校核一體化程序。
2.1.2 機電工程
Revit能夠在三維視圖中直觀地進行機電設計,由此,機電設計的準確率得到明顯提高。與建筑結構建模相比,機電建模更為復雜,且碰撞凈高等方面要求更高。為更好地應對工程要求,減少建模員的工作量并提高建模效率,研究者對機電工程進行了相應的開發研究。
在電氣系統中,錢海等[23]基于Revit二次開發,研究了電氣設備族創建、編輯和統計的方法。對于消防噴淋系統,羅遠峰[24]研究了一種將CAD噴淋圖紙快速轉換成三維模型的方法;張慎等[25]開發了基于Revit的建筑消防噴頭輔助建模軟件。在管道及支吊架系統中,馬勇軍等[26]借助Visual C++編程語言,通過二次開發在Revit中建立一個支吊架自動布設程序;潘洪潔等[27]基于Revit二次開發,研究了管道吊架參數化插件,提供了管道吊架布置功能和管道吊架校核功能;李亞克等[28]研究了通過Revit二次開發技術批量調整管道管徑與坡度值的實現方式。
在城市基礎設施的重要組成部分——地下管網方面,CHEN等[29]研究開發了一個利用Revit軟件對地下管網進行有效建模的二次開發系統。該系統包括獨立的管點和管段模型。通過Revit API,從管道數據庫中提取管道點的空間位置和屬性數據,并從管道數據庫中提取相應的管道數據。之后,將自建管道模型庫中的族插入到空間位置并添加屬性數據,以此創建管道系統中的所有管道實例。模型庫的擴展和快速建模使BIM技術在地下管網三維可視化中的應用更加方便。
2.1.3 其他工程
在橋梁工程中,重點解決各種橋梁形式的參數化建模問題。孫中秋等[30]對連續剛構橋梁結構形式及變化規律進行了研究,提出了基于Revit二次開發的連續剛構橋梁信息模型的參數化創建方法;楊璽[31]開發了斜拉橋建模程序,通過外部命令調用構件族來完成斜拉橋的建模工作;杜德潤等[32]以懸索橋為研究對象,開發了實體及鋼筋建模模塊,并實現了自動建模、施工模擬、成本分析在BIM核心軟件中集成。
在水利工程中,重點解決各類水利設施的參數化建模問題。丁大志等[33]從建模方面進行了二次開發研究,實現了桶式結構防波堤三維BIM設計模型的快速參數化建模;伍丹琪等[34]研究開發了一個泵站廠房上部建筑的參數化建模程序,解決了泵站廠房BIM設計建模的復雜問題。
Revit模型作為一種建筑信息模型,必須要順利實現對模型信息和數據的提取和應用。Revit API提供提取和修改參數的功能,可實現設計階段、施工階段和運維階段的信息管理等用途。
2.2.1 設計階段管理
設計階段信息管理最重要的是對工程量進行管理。工程量不能很好地獲取且獲取后難以應用,一直是BIM行業的一個痛點。我國當前有多種基于BIM技術的工程量計算方式以及BIM算量工具,裴艷等[35]通過分析我國當前基于BIM技術的工程量計算方式以及不同算量方式所使用的BIM算量工具,研究證實了基于BIM設計軟件的二次開發算量軟件在工程量計算中更具優勢。針對相交構件工程量扣減和歸并等關鍵問題,歐陽業偉[36]提出利用Revit二次開發提取模型數據的解決方法;史松峰等[37]基于Revit二次開發技術實現了變電站的BIM模型鋼筋、混凝土、門窗等工程量的自動提取;康笑語[38]研究了裝飾工程量計算實現方法;于鑫等[39]基于Revit的二次開發,得到了三維鋼筋算量。
在設計階段,還可以實現一些專業數據的計算,比如預制率、材料特性等。陳遠等[40]研究了基于Revit模型的預制裝配式混凝土建筑預制率計算方法;孫慶霞等[41]分析了基于Revit模型的被動式超低能耗綠色建筑外墻傳熱系數計算方法。
在搭建高質量模型過程中常涉及來自不同學科和背景的參與者。在整個過程中,設計建模人員的不同優先級通常會導致沖突,從而對項目結果產生負面影響。為了防止這種結果發生,需要有效地管理建模過程。YARMOHAMMADI等[42]提出了一種基于Revit API的解決方法,直接從BIM軟件中實時自動收集詳細的模型繪制數據,以及在設計開發階段有效地計算衡量建模效率。這些指標可以用來合理安排建模團隊,以搭建更高質量的建筑模型。
2.2.2 施工階段管理
除了在設計階段進行快速建模和工程量管理外,二次開發還可以在施工階段通過搭建Revit模型管理平臺,實現信息的管理。
楊靜等[43]開發了計算機輔助塔機規劃系統,解決了塔機型號管理、塔機數量預估及塔機布置與輔助定位等問題。牛文榀[44]利用二次開發工具,創建了深基坑“監測管理”等插件,實現了深基坑監測數據在BIM模型中的導入、計算和結果顯示。陳威[45]研究了基于BIM模型的放樣方法。李鑫等[46]基于Revit二次開發,研究了施工場地布置與優化技術。鄧朗妮等[47]提出了基于Revit軟件的施工安全管理模塊。
在施工過程中,適當利用場外施工模擬技術,不僅可以提高可持續性,保證工人健康和安全,還可以大大加快施工進程,提高可交付成果的質量。SHARMA等[48]在工程原型的BIM模型中,利用已定義的關鍵參數,通過應用程序編程接口進行二次開發,實現以更符合施工場景的方式完成設計迭代,并以自動化方式運行優化。
2.2.3 運維階段管理
通過建立運維管理插件,促進BIM技術在運維階段的發展。郭思怡等[49]就建筑信息模型的輕量化進行研究,降低了使用過程中對硬件的要求,提高了Revit模型的普適性,為運維階段的應用提供幫助。李明博等[50]研發了運營隧道病害檢測結果三維可視化技術。石志道[51]提出了消防設施管理,實現了復雜建筑模型中消防設施信息的提取、消防管道的修改和重建。賀海建等[52]對某高鐵站臺大跨度空間鋼結構健康監測及其預警系統進行了相關研究。王茹等[53]提出了裝配式建筑質量信息模型概念,研究了裝配式建筑質量控制監測。
在傳統的索賠管理系統中,延期EOT(Extension of Time)索賠往往導致關鍵施工利益相關者之間的糾紛。將傳統系統轉移到數字環境中,有助于實現高效處理。ALI等[54]針對普遍存在的EOT索賠管理過程中的29個問題,使用Revit API開發一個基于BIM的索賠管理系統BIM-CMS來管理EOT索賠過程,在很大程度上可以作為解決大多數已確定問題的工具,同時還可緩解締約方之間的潛在爭端。
當前,雖然隨著技術的不斷提高,建筑物的能源效率也在逐漸提高,但居住者的行為在節能方面仍具有舉足輕重的作用。為此,人們開發了許多生態反饋系統,通過影響居住者在建筑使用過程中的行為來減少建筑能耗。FRANCISCO等[55]利用BIM中的空間編碼和顏色編碼技術,提出了一種結合數字和美感的生態反饋信息表示方法。利用Revit API開發BIM集成能源可視化方法,允許用戶通過竣工BIM模型中的顏色編碼方案,直觀比較多戶建筑的二維和三維視圖中的能源消耗值。
應用BIM技術從不同來源(BIM模型、傳感器、資產數據庫)收集信息供資產管理者和設施管理者使用,有助于保證信息和數據在移交階段的可用性和可靠性。FARGHALY等[56]從資產管理的角度,研究探討了資產所有者在運營維護階段需求,綜合其所需的非幾何BIM數據,開發相關的分類法,并最終通過Revit API實現所提出的分類法。P?RN等[57]從設施管理的角度,基于Revit API研究了最小化設施管理團隊更新和維護BIM模型成本的方法。
僅靠Revit一款軟件,無法實現BIM的全生命周期的數據信息管理,這就要求開發者對Revit進行二次開發,使Revit可以同更多的BIM軟件進行數據交互。Revit作為一款平臺級軟件,可以實現數據的導入和導出。
2.3.1 外部數據導入Revit軟件
將外部數據從其他軟件導入到Revit,可以簡化Revit建模的過程。馬成等[58]研究了在Revit模型中讀取CAD信息,并自動生成相應的軸網與軸網編號的方法。王建宇等[59]分析了在Revit中基于DWG二維圖形的三維快速重建功能。徐迪等[60]展現了從PKPM模型到Revit模型的轉換方法。
能源與環境設計先鋒LEED(Leadership in Energy and Environmental Design)是全球公認的最受歡迎的綠色建筑標準之一。在LEED中,評估選址和交通對生態系統和人類生活的可持續影響是一項關鍵而艱巨的任務。與這些事項相關的分數需要根據經驗耗費大量的時間和精力手動計算。為加強BIM在LEED認證中的應用,CHEN等[61]研究以Revit API和GoogleMaps API為開發工具,將BIM與Google地圖等Web地圖服務相結合,將外部的地圖模型、位置信息、LEED分析標準等數據集成到Revit中的LEED-BIM插件,在Revit中實現LEED的位置分析和分數計算,簡化了LEED中站點選址和交通分析的認證過程。
2.3.2 Revit數據導出到其他BIM軟件
將Revit數據導出到其他BIM軟件,多為結構分析軟件,從而彌補Revit在結構分析方面的不足。針對復雜建筑結構在Ansys、Abaqus、Midas等有限元分析軟件中建模困難、效率低下等問題,姚翔川等[62]研究了將Revit模型轉換成Ansys數值計算模型的方法;宋杰等[63]研究了Revit與Ansys的結構模型轉換接口;王玄玄等[64]開發了Revit-Abaqus模型轉換接口,打通了Revit與Abaqus之間的數據壁壘,實現了Revit中復雜結構模型導入Abaqus進行精確的結構計算分析;董卯等[65]基于Revit二次開發技術,先獲取Revit中橋梁模型所含的幾何參數、彈性模量、泊松比、容重、密度、阻尼比等模型信息,再利用開發的MCT文件生成接口程序,實現模型由Revit到Midas的直接轉換。
PKPM和YJK作為國內主要的結構分析軟件,需要加強與Revit的協同應用。喬保娟[66]等在Revit平臺下開發了PKPM與Revit雙向數據接口軟件,為PKPM和Revit的協同提供了解決方案。YJK軟件具有企業自行開發的Revit模型轉換接口。楊平[67]應用YJK官方的轉換接口,將Revit的結構模型導入到YJK中,并對轉換效果進行了研究分析。
Revit二次開發應用于快速建模、信息管理以及數據交互,但要解決一個工程問題,往往需要綜合這3個方面的內容,以實現解決方案的完整性。實際工程中,研究人員綜合上述3個方面,在樁基設計計算的BIM應用及有限元分析[68]、基于BIM技術的橋梁工程參數化建模及二次開發應用研究[69]等方面進行了深入研究,提出了較為完整的解決方案。
(1)樁基設計計算的BIM應用及有限元分析解決方案
快速建模 開啟Revit API的Transaction.Manual事務模式,使用Creat.NewFamilyInstance命令創建樁基。通過插件窗體中的ComboBox下拉列表選定所要創建的樁的類型,確定了基準面,在得到樁底和樁頂相對標高后,使用創建樁命令完成樁基的創建。
信息管理 通過讀取CFG樁中的信息參數,判斷CFG樁中的參數是否為需要選取的參數。將規范中的經驗公式編寫成代碼,進行單樁承載力和復合地基承載力計算。在Revit模型中可以查看和修改CFG樁的數量、單樁體積、總體積以及承載力信息。
數據交互 將Revit模型利用ACIS中間文件導入Abaqus軟件中進行結構分析。
(2)基于BIM技術的橋梁工程參數化建模及二次開發應用研究
快速建模 通過Revit提供IExternalApplication外部應用接口完成了對橋梁Ribbon界面的擴展,通過IExternalCommand外部命令接口完成對按鈕控件功能的實現,外部命令通過按鈕控件相關的繼承自RibbonItemData配置類的API與按鈕相關聯起來。同時,使用二次開發完成拉伸、融合、旋轉、放樣和放樣融合等操作,創建實體和剪切體,設置參照平面,并利用Document.FamilyCreate創建尺寸標注。
信息管理 利用RevitAPI中的FamilyManager.AddParameter等命令進行一般族參數、共享族參數和族類型參數等族參數的創建與設置。
數據交互 采用Com組件的方法進行二次開發,將明細表中的數據輸出到Excel中。
近年來,建筑業對于BIM技術的關注度逐年提高,而Revit軟件作為一款出色的平臺級BIM軟件,其二次開發技術應用范圍更廣,應用價值更大。基于Revit二次開發的程序功能涵蓋了快速建模、信息管理和數據交互等3個方面,但是受制于Revit數據框架和編程語言的掌握程度,開發者多為軟件開發企業和高校科研團隊。選擇二次開發的研究方向,除了根據工程實際需要外,還可以基于前人已有的成果進行拓展研究。二次開發的成果是不斷積累的,并最終逐步完善。
BIM技術有助于促進綠色建造和建筑業轉型升級。主要表現為:(1)裝配式建筑與BIM融合發展,實現產業鏈信息共享,推動裝配式建筑智能升級;(2)應用BIM進行正向設計和正向項目管理,即直接在三維環境下進行模塊化參數化設計、方案優化、自動出圖、圖紙與模型相互關聯、與計算模型結合、同步優化等設計工作;(3)建筑垃圾減量化要求推進BIM技術在工程設計和施工中的應用以及推進功能模塊和部品構件標準化。隨著BIM技術的深入發展,建筑裝配式、BIM正向設計與正向項目管理等實際應用提出更高的要求,因此,Revit二次開發具有廣闊的應用前景。