IFC文件解析


什么是IFC? EXPRESS語言與IFC體系

一、IFC

1、IFC簡介

IFC是一個數據交換標准, 用於不同系統交換和共享數據。當需要多個軟件協同完成任務時, 不同系統之間就會出現數據交換和共享的需求。這時, 工程人員都希望能將工作成果(這里就是工程數據), 從一個軟件完整地導入到另外一個軟件。

如果能有一個標准、公開的數據表達和存儲方法, 每個軟件都能導入、導出這種格式的工數據, 問題將大大簡化, 而IFC就是這種標准、公開的數據表達和存儲方法。

2、IFC標准的架構層次

IFC標准整體的信息描述分為四個層次, 從下往上分別為資源層、核心層、共享層、領域層, 每個層次又包含若干模塊, 相關工程信息集中在一個模塊里描述, 例如幾何描述模塊。(點擊圖片可查看清晰大圖,下同。)

 

 

資源層里多是基礎信息定義, 例如材料、幾何、拓撲等;

核心層定義信息模型的整體框架, 例如工程對象之間的關系、工程對象的位和幾何形狀等;該層主要描述建築工程信息的整體框架,其將資源

層的信息用一個整體框架組織起來,使它們相互聯系和連接,組成一個整體,真實反映現實世界的結構。

共享層定義跨專業交換的信息, 例如牆、梁、住、門、窗等;

領域層定義各自領域的信息, 例如暖通領域的鍋爐、風扇、節氣閥等。

IFC標准的定義中, 盡量避免下一層引用上一層的定義, 例如資源層的信息描述不會引用領域的信息描述, 這樣避免由於上層的改動影響整體結構。

 

二、EXPRESS語言

1、EXPRESS語言簡介

EXPRESS語言是由STEP(Standard for the Exchange of Product Model Data)開發的概念性語言,STEP是計算機可讀的用於交換和描述產品制造信息的標准,正式代號為ISO 10303 EXPRESS是用於面向對象的信息描述語言,處於STEP中基礎與核心的地位。它將IFC模型構描述為:規范的類,與類相關聯的屬性,類的約束,以及類與其他約束之間的關系。然而,EXPRESS語言僅適合軟件的讀寫,在人工讀取上存在一定的困難。因此,EXPRESS-G視圖以圖表式的表達被發展起來,並得到了普遍應用。

 

2、EXPRESS語言根基類及其三個子類

IFC標准中定義了一個根類,它提供了一些諸如GlobalId,Name等基本屬性定義,並由其派生出3個基本的抽象類。

 

 IfcObject表示一切可以處理的對象或是項目,比如牆體、空地、虛擬邊界、工作任務、建築過程或是參與建築設計的人等,名字前面的ABS表示該類是抽象類,它又派生出以下幾個子類,如圖3所示。其中,IfcProduct表示工程中的物理對象; IfcProcess表示在工程中發生並帶有意圖的行為,比如獲取,建造等;IfcControl表示控制或是約束其它對象; IfcResource表示對象所需的資源;IfcActor表示參與工程的角色; IfcProject表示活躍的工程。

 

  IfcRelationship用來描述實體對象間的相互關系,它的子類如圖4所示。其中, IfcRelAssigns描述當一個對象使用其它對象提供的服務時的關系; IfcRelAssociates描述對象與外部資源信息(如庫,文檔等)的聯系; IfcRelDecomposes描述元素的組成或是分解關系; IfcRelDefines通過類型定義或是屬性定義來描述對象實例; IfcRelConnects定義了2個或是多個對象間的某種方式的連接關系,它可以是物理上的,也可以是邏輯上的。

 

  IfcPropertyDefinition用來描述對象的特征,反映了對象在具體工程中的特殊信息。其中, IfcTypeObject定義了關於對象類型的明確信息; IfcPropertySetDefinition表示可以用來描述一個對象特征的一組屬性.

 

3、EXPRESS語言的繼承特點

IFC標准是參考STEP標准進行開發並逐步完善的,采用EXPRESS語言定義。在IFC中性文件中,任何一個實體(如Ifc Beam)都是通過屬性來描述自身的信息,屬性分為直接屬性、反屬性(InverseAttribute)、導出屬性。直接屬性是指標量或直接信息,如Global Id Name等;導出屬性是指由其他實體來表述的屬性,如Owner History、Object Placement、Representation;反屬性則是指通過關聯實體進行鏈接的屬性,如HasAssociations通過關聯實體Ifc Rel Associates可以關聯構件的材料信息。IFC實體的的屬性是通過繼承關系獲得的,如構件Ifc Beam在IFC4版本中總共有33個屬性,而自身只有Predefined Type這一個屬性,其余的32個屬性都是繼承了從Ifc Root開始到Ifc Building Element包含的屬性。Ifc Beam是Ifc Building Element的SUBTYPE(子類型),而再上一級的Ifc Element是Ifc Building Element的SUPERTYPE(超類型),以此類推,最頂層是Ifc Root。而在IFC物理文件中語句Ifc Beam則只顯示了9個屬性,包括直接屬性和導出屬性,其余的24個屬性為反屬性. 反轉屬性是INVERSE關鍵字之后定義的屬性,用於明確定義實體實例之間“雙向”的一對多或多對多關系。



