占鑫奎
廣州市城市排水有限公司 廣東 廣州 510630
BIM(Building Information Modeling)即建筑信息模型技術,從提出至今已在建筑行業得到充分使用。當前BIM三維建模軟件雖然種類繁多,但針對模型信息的存儲格式大多不同,且通常軟件的體量較大,實際使用成本較高,不同軟件間交互性能較差。工程信息交換標準IFC(Industry Foundation Classes)的出現及應用,可以有效促進工程多專業、全生命周期、不同階段的信息協作、交換及共享。本文以實際消防工程為例,直接使用基于IFC標準架構的物理文本文件對消防水系統工程量信息進行識別與提取,提高了BIM模型的使用效率。
IFC 標準采用 EXPRESS 語言來定義和表達產品數據模型,EXPRESS語言是一種形式化描述語言,它吸收了現代編程語言的特點,主要目的是為建立產品的數據模型,對產品的幾何、拓撲、材料、管理信息等進行描述[1-2]。
國內對IFC標準的研究側重于IFC標準的架構解析及IFC擴展應用等方面,其中,王勇等[3]學者對IFC標準描述方法進行深入解析,將三種擴展機制應用到項目施工進度管理、成本管理、安全管理、質量管理及綠色建筑等5個方面;馬智亮等[4]學者也將成本預算領域相關信息實現IFC擴展應用。反而針對IFC物理文件層面的直接使用研究較少,本文將基于IFC底層標準架構及EXPRESS語言的描述方法,對IFC物理文件進行文本化處理和語義解析,將其應用于消防水系統工程量統計。從IFC物理文件的層面,直接對消防水系統所涉及的工程量信息進行識別與提取。
以廣州某學校項目的消防工程為例,對消防水系統工程量統計涉及的信息進行梳理分析,總結出需從IFC物理文件中識別的消防水系統工程量的信息,如下表所示。

表1 需識別的消防水系統工程量信息
將IFC物理文件中表達的信息與IFC標準文件中對實體屬性的描述方法及實體間的關聯關系進行梳理,從而實現基于IFC物理文件對消防水系統工程量的相關信息的識別。
1)管道信息識別
(1)直接屬性
在IFC物理文件中消防管道是以IFCFlowsegment實例進行表達的,實體的各屬性值解釋如圖1所示,其中第六個屬性對管道的位置信息進行描述,第七個屬性對管道的幾何信息進行描述。

圖1 管道實例屬性值解釋
(2)導出屬性
對于管道的位置信息,是使用IFCLocalPlacement實體進行描述,采取在相對坐標系通過逐層嵌套的方式形成。因本文需識別管道信息與位置無關,故對位置信息屬性不進行深入解析。
對于管道的幾何信息,是使用IFCProductDefinitionShape實體進行定義,對于具體的幾何信息表達,是采用IFCExtrudedAreaSolid實體進行描述,該實體包括四個屬性:拉伸截面定義、拉伸起始位置定義、拉伸方向定義以及拉伸長度定義。
(3)反屬性
對于管道的反屬性,采用關聯實例將屬性集與目標實例進行關聯,從而使如圖2所示,目標實例#563138具有屬性集所包含的屬性,其中該實例共計關聯了9個屬性集,分別為:“Pset_DistributionFlowElementCommon”、“其他”、“尺寸標注”、“機械”、“機械-流量”、“標記數據”、“絕緣層”、“階段化”、“限制條件”。對于管道材料信息,在屬性集“機械”中進行描述,對應屬性名稱為“材質”。

圖2 管道反屬性定義解析
綜上,本研究關注的管道的管徑及長度信息可從導出屬性的IFCExtrudedAreaSolid實體的屬性信息中讀取,管道材質信息可從反屬性的“機械”屬性集中讀取。
2)連接件信息識別
(1)直接屬性
在IFC物理文件中彎頭是以IFCFlowFitting實例進行表達的,實體的各屬性值解釋如圖3所示,其中第六個屬性對彎頭的位置信息進行描述,第七個屬性對彎頭的幾何信息進行描述。

