張 昆
(中國建筑科學研究院建筑工程軟件研究所,北京 100013)
基于BIM應用的軟件集成研究
張 昆
(中國建筑科學研究院建筑工程軟件研究所,北京 100013)
本文從建筑軟件開發的角度對BIM軟件的集成方案進行初步研究。從接口集成和系統集成兩大方面總結了BIM軟件集成所要面臨的問題,為國內BIM軟件開發提供借鑒。
建筑軟件;BIM;軟件集成
我國的建筑軟件業發展起源于20世紀70年代,從那時起計算機在我國建筑業中的應用得到較大的發展,從結構計算和分析發展到建筑物理、暖通空調、地基基礎、勘察測量等多個方面。1983年,國家8個部委發起35個單位成立聯合研制組,著手研制“建筑工程設計軟件包”;1989年,由華遠公司開發的我國第一套擁有自主版權 CAAD系統——HOUSE系統問世[1]。歷經6個“五年計劃”,解決CAE、CAD以及計算機輔助管理的問題。迄今,我國建筑軟件業已經發展了近30年,在工程建設的不同階段中都能看到各種應用軟件,小到桌面級別的建筑查詢工具,大到項目企業級別的信息化系統。以工程建設應用軟件為主導業務的知名企業也隨之涌現。
目前,國家對BIM密切關注,相關政策陸續出臺,“十一五”計劃中把“建筑業信息化關鍵技術研究與應用”作為國家科技支撐計劃重點項目,重點支持建筑業信息化中的標準體系、全生命周期的建筑信息模型(BIM)、協同設計與管理、建筑工程設計與施工的協同工作和信息共享、項目過程管理、集約化管理以及系統集成等關鍵技術的研究,被建設部認可為“建筑信息化的最佳解決方案”。清華大學軟件學院BIM標準研究課題組在歐特克中國研究院的支持下于2009年3月正式啟動,用兩年時間完成中國建筑信息模型標準(CBIMS)的研究。
BIM軟件工具在實現BIM的環節中起著紐帶作用。BIM軟件涉及面很廣,在整個建筑周期都可以見到BIM軟件的影子,如圖1所示[2]。

圖 1[2]
圖1顯示在BIM過程中人們所需的BIM軟件種類,如果單一拿出某種類別來說,國內尚能找到相應的軟件產品,但從建筑信息的互通互用上來說,會有不少軟件產品被阻擋在BIM軟件工具之外。
無論從國家政策還是行業背景來看,BIM將成為建筑行業的一次變革,不亞于當年CAD甩圖板之變革,并有可能超越。BIM軟件產業將成為建筑軟件業發展的又一經濟增長點。
如何從軟件開發的角度參與到BIM中?如何利用原有的軟件產品資源來實現相關的BIM技術?如何最大程度地利用軟件工具來實現BIM?這些都成為國內建筑軟件廠商較為關注的問題。
BIM軟件是BIM理論實例化的必備條件之一,BIM技術將使用BIM軟件來進行支持與實現,因此BIM軟件在BIM理論中起著承上啟下的作用。
首先,BIM軟件要解決的是實現對BIM中information(信息)的傳遞性,如果對信息不存在傳遞作用,這個軟件基本可以排除在BIM之外。
其次,BIM軟件要以BIM理論為基礎,用軟件的方式體現BIM中建筑相關信息的定義、利用與管理,否則軟件從實質意義上來說是脫離BIM體制的。所有軟件都是擁有以實際需求為目的開發出來的各種功能,除去常規意義上的打開保存等,建筑軟件基本上都存在處理建筑相關信息的功能,例如填寫建筑相關數據、制作相關建筑圖形、提取相關數據、計算相關價格等,這些實現的過程就是在對建筑相關數據進行處理和利用,已成型的建筑軟件也都具有處理建筑數據的功能。
基于BIM目的的軟件集成方案可以分為兩大類,一種是對于不同軟件模塊或者系統(可以是同一公司產品也可為不同公司產品)進行接口集成達到某種建筑信息的傳遞(下稱接口集成),初級的做到單向的信息傳遞交流,高級的做到互相的信息傳遞交流;另外一種為實現某一個BIM信息系統將原為多個獨立軟件的集成(下稱系統集成),初級可也做到單一實現目的的集成,高級的做到可擴展性極強的平臺集成,以不同的目的需求取舍相關功能系統。
這里說的接口集成是指軟件本身的狹義“接口”集成,也就是通常軟件開發中常要提及的APIApplication programming interface(應用程序編程接口)。某一BIM軟件的未來其實在很大程度上要指望其軟件接口的前景如何。但在中國軟件業,開發人員在軟件架構之初只是遵循為軟件的最終使用者(用戶)來設計軟件,但是對于如何實現合理的軟件API卻只為少數人所重視,這也是中國建筑軟件業所要面臨及需要解決的問題。目前,國內基于不同建筑領域與層面的軟件都已基本成型,小到三五百元的建筑資料軟件,大到幾萬元的設計計算軟件,更大的到百萬甚至是千萬級別的應用集成信息化系統。多家軟件公司多個建筑軟件分支共同為建筑軟件使用者提供服務,多個軟件需要互相之間的數據傳遞,提供合理的API來進行相關集成將是必不可少的,這也是建筑軟件開發者所需要面對的問題。API的存在與公開,意味著軟件可擴展性是否能夠得到提升,對于擴展的深度需參照API對于軟件模塊本身控制的操作接口是否達到一定的深度來界定。

