占鑫奎
广州市城市排水有限公司 广东 广州 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模型中未表达,故此处工程量未纳入统计范围。