4、EXPRESS語言材料屬性的表達

所有在 IFC 標准中定義的物理對象都可以具有材料屬性,所有 IFCElement 實體對象的材料都可以通過IFCMateri-al Select 進行描述。

   IFCMaterial Select 實體是選擇類實體,引用該實體時,其子實體只能有一個被選擇。IFCMaterial 實體用以描述單一材料,IFCMaterial List 用以描述多種材料,IFCMaterial Layer Set Usage 實體用以描述多層材料的順序,厚度以及每層材料的屬性等內容。


5、EXPRESS語言關系組織的表達

模型表達中,需要清晰地描述構件和空間的隸屬關系,構件之間的連接關系,構件與材料間的引用關系等

IFC-Relationship實體是 IFC 標准之中用以描述這些各類關系的唯一實體。根據描述關系的不同,又被派生為多個不同子類。展示了其3 個核心的子類,IFCRelContained In Spatial Structure 表示構件和建築空間的隸屬關系,IFCRel Connects Elements 描述了構件間連接關系,IFCRel Associates Material 實體將構件與其相對應的材料屬性聯系起來.

 

 

6、EXPRESS語言的幾何表達

   建築構件的幾何表達是 IFC 標准描述 BIM 模型的重點,通過 IFC 標准中的幾何實體可以完整描述 BIM 模型中構件的大小、形狀以及空間位置。IFCProduct 實體的屬性值 Ob-ject Placement、Representation 定義了實體的幾何表達。構件空間位置定義通過 ObjectPlacement 屬性進行,構件幾何形狀定義通過 Representation 屬性進行。所有派生子類均繼承了IFCProduct 的 Object Placement、Representation屬性,可以利用這兩個屬性進行幾何表達。ObjectPlacement屬性引用了資源層中的幾何資源: IFCLocal Placement 實體,通過該實體描述構件的相對空間位置; Representation 屬性引用資源層中的幾何模型資源: IFCShapeRepresentation 實體,通過該實體可以描述構件的幾何模型。以長度為1 500 mm,300 × 600 mm 混凝土矩形梁的 IFC為例:

梁的具體信息需要通過屬性引用的實體進行體現。#85 代表該語句的實例號,在IFC 文件之中,每一條語句被分配一個實例號,以便被其他實例引用。為了比較簡單地分析語句,以$ 符號代替語句中次要信息,但是 $ 所占部分同樣是該語句中需要被賦值的屬性。

#64,#73 表示了該實體引用了其他實例進行表達.

 

 

    上述 5 條語句表達了該梁的幾何信息。#64 是 IFCBeam的 ObjectPlacement 屬性IFCLOCALPLACEMENT( #59) 表示了該梁的幾何坐標,這里幾何坐標引用了#59 父坐標體系,是一種相對坐標體系的表達方法。#73 是 Representation 的屬性值,它表示該梁采用了 Swept Solid 實體拉伸法,其拉伸的參數在 實 例 #72 中。IFCEXTRUDEDAREASOLID( #68,'$ ',#15,1500.) 表示底面沿直線拉伸的方法,#68 表示 300*600 的矩形,#15

指明沿其 Z 軸拉伸 1500mm。

 

    上述 2 條語句表達了該梁的空間隸屬關系。#80 定義了一個處於建築物第 2 層的樓層。通過#173852 = IFCRel Contained In Spatial Structure 實體將 # 85 這根梁和# 80樓層聯系起來。

 

上述 2 條語句表達了該梁的材料屬性。#68912 定義了一種屬性為混凝土的材料。通guo關系實體#174083 = IFCRel Associates Material 對#85 梁的材料進行了說明.

 

7、SPF文件簡介

IFC SPF(STEP Physical File)文件是 IFC 標准所使用的主要數據交換文件。

頭文件(點擊圖片可查看大圖,下同)

 

數據段

1)

 

 

IfcProject needs to be included exactly once, it serves as the root element in an IFCexchange file for the coordination view

