施平望, 林良帆, 鄧雪原
(上海交通大學土木工程系,上海 200240)
基于IFC標準的建筑構件表達與管理方法研究
施平望, 林良帆, 鄧雪原
(上海交通大學土木工程系,上海 200240)
工業(yè)基礎類標準(IFC)是BIM的數據存儲標準,定義了建筑項目全生命周期的各種對象與類。采用實例分析的方法,針對基于IFC標準的建筑構件的表達方法作了詳細的介紹與描述,并且對基于IFC標準的建筑構件管理方法作了比較完善的分析,將為構建基于IFC標準的構件庫奠定基礎。
工業(yè)基礎類標準;建筑構件;構件庫
1.1互操作性與工業(yè)基礎類
互操作性(interoperability)可以定義為不同系統(tǒng)或組織一起協(xié)同工作的能力。建筑工程施工(architecture engineering construction, AEC)和設施管理(facilities management, FM)行業(yè)涵蓋了各種領域,需要多樣化的信息和模型進行共享。目前各種BIM軟件基本滿足這個需求,但其內部對數據模型的表達方式卻各不相同。沒有一個獨立的應用系統(tǒng)可以提供AEC/FM行業(yè)需要的所有功能[1]。開發(fā)中性文件格式如DXF、IGES和SAT,可以實現不同軟件系統(tǒng)之間文件的交換,但這些文件交換的內容僅僅局限于幾何實體。為了使數據交換成為現實,一個早期的方法是對不同軟件的編碼規(guī)則進行翻譯轉化,但這種方法的成本卻很高[2]。一項由M cGraw-Hill公司主持的研究表明,軟件應用程序之間互操作性的缺失,是影響B(tài)IM發(fā)揮潛在功能的限制因數[3]。
在AEC行業(yè),工業(yè)基礎類(industry foundation classes, IFC)架構是目前最為全面、公開的面向對象的數據模型[4],涵蓋了工程設計領域各個階段滿足全部商業(yè)需求的數據定義。IFC標準的第一個版本于 1997年 1月由產業(yè)交換性聯(lián)盟組織(industry alliance for interoperability, IAI,現為BuildingSMART international)發(fā)布。此后經過幾年的努力,IFC信息模型的覆蓋范圍與模型框架都有了很大的改進,并于 2005年正式成為國際標準ISO/PAS 16739[5],目前最新的發(fā)布版本為IFC2x4[6]。IFC標準在BIM應用領域已被多個國家作為數據標準,美國國家BIM標準中將IFC作為主要的參考標準。支持IFC文件讀取的各類設計軟件也日益增多,2011年,BuildingSMART公布了所有支持IFC標準的軟件[7]。IFC 采用基于對象的描述方式,并具有很強的描述能力,能表達復雜的工程對象信息。
IFC對工程對象的表達方法研究是IFC標準更深、更廣應用的基礎。邱奎寧等[8]對IFC標準進行了基礎性剖析,打開了國內對IFC標準研究的大門;余芳強等[9]通過分析IFC標準的實體定義和分類,構建IFC元數據模型,最終實現了根據應用需求快速生成 BIM 子模型視圖(model view definitions, MVD),支持從整體BIM模型中提取所需的子信息模型。在對IFC文件的結構形式有了清晰的認識后,能完成對構件信息的提取和分析[10],可以有效地減小模型文件的大小,進一步可研究建筑模型到結構分析模型的轉換[11],并可針對不同專業(yè)對模型視圖進行有效的管理,實現基于三維模型的協(xié)同設計[12]。兼容IFC標準,利用數據庫基于對象的信息存儲與管理技術,已經成為目前的應用研究熱點[13-14]。通過研究IFC標準對構件的表達方法,結合數據庫技術可以搭建基于IFC標準的構件庫。文獻[14]初步建立了基于IFC和PLIB (ISO 13584)標準的建筑構件庫,但真正基于IFC標準構件庫并沒有完全實現。最新版本的IFC標準對建筑構件的支持已經相當完善,掌握基于IFC標準的建筑模型的表達方法,應用支持IFC 標準的應用軟件實現信息交換與共享,是解決軟件應用程序之間互操作性問題的基礎。
1.2IFC標準總體架構
IFC架構分4個層:領域層、共享層、核心層和資源層,如圖1所示。最頂層的領域層定義特定專業(yè)領域所需的實體對象,如電氣領域(Electrical Domain)的電纜、變壓器、電氣設備等。共享層提供了通用性的對象,包括建筑服務元素、組件元素、建筑元素、管理元素、設備元素等,是用于領域層多個領域共享的。核心層更具體化的定義了IFC模型的基本的結構、基礎關系和公用的概念。最底層的資源層定義了 21類可重復利用的實體與類型。包括幾何資源、屬性資源、材料資源等。資源層的實體不能獨立存在,只能通過被其他層引用的方式出現。
給定層次定義的實體能夠引用本層或下面各層的實體資源。即領域層可以引用其他三層的實體對象,共享層只能引用核心層和資源層,而核心層則只能引用資源層。整體架構的模塊化設計使得模型更易于維護和擴展,同時對AEC/FM各個專業(yè)領域的實體進行了明確的區(qū)分,使得模型能夠在每一個特定領域的軟件中實現[15]。
IFC架構將所有的對象與類按概念進行了分類:類型、實體、函數、規(guī)則、屬性集和量集。具體的定義如下:
(1) 類型(Types)有定義類型(Defined Types)、枚舉類型(Enumeration Types)和選擇類型(Select Types),定義了對象的基本類型。
(2) 實體(Entities)是有屬性與約束定義的信息類,一個IFC數據模型由大量IFC實體對象組成。
(3) 函數(Functions)用于計算實體的屬性。規(guī)則(Rules)用于約束實體屬性的范圍以及驗證模型的正確性。
(4) 屬性集(Property Sets)是一組屬性的集合,可被不同的對象所引用。在IFC標準架構下,屬性表達了對象的說明信息,將相同類型的屬性進行組合。屬性集通過關系實體IfcRelDefinesByProperties將屬性關聯(lián)到具體的構件。
(5) 量集(Quantity Sets)是對定量信息的集合,可被不同的對象所引用。其中 IfcElementQuantity是量集的描述實體,表示構件定量屬性的集合,通過關系實體 IfcRelDefinesByProperties將屬性關聯(lián)到具體的構件。
圖1 IFC4的技術架構圖
2.1IFC對建筑構件的表達方法
IFC標準是參考STEP標準進行開發(fā)并逐步完善的,采用EXPRESS語言定義。在IFC中性文件中,任何一個實體(如IfcBeam)都是通過屬性來描述自身的信息,屬性分為直接屬性、反屬性(InverseAttribute)和導出屬性。從圖2可以得出屬性在實例語句中的對應關系。直接屬性是指標量或直接信息,如 GlobalId、Name等;導出屬性是指由其他實體來表述的屬性,如 OwnerHistory、ObjectPlacement和Representation;反屬性則是指通過關聯(lián)實體將屬性實體與構件進行鏈接,使得構件具備鏈接的屬性實體的屬性,如HasAssociations通過關聯(lián)實體 IfcRelAssociates可以關聯(lián)構件的材料信息。IFC實體的的屬性是通過繼承關系獲得的,如構件IfcBeam在IFC4版本中總共有33個屬性,而自身只有PredefinedType這一個屬性,其余的32個屬性都是繼承了從IfcRoot開始到IfcBuildingElement包含的屬性。IfcBeam是IfcBuildingElement的 SUBTYPE(子類型),而再上一 級 的IfcElement是IfcBuildingElement的SUPERTYPE(超類型),以此類推,最頂層是IfcRoot。而在IFC物理文件中語句IfcBeam則只顯示了9個屬性,包括直接屬性和導出屬性,其余的 24個屬性為反屬性。
2.2實例分析IFC對標準梁的表達方法
圖3描述了一個標準梁構件IfcBeamStandardCase,編號為#200。通過模型文件中梁的9個屬性可知,編號為#201和#210的語句,分別代表了ObjectPlacement和Representation 2個屬性。其中#201指向的 IfcLocalPlacement定義了標準梁的位置信息,其定義也是通過引用2個語句#100025和#202。#100025(IfcLocalPlacement)代表的是參考坐標系,即標準梁所在樓層(IfcBuildingStorey)的坐標系。而#202(IfcAxis2Placement3D)則定義了坐標的轉換,即通過對參考坐標系的坐標進行轉換,生成新的坐標系。#203(IfcCartesianPiont)定義了新坐標系的原點,#204(IfcDirection)和#205(IfcDirection)分別定義了新坐標系的Z軸方向和X軸方向,這2個方向是基于參考坐標系的方向轉換得來的(圖4)。
圖2 IFC實體定義與實例語句之間的對應關系
圖3 標準梁IFC文件實例
圖4 相對坐標系的轉換
另外,#210指向的是IfcProductDefinitionShape,定義了標準梁的截面形狀。IfcProductDefinitionShape實體是構件所有描述形式的容器,可以定義多種幾何表達方式。其中#211和#221(IfcShapeRepresentation)是兩種不同的幾何表達方式。#211引用的實體#212 (IfcExtrudedAreaSolid)是以拉伸二維截面到三維的拉伸實體。而這個拉伸實體需要定義一個截面形狀,引用的是#213,實體為IfcIShapeProfileDef定義了一個 I型截面,而#215(IfcAxis2Placement3D)定義了拉伸實體的一個定位點,#97(IfcDirection)則定義了實體的拉伸方向(Z軸正方向),第4個屬性為實體的在拉伸方向上的長度為6 000 mm。而#221表示以盒式線框來描述模型的幾何形狀。
標準梁的材料屬性則是通過關聯(lián)實體將構件與材料相關聯(lián),語句#240代表了這個關聯(lián)實體IfcRelAssociatesMaterial。而對材料的定義引用了IfcMaterialProfileSet實體(用#242語句描述),而語句 #245(IfcMaterialProfile)將材料屬性定義到構件的截面,最后指向材料實體#246(IfcMaterial),使得標準梁以及截面擁有這一材料屬性。
語句#150是IfcBeamType,是對具有相同屬性如構件類型、材料屬性、截面屬性的標準梁構件的一種定義,一般只對標準梁有這樣的定義。而通過關聯(lián)實體#90010(IfcRelDefinesByType)與IfcBeamType關聯(lián)的所有IfcBeamStandardCase都共有這些屬性。
3.1基于IFC標準新建構件的方法
3.1.1建立坐標位置,確定構件基點
采用相對坐標關系進行定位是建筑構件常用的定位方式。確定建筑構件局部坐標系所參考的坐標系。構件的位置以空間(IfcBuidlingStorey、IfcBuilding、IfcSite)所在的坐標系為參考。如定位一根梁(IfcBeam),由 ObjectPlacement描述,定義了局部坐標系及參考坐標系。其中屬性PlacementRelTo指的是參考坐標系,而這個參考坐標系即樓層IfcBuidlingStorey所在的坐標系。相應的IfcBuildingStorey坐標系以IfcBuilding所在坐標系為參考,IfcBuilding以IfcSite所在坐標系為參考,而IfcSite定義的是整體坐標系,沒有參考坐標系。另外,門窗實則是依附于墻而存在的,需要以開洞實體所在坐標系為參考,而開洞實體又以所在的墻實體作為參考。而 RelativePlacement是相對坐標系內的坐標轉換,即定義了局部坐標系。這樣就存在多層參考的情況,在明確各構件層次關系的前提下,進行逐級查詢確定構件的絕對坐標,如圖5所示。
圖5 建筑構件位置信息與幾何形狀描述流程
3.1.2構造構件幾何表達信息
建筑構件的幾何表現信息屬性是導出屬性,由屬性 Representation來描述,指向的實體是IfcProductRepresentation(超類)。而IfcProductDefinitionShape實體是構件所有描述形式的容器,其中IfcshapeRepresentation定義了幾何形狀表現類型,如SweptAreaSolid、BoundingBox等。其中IfcExtrudeAreaSolid描述的是一個三維拉伸實體,即定義一個二維截面形狀(IfcProfileDef),再通過一個特定的方向與長度拉伸為三維實體,如IfcIShapeProfileDef表示截面形狀為工字型或H型。
3.1.3定義材料
建筑構件的材料屬性屬于反屬性,通過屬性HasAssociations指向關聯(lián)實體IfcRelAsscociateMaterial。即通過關聯(lián)實體將構件與材料關聯(lián),使構件具備關聯(lián)到的材料屬性。
構件的材料屬性主要通過以下幾個類型定義:IfcMaterial、IfcMaterialList、IfcMaterialLayerSetUsage、IfcMaterialConstituentSet和IfcMaterialProfileSetUsage。其中,IfcMaterial是材料定義的基本實體,定義了材料名稱(Name)、描述(Description)和分類(Category) 3個屬性。其他4種材料類型最終都引用一個或多個IfcMaterial實體。
3.1.4關聯(lián)屬性集
建筑構件的屬性集、量集、與其他構件的關聯(lián)信息、碰撞情況等都是屬于反屬性,需要具體的關聯(lián)實體進行關聯(lián)。這些屬性與構件的具體類型相關,例如對于 IfcBeam,可應用的屬性集包括顏色信息(Pset_Draughting),通用屬性(Pset_beamcommon)則包含梁的分類編號、跨度、坡度、轉角、是否外部構件、導熱系數、是否承重、防火等級等基本信息,而Pset_ReinforcementBarPitchOfBeam更是包含了混凝土梁的配筋情況;可用的量集(Qto_BeamBaseQuantities)包含梁長、斷面面積、表面積、體積、質量等,通過關系實體IfcRelDefinesByProperties進行關聯(lián),如圖6所示。
3.1.5確定構件空間關系
在IFC中存在唯一的一個IfcProject實體,用來描述現實中的一個工程項目。分別以 IfcSite、IfcBuilding、IfcBuildingStorey和IfcSpace來描述工程項目上的空間信息。這些實體之間的包含關系以關聯(lián)實體 IfcRelAggregates進行關聯(lián)。而對于一個構件,如一根梁(IfcBeam),通過關聯(lián)實體IfcRelContained InSpatialStructure將構件與空間實體關聯(lián),構件之間會存在依附關系,如門窗必須依附于墻等。在IFC中,門(IfcDoor)、窗(IfcWindow)實體與墻(IfcWallStandardcase)實體之間需要依托于一個開洞實體(IfcOpeningElement)來進行關聯(lián)。而門、窗實體與開洞實體、開洞實體與墻實體之間又分 別 以 關 聯(lián) 實 體IfcRelFillsElement和IfcRelVoidsElement進行關聯(lián)。最終,窗實體與樓層之間也需要通過IfcRelContainedInSpatialStructure實體關聯(lián),使得窗實體也包含在樓層中,如圖6所示。
圖6 建筑構件關聯(lián)屬性(反屬性)描述流程
3.2基于IFC標準修改構件的方法
修改構件即編輯構件的屬性,可分別對直接屬性、導出屬性和反屬性的修改。對于直接屬性可直接進行編輯,如 GlobalId、Name等。對于導出屬性如位置信息(ObjectPlacement)和幾何表達(Representation),則修改描述這2個屬性的實體,但在修改前需要明確屬性實體是否被其他構件引用。對于反屬性則通過關聯(lián)實體查找到鏈接的屬性實體,需修改相應的參數即可,修改前也需要明確屬性實體是否被其他構件引用。
位置信息(ObjectPlacement)的修改包括基點偏移量和旋轉方向的修改?;c偏移量通過IfcLocalPlacement的 RelativePlacement屬性(以IfcAxis2Placement 實體表示),其中 Location屬性(以IfcCartesianPoint實體表示)描述的是偏移值。檢查該 IfcCartesianPoint實體是否被其他實體引用,若沒有則修改對應的偏移值,若有則新建IfcCartesianPoint實體并添加對應偏移值;而旋轉方向的修改則通過 IfcAxis2Placement 實體中的IFCDirection實體控制,值得注意的是,IfcDirection的重用性很高,可直接引用模型所需的IfcDirection實體即可。
幾何表達(representation)的修改包含截面尺寸、長度、可見性表達形式等,IFC標準針對不同的幾何形體特征提供了多種幾何描述方式(如SweptSolid、Brep等)。以SweptSolid為例,其表達特點是確定截面形狀尺寸后沿某一方向拉伸一定的距離,形成三維實體模型。截面形狀由屬性SweptArea(以 IfcProfileDef實體表示)表達,修改IfcProfileDef實體的參數即可,并考慮實體是否被重用,若有則需新建相應屬性;而Position主要用于更精確的修改構件的相對位置,截面的拉伸方向以及拉伸長度則通過ExtrudeDirection和Depth屬性修改。
構件反屬性的修改相對更為復雜,需要通過查詢構件的關聯(lián)實體,通過關聯(lián)實體找到相應的屬性實體,如材料屬性通過IfcRelAssociatesMaterial實體關聯(lián),并且需要分析屬性實體是否存在多次引用的情況。
3.3基于IFC 標準刪除構件的方法
IFC標準中刪除構件不僅僅只是刪除構件實體本身,還需刪除與構件相關聯(lián)的屬性實體。另外,由于屬性實體存在多次被引用的情況,在刪除屬性實體時需要考慮屬性實體是否被其他構件引用。而隨著構件實體的刪除,直接屬性也會一并被刪除,所以屬性實體的刪除分為導出屬性和反屬性兩類:
導出屬性。由其他實體表述,對其進行刪除時先檢查這些實體是否被其他對象引用,檢查順序由大到小,若沒有重復引用的情況則全部刪除。
反屬性包括:①與刪除構件存在依附關系的附屬構件,當主體構件刪除時,其附屬構件也應刪除。如墻體上的門、窗等,依附關系是窗的實體依附于開洞實體、開洞實體依附于墻實體。因此,在刪除墻時需要將開洞實體、窗實體和依附實體同時刪除,這些關系實體包括:IfcRelVoidsElement、IfcRelFillsElement和IfcRelProjectsElement;②材料屬性與屬性集等,刪除順序是通過關聯(lián)實體找到屬性實體,在確認屬性實體沒有被其他構件引用后刪除,并將關聯(lián)實體刪除;③空間結構實體的刪除,該屬性通過IfcRelContainedInSpatialStructure關聯(lián),當建筑構件被刪除時,其與空間結構實體的附屬關系也應刪除,即將建筑構件從IfcRelContained InSpatialStructure中清除。
IFC標準為實現全生命周期不同專業(yè)間的數據共享與交換奠定了基礎。本文對IFC標準及其建筑構件進行詳細的分析與描述,總結出了基于IFC標準建筑構件的管理:新建、修改和刪除構件的實現方法與流程。對IFC標準以及IFC文件結構形式有了清晰的了解之后,今后將進一步拓展出重要的應用,如:
(1) 對IFC文件大小的壓縮。由IFC本文表達方法可知,構件的截面形式是由IfcProfileDef(超類)對應的截面形式來描述,如I形截面IfcIShapeProfileDef。而一個項目文件中必然存在許多相同截面參數的構件。這些構件對截面實體的引用是重復的,即相同截面實體可能重復出現。而這些相同截面參數的構件都可以引用同一條截面實體語句,這樣通過對重復截面實體語句的刪除,可以有效減小IFC文件的大小。而其他參數如材料、屬性集、量集等都是可以進行相應處理的。
(2) 基于IFC標準構件庫的搭建。通過理清IFC標準對建筑構件的的表達方式以及 IFC數據的描述,可以編寫應用程序編程接口(application programming interface, API)并進行封裝,實現對基于 IFC標準構件參數的調用、修改、以及存儲,為最終完成基于 IFC標準的構件庫研究提供技術支持。
(3) 本文對基于IFC標準的建筑構件表達進行初步研究,仍有很多問題需要今后進一步研究與解決,如基于IFC標準的建筑構件庫的搭建方法,構件庫應用方法和BIM數據復用技術等。
[1] Eastman C, Teicholz P, Sacks R, et al. BIM handbook [M]. 2nd ed. New Jersey: John Wiley&Sons, 2011: 99-124.
[2] Gallagher M P, O’Connor A C, Dettbarn J L, et al. Cost analysis of inadequate interoperability in the US capital facilities industry [M]. Maryland, USA: Department of Commerce Technology Administration, 2004: 73-76.
[3] Young N, Jones S, Bernstein H, et al. The business value of BIM: getting building information modeling to the bottom line [R]. New York: Technical Report, The M cGraw-Hill Companies, 2009.
[4] Froese T, Fischer M, Grobler F, et al. Industry foundation classes for project management-a trial implementation [J]. Electronic Journal of Information Technology in Construction, 1999, (4): 17-37.
[5] ISO/PAS 16739:2005. Industry foundation classes, release 2x, platform specification (IFC2x plateform) [EB/OL]. [2013-09-11]. http://www.iso.org/iso/catalogue_ detail.htm?csnumber=38056.
[6] BuildingSMART International. Industry foundation classes release 2x4 (IFC4) release candidate 3 [EB/OL]. [2013-09-11]. http://www.buildingsmart-tech.org/ifc/FIC2x4/ rc3/htm l/index.htm.
[7] BuildingSMART International. List of software claiming IFC support [EB/OL]. [2013-09-11]. http://www.buildingsmart -tech.org/implementation/implementations.
[8] 邱奎寧, 張漢義, 王靜, 等. IFC技術標準系列文章[J].土木建筑工程信息技術, 2010, 2(6): 83-86.
[9] 余芳強, 張建平, 劉強. 基于IFC的BIM子模型視圖半自動生成[J]. 清華大學學報: 自然科學版, 2014, 54(8): 987-992.
[10] Gang W, Zhou Z P, Zhao X D, et al. Design of building component library based on IFC and PLIB standard [C]// 2010 2nd International Conference on Computer Engineering and Technology. New York: IEEE Press, 2010: 529-534.
[11] 鄧雪原, 張之勇, 劉西拉. 基于IFC標準的建筑結構模型的自動生成[J]. 土木工程學報, 2007, 40(2): 6-12.
[12] 周成, 鄧雪原. 建筑協(xié)同設計的模型視圖管理應用研究[J]. 圖學學報, 2013, 34(2): 94-100.
[13] 張洋, 張建平, 鹿明. 基于 BIM 的建筑工程信息集成與管理研究[D]. 北京: 清華大學, 2009.
[14] 李犁, 鄧雪原. 基于 BIM 技術建筑協(xié)同平臺的初步研究[D]. 上海: 上海交通大學, 2012.
[15] Won J S, Lee G. Algorithm for efficiently extracting IFC building elements from an IFC building model [J]. Computing in Civil Engineering, 2011, (416): 713-719.
Research on Representation and Management of IFC-Based Building Com ponents
Shi Pingwang,Lin Liangfan,Deng Xueyuan
(Department of Civil Engineering, Shanghai Jiao Tong University, Shanghai 200240, China)
Industry foundation classes (IFC) is the standard for BIM data storage, which defines all kinds classes and objects for the whole life cycle of construction projects. In this paper, through the example of a building element, IFC Beam, the representation of IFC-based building components described in detail. In addition, the management of IFC-based building component, including element creation, modification and deletion, is studied in detail. The research achievement can be utilized for the construction of IFC-based component library.
industry foundation classes standard; building components; component library
TU 201.4; TU 17
10.11996/JG.j.2095-302X.2016020249
A
2095-302X(2016)02-0249-08
2015-06-08;定稿日期:2015-09-18
國家BIM標準研究課題-勘察與設計階段P-BIM應用技術研究(P-BIM 01B00)
施平望(1989–),男,江蘇南通人,碩士研究生。主要研究方向為建筑CAD協(xié)同設計與集成、基于BIM技術的建筑協(xié)同平臺。
E-mail:spw418spw@sjtu.edu.cn
鄧雪原(1973–),男,湖北荊門人,副教授,博士。主要研究方向為建筑CAD協(xié)同設計與集成、基于BIM技術的建筑協(xié)同平臺。
E-mail:dengxy@sjtu.edu.cn