IFC總體架構
1 EXPRESS語言
IFC架構採用EXPRESS語言定義,EXPRESS語言是由STEP(Standard for the Exchange of Product Model Data)開發的概念性架構語言。STEP是計算機可讀的用於交換和描述產品製造資訊的標準。
EXPRESS用於物件導向的資訊描述語言,處於STEP的基礎和核心地位。它將IFC模型的結構描述為:規範的類,與類相關聯的屬性,類的約束,以及類與其他約束之間的關係。
2. 總體架構
IFC架構分為四個層:領域層、共享層、核心層、資源層。
名稱 | 描述 |
---|---|
領域層 | 定義特定專業領域所需的實體物件,如電氣領域的電纜、電氣裝置等。 |
共享層 | 提供了通用性的物件,包括建築服務元素、元件元素、建築元素、管理元素、裝置元素等。用於領域層多個領域共享。 |
核心層 | 具體化的定義了模型的基本結構,基礎關係和共用概念。 |
資源層 | 定義了可重複利用的實體與型別,包括幾何資源、屬性資源、材料資源等。該層的實體不能獨立存在,只能通過被其他層引用的方式出現。 |
實體能引用本層或下面各層的實體資源,即領域層可以引起其他三層的實體物件,共享層能引用核心層和資源層,核心層只能引用資源層。
IFC架構將所有的物件與類按概念進行分類:型別、實體、函式、規則、屬性集及量集。
名稱 | 描述 |
---|---|
型別(Types) | 包括:定義型別(Defined Types)、列舉型別(Enumeration Types)、選擇型別(Select Types) |
實體 (Entities) | 有屬性與約束定義的資訊類,模型由大量實體物件組成 |
函式(Functions) | 用於計算實體的屬性,規則(Rules)用於約束實體屬性的範圍及驗證模型的正確性 |
屬性集(Property Sets) | 一組屬性的集合,可被不同的物件所引用。屬性表達了物件的說明資訊,屬性集通過關係實體IfcRelDefinesByProperties將屬性關聯到具體的構件。 |
量集(Quantity Sets) | 對定量資訊的集合,可被不同的物件引用。IfcElementQuantity是量集的描述實體,表示構件定量屬性的集合,通過關係實體IfcRelDefinesByProperties將量集關聯到具體的構件。 |
3.基本概念和繼承關係
IFC檔案中,任何一個實體(如IfcBeam)都是通過屬性來描述自身資訊,屬性分為:直接屬性、反屬性,匯出屬性。
名稱 | 描述 |
直接屬性 | 指標量或直接資訊,如GlobalId、Name等 |
匯出屬性 | 由其他實體表述的屬性,如OwnerHistory、ObjectPlacement、Representation。 |
反屬性 | 通過關聯實體進行連結的屬性。如HasAssociations通過關聯實體IfcRelAssociates可以關聯構件的材料資訊。 |
IFC實體的的屬性是通過繼承關係獲得的,如構件IfcBeam在IFC4版本中總共有33個屬性,而自身只有Predefined Type這一個屬性,其餘的32個屬性都是繼承而來.
在IFC物理檔案中語句IfcBeam則只顯示了9個屬性,包括直接屬性和匯出屬性,其餘的24個屬性為反屬性。如下圖只顯示了直接屬性和匯出屬性,反屬性詳見官方文件。
相關文章
- Python總體架構Python架構
- Tomcat總體架構(一)Tomcat架構
- 架構知識體系總結架構
- Java 集合(1)之 總體架構Java架構
- Dubbo Mesh 總體技術架構方案架構
- 原始碼分析三:OkHttp(1)—總體架構原始碼HTTP架構
- 從單體到微服務,軟體架構演化總覽微服務架構
- Tomcat 第三篇:總體架構設計Tomcat架構
- 單體架構到垂直架構架構
- Oracle 架構彙總Oracle架構
- 基於Maven的SSM總體架構設計(一)MavenSSM架構
- 架構之:軟體架構漫談架構
- 單體架構&微服務架構&中臺服務架構架構微服務
- 鳳凰架構總結架構
- 軟體架構模式之微服務架構架構模式微服務
- 軟體架構風格——規則架構架構
- Alink漫談(十四) :多層感知機 之 總體架構架構
- [原始碼解析] TensorFlow 分散式環境(1) --- 總體架構原始碼分散式架構
- 『網際網路架構』軟體架構-mybatis體系結構(14)架構MyBatis
- Apache 架構師總結的 30 條架構原則Apache架構
- 使用C++解析IFC中的構件名稱C++
- nginx 整體架構Nginx架構
- MySQL體系架構MySql架構
- Tomcat 體系架構Tomcat架構
- SQLite體系架構SQLite架構
- 架構演化思考總結(2)架構
- 架構演化思考總結(1)架構
- Tomcat總體架構,啟動流程與處理請求流程Tomcat架構
- 2_指令集、體系架構、微架構架構
- MySQL整體架構與記憶體結構MySql架構記憶體
- 微服務學習與思考(03):微服務總體架構圖解微服務架構圖解
- Flutter框架分析(一)--架構總覽Flutter框架架構
- 架構:軟體成本估算架構
- Netty整體架構解析Netty架構
- 軟體架構指南 - martinfowler架構
- Tomcat的整體架構Tomcat架構
- Dubbo框架————整體架構框架架構
- 軟體架構簡介架構