圖2 Revit API
以BIM建模軟件Revit為例[3],其提供了大量API供二次開發者對其進行調用,可對程序本身(Application),工程文檔(Document),元素(Element)進行相關操作或者讀寫相關數據,這在極大程度上方便了外部軟件的接口進入,利用從Revit生成的數據加以處理并能修改或者增加處理后得到數據結果。這樣,使BIM概念中的information得以利用和持續,這種方法應該是眾人所學習的。
據09年底不完全統計,基于Revit API開發的附加軟件(add-on)約150多種。
圖4是利用Revit API寫的基于Revit BIM模型的自動套取定額工具Demo圖片。
軟件接口集成類似于滾雪球的道理是顯而易見的。大型的建筑軟件開發商(者)可以利用開放的API讓其他開發商(者)依賴于此,將其他開發商(者)預先編寫的軟件組件組合揉入其軟件系統中來。
但是,無論設計什么樣的API,最重要的是要弄明白以什么為目標或者為誰在設計,這是關鍵點。只有在理解目標群眾的需求之后,才可能創建有用的API,才能實現恰當的接口,才能讓各種不同的軟件良好的集成。
系統集成在軟件行業中算是個比較復雜的工程。多數能實現此種集成方案的軟件很大程度上是基于軟件開發初期的架構合理。但是,現階段多數建筑軟件在架構之初由于各種原因未曾考慮過集成架構,在此基礎上發展出的軟件只是適用于某一需求方面為目的的單獨軟件。而如需適用于目前出于BIM軟件為目的的,必須考慮各種方法達到集成,下面僅以理論可行性進行相關探討。

劉清芝[4]等認為,軟件集成一般包括用戶界面集成、數據集成和代碼集成三個方面的內容[4]。