§  It has a compressed GUID (as many IFC elements), a link to anIfcOwnerHistory (that may have dummy data) and references to the units used in thisfile and to the geometric representation contexts for the shape representationsused in this file.

§  IfcUnitAssignment is the list of globally defined units(apply to all measure values within this file), e.g. all length measures in thegeometry are given as "mm", all plane angles as "degree"

§  IfcGeometricRepresentationContext is the 3D contextwith a precision factor (here 0.00001), the placement is always 0.,0.,0.

2)

 

 

§  This example has a three level project structure, created by exactly onesite, one building, and one building storey. The levels of site and buildingstorey are optional levels.

§  IfcSite is given with global positioningcoordinates, located at 24° 28' 0'' north, and 54° 25' 0'' west

§  local coordinate system of the site is positioned at the origin 0.,0.,0.with no rotation (no project offsets)

§  IfcBuilding and IfcBuildingStorey, bothpositioned relative to the IfcSite, and with zero offset and rotation.

3)

 

§  IfcRelAggregates creates the hierarchical project structuresite --> building --> building storey

§  IfcRelContainedInSpatialStructure creates thehierarchical assignment of building elements to the relevant project structureelement, here: the wall and the window are contained in the building storey.

4)

 

 

Creation of the wall object, since it is definedparametrically, it can be exchanged as standard case wall.

 

§  IfcWallStandardCase is positioned relative to the buildingstorey

§  is a single layer wall, with a material layer of 300mm thickness andplaced in the middle of the wall axis (material layer set usage offset -150mm)

§  has a wall axis starting 0.,150. ending at 5000.,150. (within the objectcoordinate system of the wall, defined by #46IfcLocalPlacement)

§  has a wall footprint defined as a area #63 IfcArbitraryClosedProfileDef

§  has a solid body extruding the footprint by 2300mm at #62 IfcExtrudedAreaSolid

§  has an optional bounding box geometry

5)

 

Adding the IfcMaterialLayerSetUsage information (required for standard case)

§  is a single layer wall, with a material layer of 300mm thickness andplaced in the middle of the wall axis (material layer set usage offset -150mm)

6)

 

 

三、IFC4

bulidingSMART組織在2013年3月12日正式發布了IFC標准;ISO16739-21在同年三月發布。

下圖為IFC的發展歷史:

 

 

 

1、IFC4概覽

 

1)、  修正了IFC2X3

以來的已知錯誤;

2)、  改善了.ifc文檔的可讀性,並使文檔的讀寫變得更簡單;

3)、  IFC中特性的定義(propertydefinition)與buildingSMART的數據詞典鏈接;

4)、  支持多種新的工作流,包括4D、5D的模型交換,BIM與GIS的交互,增強了熱學模擬和可持續性分析功能;

5)、  IFC主要的建築元素(architectural)、建築服務(buildingservice)元素和結構(structural)元素方面增強了IFC規范,添加了新的幾何學和參數化的特征;

6)、  EXPRESSschema和ifcXML4 schema與IFC 規范(specification)充分整合。

 

2、IFC4的主要改進(部分)

 

1)、  增強了IFC schema的前后一致性,使其更有規律可循;完善了建築/建築服務元素的目錄,比如加入了諸如solar device、shading device等之前沒有的元素類型;將普通元素的定義與參數定義分開。

 

2)、  結構用鋼和木材方面,增加了材料輪廓相關性的定義;支持各向異性的材料特性;增強   了結構分析模型和細節的表達。

 

3)、  增強了資源層幾何模塊的功能,能更好地描述不規則曲面;支持變截面拉伸;支持描述非平面表面和邊界;支持掃列方式:arbitrary sweep。

    

 

4)、通過改善空間關系的表達以增強能量分析和其他性能分析;在元素(element)和元素類(element types)上添加了環境作用效果指示數與數值(environmental impact indicator and values);支持與GIS協同,使建築地理位置可以展現在GIS系統中,反之亦然。

 

5)、將IFC的內容關聯到IFD中,使得通過GUID可以在IFD中查詢具體信息。

 

6)、在性質定義(property setdefinition)和數量定義(quantity set definition)中支持多語種。

 

7)、增強光影元素的表現。支持多紋理,光線分布,符合X3D標准。

 

8)、使多變的幾何描述更加高效。如支持鑲嵌幾何、頂點向量坐標顯示、物體不同表面可以有不同顏色附着和紋理。

 

 9)、實現了ifcXML文件的輕量化,刪除了冗余語言。如在IFC2X3標准下的ifcXML文件中占據50行的實體,在ifcXML4中僅占據14行就足以表達。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM