張其林, 唐子涵, 滿延磊
(1. 同濟大學 土木工程學院,上海 200092;2. 上海同磊土木工程技術有限公司 研發部,上海 200433)
傳統建筑行業因高度分散的行業特性、不同參建方技術應用的不一致性等因素,存在較為嚴重的資源浪費與經濟損失現象[1]。建筑信息模型(Building Information Modeling,BIM)的出現,推動了建筑業信息化變革的浪潮。BIM技術旨在以建筑信息為基礎構建計算機建筑信息模型,使建筑設計、建造、管理等各階段信息高度集成,促進項目各參與方高效協同工作[2],提高設計施工效率、控制資源浪費。BIM技術發展的核心是在統一的數據管理平臺下實現多專業領域、多時間節點的數據共享。然而,由于建筑領域設計軟件繁多、不同軟件對結構模型的讀取與輸出機制不同,信息交互仍存在較大阻礙[3]。迄今為止,國內外仍未能實現基于一套BIM模型完成的全過程正向設計,不同階段、不同領域的設計人員常需對其他BIM軟件傳輸的模型進行大量修改或二次建模,導致模型信息不集成、不連續,且消耗大量時間、人力成本。為打破不同BIM軟件間的信息傳輸壁壘,國際智慧建筑聯盟制訂了工業基礎類(Industry Foundation Classes,IFC)標準作為國際通用的BIM數據交互標準[4],對設計信息進行存儲、傳遞、共享。IFC標準采用STEP標準與面向對象的EXPRESS語言描述,具有公開化、結構化、面向對象等特征[5-6],按照層級進行劃分的框架具有較強的可讀性與可擴展性[7],是解決BIM數據交互問題的基礎。
鋼結構作為當前應較為廣泛的建筑結構形式之一,由于其體系、構件、連接類型復雜多樣,且力學分析、設計驗算、結構深化等各階段相對獨立,對高準確性、高效率的BIM 數據交互功能的需求較為迫切。但現有的基于IFC 標準的數據交互技術對鋼結構BIM信息傳輸的準確性與完整性較低,嚴重影響了鋼結構BIM技術的推廣應用。本文提出了基于IFC標準的鋼結構BIM 全數據交互技術,其中導出技術最大限度保留了鋼結構模型信息,可獲得較高的BIM軟件IFC數據解析支持率;針對Tekla軟件開發的專用導入接口,能實現IFC模型全信息讀取與編輯,打通了鋼結構從計算、深化到出圖的全信息交互節點,實現了鋼結構BIM技術應用的高精確性與高效率。
目前,建筑設計階段對基于IFC 標準的數據交互技術的研究主要集中于IFC 數據映射、信息集成共享與相關應用開發等方面。Lipman[8]研究了鋼結構設計標準與IFC 數據的映射方法,為IFC 標準在鋼結構設計中的應用打下基礎;Wu等[9]從語義與幾何信息的角度出發提出了一種基于BIM 數據集的IFC 數據映射優化方法;Kang 等[10]設計了基于IFC標準的信息提取、轉換與加載框架,并對IFC標準與GIS標準進行了集成研究。諸多研究成果被應用于建筑、橋梁、隧道等多種結構形式的模型轉化中[11-13],使IFC標準的應用范疇得到進一步豐富與擴展。
目前在基于IFC數據交互的應用領域,多數深化設計與實體建模類BIM軟件均提供IFC格式模型的導入導出功能,如Revit、Tekla Structure、ArchiCAD、Bentley、Advance Steel等,但其應用效果并不盡如人意。許多學者在研究中指出,IFC數據于不同軟件中傳輸時存在一致性問題,Turk Z等[3]通過IFC數據轉換測試發現以IFC標準描述的建筑信息模型在不同BIM軟件間傳遞會出現信息錯誤、構件丟失、表達不一致等現象;Ghang Lee等[15]發現同一模型在不同軟件中輸出的IFC文件在大小、編號、描述構件所使用的對象類型與屬性等方面都存在差異。綜上所述,IFC數據在BIM軟件間的傳輸主要存在兩方面問題:一是模型IFC數據導出時會出現信息表達錯誤甚至丟失的現象;二是即使通過IFC文件獲取到較為完整的鋼結構模型數據,部分BIM 軟件對模型信息的解析功能仍不夠完善,且不同軟件間IFC數據到實體模型的映射算法不統一、存在信息表達歧義,難以完整準確的還原結構模型[16],影響模型傳輸效率。
在信息導出錯誤與丟失方面,以某鋼結構框架模型為例,將其在兩類BIM軟件間以IFC格式進行傳輸,模型出現了較為明顯的桿件缺失(見圖1a),且切割過的板件只保留了實體外觀,其切割信息、厚度、編號等關鍵屬性均丟失,無法進行參數化二次編輯(見圖1b)。
圖1 IFC模型信息傳輸問題Fig.1 Error in transmission of information from IFC model
在信息解析不完全方面,以鋼結構詳圖設計軟件Tekla Structures 為例,其內置 “參考模型” 功能接受*. ifc格式文件導入,但解析所得模型的信息保留率較低,大量零構件出現幾何外觀表達錯誤,無法直接用于深化設計與出圖。例如,將某圓管柱IFC 模型導入Tekla,發現柱身出現了嚴重的板件、螺栓缺失,如圖2a所示。Tekla 2020及以上版本增加了 “起始IFC 對象轉換變更管理” 功能,可通過轉換、作為擠壓轉換、作為項轉換等選項對構件進行調整,但即使經過轉換,模型仍存在構件丟失現象,如圖2b 所示,且轉換無法批量操作,對體量較大的建筑模型,逐一轉換調整構件并不現實。綜上,經由IFC 標準傳輸的鋼結構模型,常需要工程人員進行大量步驟繁瑣的修改調整,嚴重影響設計效率。因此提升鋼結構IFC 數據導出的準確性與兼容性,針對部分IFC數據解析能力不足的BIM軟件創建相應的IFC數據解析接口,已成為解決問題的關鍵所在。
圖2 Tekla對IFC模型的表達錯誤Fig.2 Wrong expression of IFC model by Tekla
為提升IFC 數據導出的完整性、準確性與兼容性,根據IFC標準下的模型表達機制,設計模型數據至IFC 數據的轉換流程,整體思路可劃分為模型幾何信息導出與附加屬性導出兩部分。
2.1.1 模型幾何信息導出
模型中構件幾何信息可通過IFC 構件類IfcElement 及其派生類描述。構件在不同軟件中IFC 類轉換差異,是導致幾何信息傳輸錯誤的一大原因。例如,梁、柱、板等構件分別可轉換為IfcBeam類、IfcColumn 類、IfcPlate 類,也 可 統 一 轉 換 為IfcBuildingElementProxy 類,研究發現多數BIM 軟件對前者有更強的解析能力;焊縫、螺栓等連接可轉換 為 IfcDiscreteAccessory 類 、IfcMechanical-Fastener類等,經測試不同方式導出構件的信息完整度,決定采用IfcDiscreteAccessory 類描述焊縫連接,IfcMechanicalFastener 類描述螺栓等連接,使模型導出的構件信息擁有最大程度的完整性與兼容性。
導致信息丟失、二次編輯困難的另一原因,是構件的幾何實體項表達方式差異。若構件幾何構型規則,其幾何實體項IfcGeometricRepresentationItem可通過IFC拉伸實體IfcExtrudedAreaSolid、IFC旋轉實體IfcRevolvedAreaSolid 等參數化實體表達,其信息保留率較高,能夠二次編輯。若構件形狀復雜,難以通過既有IFC參數化實體表達,可采用參數化程度較低的IFC面片實體IfcFacetedBrep替代,面片實體將構件擬合為網格化的三角面片,能描述實體幾何外觀,通用性較強且算法簡單,是目前BIM軟件對構件的主流轉化方式,但其信息保留率低,導出后無法二次編輯。對比兩種表達方式,結果如表1所示。
表1 IFC幾何實體項表達方式對比Tab.1 Comparison of IFC geometric entity item expressions
為減少B-rep面片實體帶來的信息丟失,本研究對復雜構件優先采用CSG(Constructive Solid Geometry)體素構造法描述,CSG將復雜實體視作簡單幾何實體的布爾運算結果,其中簡單幾何實體可采用參數化IFC實體描述,以提高構件信息保留率。例如,基于CSG法創建切割體、被切割體的IFC參數化幾何實體,將其視為布爾算子IfcBooleanOperand,應用IFC標準提供的union/intersect/difference三種運算符執行布爾運算。若構件經歷過線/面切割,可通過IFC標準下的半空間體IfcHalfSpaceSolid予以描述,切割面即為半空間體邊界面,切割面法向為半空間體深度方向。模型構件幾何信息轉換思路如圖3所示。
圖3 IFC構件幾何信息轉換Fig.3 Geometric information conversion of IFC elements
2.1.2 模型附加屬性導出
模型附加屬性包含構件截面、材質、編號、組信息等,目前多數BIM 軟件對IFC 附加屬性轉換處理較少。本文為最大限度保留模型信息,通過以下三種方式導出其附加屬性:
一為材料屬性,可通過IfcRelAssociatesMaterial關聯構件與其材料集IfcMaterial 導出,經驗證此方式可獲取較高的BIM軟件解析支持率。
二為截面、編號等基本屬性與常用構件附加屬性,可通過屬性集IfcPropetySet 中的HasProperties引用單值屬性,再以IfcRelDefinesByProperties 建立構件與屬性集間關聯的方式導出。其中構件附加屬性增加了可導出的信息種類,如對桿件,實現端部定位點重心坐標導出;對板件,實現切角類型、切角尺寸導出;對螺栓、錨栓、鉚釘,實現規格、裝配類型、排列方式等信息導出;對焊縫,實現類型、角焊縫高度(若為角焊縫)等信息導出。此方式可便捷導出多種自定義屬性,且不受表達方式限制,思路如圖4所示。
圖4 IFC構件屬性轉換Fig.4 Attribute conversion of IFC elements
三為目前絕大多數BIM軟件均未考慮的組信息,包括構件組、節點組等。組信息導出最重要的是同時保留構件自身參數化信息與依附關系,經研究本文采用IFC 聚合關系類IfcRelAggregates 描述組,以抽象類 聚 合 元 素 集 IfcElementAssembly 作 為RelatingObject提示組關系,以RelatedObjects定義組構件集合,該方式使組層級與構件屬性均得以保留,實現了高參數化水平的組信息轉換,思路如圖5所示。
綜上,設計如圖6所示的模型IFC數據導出流程。
圖6 模型IFC數據導出流程Fig.6 Exporting process of model IFC data
經上述流程導出的鋼結構模型IFC 文件,可將模型中零構件幾何外觀、坐標方位、布爾運算過程等幾何信息與零構件材料、截面、編號、組關系等附加屬性完整準確的表達,且映射算法具有較強的兼容性,能夠于主流BIM 軟件中實現準確的幾何構型表達與參數化構件二次編輯。
為實現模型全數據交互與二次編輯、出圖,還需完善BIM軟件對IFC數據的解析功能。本文選取常用于施工圖繪制、對模型可編輯性要求較高的Tekla軟件,研究針對Tekla 的IFC 數據導入接口,設計IFC數據到Tekla模型數據的完整轉換流程。
IFC 結構模型可通過IfcProject 表達,其依次關聯模型場地、建筑、樓層信息,以及模型整體的空間坐標方位。解析IfcElement 類,可獲得全部建筑構件信息,遍歷其中成員,可逐一轉化構件。
Tekla中IFC構件解析需按一定順序進行。部分實體存在關聯實體,如切割體、被切割體可視為切割結果的關聯實體,被連接構件可視為連接件的關聯實體。以Tekla零件切割為例,執行切割的方式為實例化一個BooleanPart 對象,設置已存在的零件為該對象的被切割體Father與切割體OperativePart,若該對象Insert成功,說明切割成功。因此這部分IFC實體解析時,需滿足其關聯實體均已生成的先決條件,考慮采用拓撲排序思路:對不存在關聯實體的構件先行解析,每解析完成一個構件,記錄該構件IFC標識符GlobalId 與Tekla 標識符Identifier 間的哈希映射;若當前構件存在關聯實體,獲取其算子BooleanOperand的IFC標識符GlobalId,判斷哈希表中是否已存儲該GlobalId 作為鍵值,若否,說明當前構件存在布爾算子尚未生成,無法執行切割操作,需暫緩解析。所有關聯實體單向記錄,即解析不存在環路。
Tekla構件創建時需要設置屬性,故實例化構件對象前需先通過反向屬性IfcRelDefinesByProperties獲取與當前構件對象IfcElement 相關聯的屬性集,采用數據結構哈希表記錄屬性名與屬性值間的映射關系??紤]到Tekla中材料庫、截面庫設計依據為歐洲規范,屬性解析前先建立國標與歐標間關于材料、截面類型的轉換機制。
解析螺栓、錨栓等連接構件時,由于螺栓群可圍繞定位點與定位軸線進行偏移與旋轉,這為栓群位置的確定帶來較大困難。本研究采用記錄螺栓局部坐標系,螺栓創建時將模型整體坐標系轉換為局部坐標系,基于構件坐標層次進行螺栓定位,待創建完畢再還原整體坐標系的方式,解決了螺栓定位問題。屬性賦值階段先設置螺栓規格、直徑、裝配類型等基本信息,再通過關聯實體的IFC 標識符GlobalId 與此前記錄的已生成Tekla 構件的GlobalId 到Identifier 間的哈希映射找到待連接構件,綁定其為螺栓的PartToBoltTo 與PartToBeBolted 對象,完成螺栓實體導入。零構件創建過程及實例化相應類需賦值的成員變量如圖7所示。
圖7 Tekla零構件創建與屬性設置Fig.7 Component creation and property setting of Tekla
由于拓撲排序流程確保其布爾算子已擁有Tekla實體,解析布爾類型構件時可直接獲取相應實體并利用實例化零件切割(BooleanPart)、面切割(CutPlane)等類對象,執行IfcBooleanOperator 記錄的切割或延伸操作,重現并維護構件切割或連接過程。布爾切割流程及實例化相應類需賦值的成員變量如圖8所示。
圖8 Tekla布爾實體創建與屬性設置Fig.8 Boolean entity creation and property setting of Tekla
解析模型組信息時,從IfcRelAggregates 類獲得組內子構件的IFC 標識符,利用哈希映射確定對應Tekla構件實體,通過GetAssembly 方法獲取主零件的Assembly裝配對象,再將其余構件加入該裝配單元,實現組信息轉換。綜上,設計如圖9所示的模型 IFC數據導入流程。
圖9 模型IFC數據導入流程Fig.9 Importing process of model IFC data
由于模型中零構件均根據IFC數據重建,效果等同于直接在Tekla中手動建模,故經上述流程解析得到的IFC模型能夠較好的滿足二次編輯與出圖需求。
IFC數據導出技術的程序依托同濟大學自主研發的鋼結構設計平臺3D3S實現,能夠將常見的鋼結構模型導出為IFC文件。開發3D3S軟件系統需要C++編程語言與基于ObjectArx的AutoCAD二次開發環境。為將模型信息轉換為IFC格式數據,使用開源引擎IfcOpenShell,并通過自主設計的各類轉換函數,實現ObjectArx中三維實體類AcDb3dSolid派生的各類構件實體到IFC實體的轉換。
IFC數據Tekla專用導入接口的程序則依托基于C#編程語言的Tekla二次開發實現,由于IfcOpenShell解析器沒有C#版本,使用Xbim開源庫對IFC文件進行解析,并利用Tekla官方應用編程界面TeklaOpenAPI提供的類庫,實現IFC實體到Tekla模型中ModelObject類派生的各類構件實體的轉換。
由3D3S IFC數據通用導出技術導出的IFC模型具有普適性,能夠在支持IFC文件讀取的主流BIM軟件中表達,直接將模型導入至Revit、ArchiCAD、Navisworks等軟件中,可實現模型幾何構型交互,滿足模型中參數化構件的二次編輯,這樣的數據接口可視作通用接口;同時為提升模型轉換精度、避免深化階段重復建模,開發針對Tekla的IFC數據導入接口,使經其導入的模型實現全信息保留與二次編輯,提升鋼結構深化設計效率,這樣的數據接口可視作專用接口。IFC模型轉換程序框架如圖10所示。
為驗證研發的通用數據接口工程應用可行性,選取某輕鋼廠房模型,經由3D3S Solid軟件導出為IFC格式文件。選擇建筑結構設計常用且支持IFC模型解析的BIM軟件Revit、ArchiCAD與Navisworks,導入該IFC文件,所得模型整體與細部效果如圖11、12所示。
圖11 廠房IFC模型整體導出效果Fig.11 Exporting integral results for IFC model of workshop
圖12 廠房IFC模型細部導出效果Fig.12 Exporting detailed results for IFC model of workshop
經對比分析,導出的IFC模型信息完整、表達準確,參數化程度較高,在幾類測試軟件中均體現出較優的交互效果。
選取Tekla、Revit、ArchiCAD 3款自帶IFC導出功能的結構設計軟件,統計其導出的IFC 模型數據信息轉化率,對比結果如表2所示。由表格可見,相較于其余3款BIM軟件,3D3S IFC數據導出技術能夠獲得更高的實體切割、構件局部坐標等幾何信息的轉化率,并通過參數化組信息與構件附加屬性豐富了可導出的信息種類,具有較為顯著的信息轉化優勢。
表2 不同軟件導出IFC模型的信息轉化率對比Tab.2 Comparison of information conversion rates of IFC models exported by different softwares
為驗證研發的針對Tekla的IFC專用數據導入接口的工程應用可行性,選取某輕鋼廠房模型與某會展中心模型,經由3D3S Solid軟件導出為IFC格式文件,使用接口導入至Tekla。所得廠房模型及其細部構造如圖13所示,會展中心模型及其細部構造如圖14所示。
圖13 廠房IFC模型于Tekla中導入效果Fig.13 Importing results to Tekla for IFC model of workshop
圖14 會展中心IFC模型于Tekla中導入效果Fig.14 Importing results to Tekla for IFC model of exhibition center
對比使用IFC 數據導入接口前后的Tekla 模型信息轉化率,如表3所示。使用導入接口后,模型幾何構型、切割信息、附加屬性等轉化率大幅提升,并新增深化設計所需的關系信息與組信息導入,基本滿足后續深化設計與圖紙繪制需求,顯著提升計算模型到深化模型的轉化效率。
表3 使用IFC數據導入接口前后模型信息轉化率對比Tab.3 Comparison of model information conversion rates before and after using the IFC data import interface
從運行效率層面分析,以輕鋼廠房模型為例,模型dwg 文件大小為216MB,共有13 666 根桿件、12 076 塊板件、1 953 個螺栓、2 482 段焊縫、6 784 組節點,經IFC 數據導出技術轉換得到的IFC 文件大小為246MB,導出用時8min 11s;導入Revit 軟件,用時8min 46s,導入ArchiCAD 軟件,用時3min 37s;應用專用數據接口導入Tekla 軟件,用時5min 32s,表現了全數據交互技術較優的空間性能與運行效率。
從數據格式層面分析,中國建筑科學研究院建筑工程軟件研究所研發的工程管理軟件PKPM同樣開發了導出模型至Tekla 的功能,但其模型存儲為mdb格式,導出與導入均需特定的轉換接口,無法滿足導出模型供主流BIM軟件共享的要求。使用IFC格式與其他格式開發數據接口的功能對比如表4所示,可知使用IFC 格式進行數據導出并開發基于IFC 標準的導入接口通用性較強,且具有 “進可攻、退可守” 的優勢。使用專用接口能夠有針對性的將IFC 模型全部信息導入指定BIM 軟件,無需重復建模即可進行深化設計、施工圖出圖等流程;使用通用接口則能將IFC模型幾何構型與參數化構件全部信息導入主流BIM 軟件,實現模型整體基于幾何層次的數據交互與參數化構件的二次編輯。
表4 不同格式下數據接口的對比Tab.4 Feature comparison of data interfaces in different formats
(1) 本文針對現有鋼結構BIM軟件基于IFC標準下的模型數據交互問題,研發了一種全數據交互技術,克服了國內外現有軟件平臺在鋼結構模型IFC數據導入導出中存在的主要弊端,大幅提升了BIM技術在鋼結構設計建造全過程中應用的準確性、經濟性與效率。
(2) 為提高IFC模型信息導出的完整性與兼容性,選取BIM軟件解析支持率較高的IFC類進行零構件轉換,并采用參數化程度較高的IFC實體描述基本構件、CSG體素構造體描述異形構件,減少了因應用面片實體帶來的鋼構件模型參數大量丟失的現象,提高了模型的可編輯性。除可導出構件材料、截面、編號等基本屬性外,還可導出任意類型鋼構件重要的附加信息,能夠滿足鋼構件對可導出信息的嚴苛要求。
(3) 通過專用數據接口的設計,可將IFC模型完整準確的傳入Tekla軟件,避免了深化設計階段重復建模,提高了基于BIM技術的鋼結構模型深化與出圖效率。
(4) 本文研發的IFC數據導出技術具有較強的通用性與普適性,所得IFC模型能夠在主流BIM軟件中實現基于幾何構型層次的數據交互與參數化構件的二次編輯;IFC數據導入接口具有較強的針對性,適用于對模型可編輯性要求較高的情況,通過專用接口開發能夠實現模型全信息轉換與二次編輯,使BIM模型呈現良好的數據交互效果。
(5) 本文研究的IFC全數據交互技術已成功應用于實際鋼結構工程中,與傳統方法相比,可將鋼結構BIM技術的應用效率提高2-3倍,并避免了重復建??赡軒淼娜藶椴铄e。
作者貢獻聲明:
張其林:提出研究思路,指導研究方案,設計論文框架,審閱論文并提出修改意見,提供技術及經費支持;
唐子涵:調研及整理文獻,參與研究工作,完成程序編寫,起草并修訂論文;
滿延磊:調研及整理文獻,參與研究工作,指導程序編寫,審閱并修訂論文。