3.2.1 用戶界面集成
集成中的用戶界面,是軟件接口“廣義”定義的人機接口,既人與軟件之間的交互界面。我們把這種人—軟件之間的接口稱作“用戶界面”,也就是“UI”—User Interface。界面集成一般看來是相對簡單的集成,但是對人機互動的易用性以及美觀性均有要求。各種原單獨的軟件,由于軟件設計時本身的UI界面不一定互相協調匹配,在某種程度上是需要在原始程序代碼中進行界面的修造,達到統一協調的標準;不同的單獨軟件,開發語言和利用控件的不盡相同,在一定程度上也會影響最后UI的統一性,必要的時候也需要修改。
圖5為國外某BIM軟件的兩個產品的界面截圖。這類產品除了本身自帶的按鈕下拉菜單以外,整合了圖形相關顯示系統,并以不同目的分別集成了兩個其它軟件后單獨成為兩個軟件。
以圖5為例,集成結合的為微軟的Project軟件,這種整合僅從Project客戶端來討論,可能要涉及采用Microsoft Visual Basic for Applications(VBA)、Project向導和客戶(Project Guide and Custom Views)、COM插件(COMadd-ins)以及使用托管代碼(Integration with managed code)等方法進行整合。
以圖6為例,集成結合的是美國某概預算軟件,可能涉及概預算軟件方提供的上文提到過的API接口進行的相關功能整合。
3.2.2 數據集成
建筑軟件發展到今日,原始積累的軟件可能使用了不同的數據庫系統(DBMS)。這里所說的不同,可能是基于不同數據模型的DBMS,如關系型的或對象型的。也可能雖然都是關系型的,但不同商家的產品其SQL API不盡相同。這就需要使用相關的技術進行不同數據庫之間的數據信息傳遞、合并和共享等各種數據集成。所謂的數據集成,是對所集成對象所使用的數據庫底層進行集成,包含互相遷移和轉換、訪問調用和相互傳輸等,這也就是軟件開發中常常會提及的異構數據(Heterogeneous Database)集成技術。
異構數據庫集成技術是數據庫技術從完全集中到邏輯集中、物理分布(傳統分布式數據庫)乃至邏輯分布、物理分布(異構數據庫)這一發展過程的結果,也是兼顧已有系統自治性并實現新的數據共享這一現實需求的有效手段[5]。
以BIM技術應用為目的的前提下,要達到異構數據庫的集成效果,需要弄清楚兩個層面,一是所要達到的BIM軟件系統的數據需求,這是異構數據集成的目標,二是對現有各系統DBMS的分析對比,這樣才能對于不同的數據集成對象,異構數據集成在技術上可以考慮DBMS本身的遷移和轉換、數據庫網(信)關(Database Gateway)技術、公共協議/數據轉換協議技術、公共編程接口技術以及中間件(Middle Ware)技術;在數據結構體現形式上可以考慮分布式數據庫(Distributed Database)、構造數據倉庫(Data Warehouse)、多數據庫以及聯邦數據庫(Federated Database)。當然,上述的技術和數據結構體現形式,都有各自的優勢和劣勢,筆者僅從所了解到的國內建筑軟件現狀,對利用現有軟件達到BIM類軟件集成為目的,從下面幾點進行討論。
已有建筑軟件的BIM軟件集成,以筆者的判斷,最優選擇的技術為中間件技術、利用中間XML交換文件和架構聯邦式數據庫系統。
(a)中間件技術,是處于應用程序及應用程序所在系統的內部工作方式之間的軟件技術,它的基本思想是在各后端數據層和前端應用程序層之間建立一個抽象層。從而,對每個不同數據層的相關操作變成對單一的中間件的操作,使得使用其對異構數據庫進行集成時,可以做到用戶層對數據層的實現達到透明,并保證了訪問接口的開放性和后期的擴展性[5]。如 Microsoft的 ODBC(Open Data Base Connectivity)技術、Sun公司的JDBC(Java Data Base Connectivity)、公共對象請求代理模型既 CORBA(Common Object Request Broker Architecture)技術等就是屬于中間件技術。
XML,是1996年W3C組織設計并推薦的一種可擴展性的標記語言。XML在異構數據系統方面具有以下特點[6]:
· XML結構性強、語義性強、機能與關系數據庫(RDB)進行轉化,也能與對象數據庫(ODB)進行轉化,也能與對象數據庫(ODB)以及多媒體數據庫(MDB)進行轉換;
· XML的交互性好、易于處理、能方便的控制和表示各種數據;
· XML與平臺無關,能與各種平臺進行處理,能
用各種編程語言進行處理。
可以看出,XML可以最大程度的對現有的建筑軟件集成為BIM類軟件提供數據方面的傳遞,無論是何種原始軟件的DBMS,原始的軟件開發平臺是什么,XML均能發揮作用。值得欣喜的是,在建筑軟件業內此項技術已開始逐漸使用,多數建設工程信息化類的CS和BS系統以及一些應用軟件都已經開始采用了此項數據傳輸與保存技術并在不斷的擴大化。
(b)聯邦式數據庫系統,具有分布性、自治性、異構性三大特性。它對于各個異構的局部數據庫之間存在著一種較為松散的聯邦式耦合關系,不需要像分布式數據庫需要有統一的數據模型及全局數據模式,各局部庫通過定義輸入、輸出模式進行彼此之間的數據訪問。聯邦式數據庫系統由在不同結點上松散耦合分布的異構成員數據庫構成,各聯邦成員間的一種松散結合,可以使集成對象即聯邦成員是集中式數據庫,也可以是分布式數據庫。由于沒有全局模式,此種數據庫系統可以依據不同需求將不同的數據庫系統加入聯邦或者退出聯邦[5],其表現為擴展性強。無論何種軟件系統都需要隨時間而發展,可能不同時期需要新的數據源來滿足用戶業務不斷變化的需求。現有建筑軟件集成成為滿足BIM要求的BIM軟件就屬于此過程,在數據庫集成層面就需要類似聯邦數據庫集成技術來達到目的。
任何一種軟件開發是脫離不了代碼級別的過程參與,無論是上面提及的哪種集成方法,或多或少的要在代碼上實現。除去上面的技術涉
及的代碼實現以外,還需要考慮以下幾個方面的問題。
3.3.1 不同開發平臺的形成的代碼集成
原始積累的各種軟件,由于其歷史問題不一定是基于同一個開發平臺進行開發的,遺留下來的代碼中常使用的開發平臺有VS6.0的C++和VB,Delphi,近年來流行的.NET 的 C#、VB.NET 和 ASP.NET?;诖a集成以工作量多少分類,可以分為接口代碼集成和代碼轉換集成。
(1)接口代碼集成。多種開發語言之間的代碼集成可以考慮互相提供接口的方法,此類內容上文也涉及過,即API;或者通過唯一的中間層接口開發,所有軟件通過此中間接口達到對不同功能模塊的調用和傳輸獲得數據。常見形式以開發提供ActiveX控件和COM組件的形式提供相應的功能。
(2)代碼轉換集成。代碼轉換集成屬于一般的開發人員所不愿意接收的方法,依據開發人員的理論這是一種類似漢語翻譯成英語的過程。無論對源語言和目標語言熟悉與否,這都是一個比較痛苦的過程。微軟自.NET發布以后極力地在推進開發者從原語言平臺過渡到現在的.NET平臺上,但是可以肯定的說這種過渡是有過程的。以VB6.0與VB.NET轉換為例,雖語法都基本相同,能在最大程度上對開發語言的語法不用關注,但是對于具體的工程文件由于歷史原因所利用的原始控件以及自定義控件區別,在轉換到新平臺下都會有一定的不支持,這就需要人為的去找替代品。
3.3.2 同一種開發平臺下的代碼集成
這種代碼集成相對簡單,但是需要程序員對于原軟件中不同功能的代碼全局考慮,抽取出不同模塊的公用函數、過程以及控件,并且對于公用的名稱、過程函數全局考慮進行重構。
軟件集成是一個浩大的工程,涉及多個層面,基于BIM目的的建筑軟件集成更是如此。BIM軟件涉及面廣,在建筑全生命周期中都可以找到BIM軟件的影子,合理利用現有產品資源來應對各種BIM實現需求,應是各建筑軟件開發商在軟件集成之前必須花較多時間來做的重要工作。無論利用何種技術,其目的是最好地利用現有資源,最大程度地適應BIM技術應用的需求。
[1]李萍.建筑設計信息化技術發展概述[N].中華建筑報,2008.
[2]何關培.BIM和BIM相關軟件[J].土木建筑工程信息技術,2010,(2).
[3] Autodesk 網站 www.autodesk.com
[4]劉清芝,胡仰棟.面向對象的軟件集成技術研究[J].計算機應用技術,2004.
[5]扈書剛,談數據庫互操作問題的實現途徑[N].科技創新導報,2007,(28),TP392.
[6]鄧念東.數據集成和數據傳輸雙模式訪問異構數據庫中間件框架設既[J].工程地質計算機應用,2008,(3).
Research on Software Integration with BIM
Zhang Kun
(Institution of Building Engineering Software,China Academy of Building Research,Beijing100013,China)
This paper did a preliminary study on BIMsoftware integration solutions from the point of view of architectural software development.A conclusion was given on the problems of BIMsoftware integration in both Interface Integration and system integration aspects.It also offer a reference for domestic BIMsoftware development.
Building Software;BIM;Software Integration
TU17;TP311
A
1674-7461(2011)01-0037-06
張昆(1979-),男,工程師。主要研究方向:建筑類軟件實用技術的研究和應用、應用軟件系統集成及BIM軟件本地化。