圖3 彎頭實例屬性值解釋
(2)導出屬性
對于彎頭的位置信息,具體描述方法與管道一致,此處不再贅述。
對于彎頭的幾何信息,使用IFCShapeRepresentation實體進行表達。如圖4所示采用映射實例將映射源實例(#6367)對目標實例(#816239)進行映射定義,從而實現對目標實例的幾何信息的表達。其中:因彎頭為非規則模型,在IFC物理文件中采用IFCFacetedBrep實體進行描述,具體為:使用點組合描述閉合面(IFCFace),面組合描述閉合殼體(IFCClosedshell)的形式,對實體的幾何形狀進行描述;一個映射源實例可以對多個具有相同幾何形狀的目標實例進行映射定義。

圖4 彎頭幾何信息定義解釋
(3)反屬性
對于彎頭的反屬性,表達方法與管道一致。在“尺寸標注”屬性集中對彎頭的公稱直徑(針對三通或四通會存在多個直徑信息)、角度等信息進行描述;在“其他”屬性集中對彎頭(或三通、四通)的類別進行描述。
綜上,本研究關注的連接件類型信息可以從導出屬性中進行讀取或從屬性集中進行獲取,對于連接件是否具有相同幾何尺寸可通過幾何信息中映射源實例是否相同進行判斷。
3)閥門信息識別
在IFC物理文件中閥門是以IFCFlowController實例進行表達的。對于閥門的直接屬性、導出屬性、反屬性等信息描述方法與連接件一致,此處不再贅述。
本研究關注的閥門類型信息可以從導出屬性中進行讀取或從屬性集中進行獲取,對于閥門是否具有相同幾何尺寸可通過幾何信息中映射源實例是否相同進行判斷。
4)噴頭信息識別
在IFC物理文件中噴頭是以IFCFlowTerminal實例進行表達的。對于噴頭的直接屬性、導出屬性、反屬性等信息描述方法與連接件一致,此處不再贅述。
本研究關注的噴頭的類型信息可以從屬性集中獲取。
1)管道工程量信息的提取
根據管道的信息識別方法,進行管道工程量信息提取算法流程設計,主要包括以下四個步驟:
(1)IFC物理文件的預處理
為便于計算機對IFC物理文件進行語句上的識別讀取,需將IFC物理文件根據STEP標準進行預處理,分割為“實例名”、“實體名”、“實例屬性”等字符串,并對實例屬性中包含的屬性值以“,”為界形成單獨的數據字段。
(2)目標實例識別及嵌套檢索
識別實體名為“IFCFLOWSEGMENT”的目標實例,根據實例名由小到大,對實例進行逐條解析。首先讀取目標實例的第七個屬性值,定位至實體名為“IFCEXTRUDEDAREASOLID”的實例,其中:對該實例的第一個屬性值進行嵌套檢索,定位至實體名為“IFCCIRCLEPROFILEDEF”的實例,此實例的第四個屬性值即為管道的管徑信息;該實例的第四個屬性值為管道的長度信息。
(3)信息讀取與統計
對步驟二中讀取的管道直徑及長度信息進行存儲,待完成全部目標實例的遍歷后,以管道直徑為原則進行分類統計。
(4)信息輸出
將步驟三中統計的信息以表格的形式輸出形成表格文檔。
2)連接件、閥門及噴頭的工程量信息的提取
因連接件、閥門及噴頭的信息識別方法基本相同,工程量信息的提取方法一致。根據其提取方法設計工程量信息提取算法流程,該算法主要包括五個步驟:
(1)IFC物理文件預處理
(2)目標實例幾何信息的映射實例讀取
按照實體名識別目標實例。讀取目標實例的第七個屬性值。
(3)目標實例的反屬性解析及讀取
將目標實例的實例名進行全局檢索,對以目標實例名作為屬性,且實體名為“IFCRELDEFINSBYPROPERTIES”的實例進行全部提取。對提取出的實例的第六個屬性值進行嵌套檢索。存儲屬性集名稱為“尺寸標注”及“其他”的屬性集的屬性值,并對屬性值使用UFT-8編碼體系進行解析。
(4)信息統計
將步驟二保存的實例的兩個屬性值進行對比統計,具有相同兩屬性值的實例即為具有相同幾何尺寸的連接件(或閥門、噴頭),同種連接件數量做累加。
(5)信息輸出
將不同類型的連接件(或閥門、噴頭)數量及對應的尺寸信息以表格的形式輸出形成表格文檔。
根據上文所述消防系統工程量提取算法流程,使用python2.7作為主要開發語言,形成“IFC tool”軟件。
點擊“瀏覽”,選擇需操作的IFC模型文件,根據實際需求勾選需統計的管道或管件的類型,點擊“運行”即可執行統計操作,軟件會以表格形式輸出工程量統計結果。
本文基于IFC底層標準架構及EXPRESS語言的描述方法,對IFC物理文件中管道、連接件、閥門、噴頭等實體進行文本化處理和語義解析,實現對消防水系統工程量信息的識別。并根據管道及管件的信息識別方法設計了對應的工程量信息提取算法流程,使用python2.7作為主要開發語言,完成“IFC tool”軟件的開發。從IFC物理文件的層面,實現直接對消防水系統的工程量信息進行識別與提取,減少對大型三維建模軟件的依賴,提高了BIM模型的使用效率,為IFC模型文件的綜合應用提供理論支持。
但本文仍存在一定局限性,其中對消防水系統工程中需安裝的吊桿、抗震支架等部件在BIM物理文件中的表達方法未進行系統分析,故未納入工程量統計范圍;對管道與管件間實際施工中存在連接重合部分,因BIM模型中未表達,故此處工程量未納入統計范圍。