信息化是工程建设行业发展的必然趋势。建立构件库的过程中,如何利用信息化技术快速且低成本地搜集BIM构件并完成标准化入库操作,以应用于快速建模,是目前或未来建筑工程设计中不可忽视的重要问题。IFC(Industry Foundation Classes)标准是开放的面向对象的建筑数据存储与交换标准,可解决BIM软件间数据共享与交换的难题,被国际广泛认可。基于IFC标准建立BIM构件库利于解决构件数据标准不统一的问题。考虑到构件的通用性,且多数软件均支持IFC文件输出,可通过对IFC文件进行构件信息提取储存。目前对IFC构件的表达已有较成熟的研究,但未针对构件库的应用进行系统化整理。在IFC标准构件库方面的研究较少且主要集中在对于构件库的框架搭建上,但暂未有针对已有IFC文件进行构件分类搜集提取的研究,相关研究集中于对完整信息模型进行子模型提取,提取算法一般基于MVD文档,主要为满足建筑特定阶段或各专业业务功能需求,与构件库所需的构件搜集功能相差较大,冗余信息也较多。本文基于国际IFC标准,提出一种构件入库信息自动提取方法,根据建筑信息分类原则并利用IFC信息实现构件自动分类,同时通过信息提取算法从已有模型的IFC文件中提取BIM构件库建设所需信息并将信息按属性类别分类存储,以实现构件信息的高效入库储存管理(图1)。
信息化是工程建设行业发展的必然趋势。建立构件库的过程中,如何利用信息化技术快速且低成本地搜集BIM构件并完成标准化入库操作,以应用于快速建模,是目前或未来建筑工程设计中不可忽视的重要问题。IFC(Industry Foundation Classes)标准是开放的面向对象的建筑数据存储与交换标准,可解决BIM软件间数据共享与交换的难题,被国际广泛认可。基于IFC标准建立BIM构件库利于解决构件数据标准不统一的问题。考虑到构件的通用性,且多数软件均支持IFC文件输出,可通过对IFC文件进行构件信息提取储存。目前对IFC构件的表达已有较成熟的研究,但未针对构件库的应用进行系统化整理。在IFC标准构件库方面的研究较少且主要集中在对于构件库的框架搭建上,但暂未有针对已有IFC文件进行构件分类搜集提取的研究,相关研究集中于对完整信息模型进行子模型提取,提取算法一般基于MVD文档,主要为满足建筑特定阶段或各专业业务功能需求,与构件库所需的构件搜集功能相差较大,冗余信息也较多。本文基于国际IFC标准,提出一种构件入库信息自动提取方法,根据建筑信息分类原则并利用IFC信息实现构件自动分类,同时通过信息提取算法从已有模型的IFC文件中提取BIM构件库建设所需信息并将信息按属性类别分类存储,以实现构件信息的高效入库储存管理(图1)。
图1??构件入库信息自动提取流程示意
1??基于IFC的建筑构件分类
1.1??建筑构件分类原则
BIM构件库入库信息提取的研究中,建筑构件的分类是快速存储的基础。建筑信息分类体系分为两大类:传统建筑分类为线分类法,包括基于构件和工种工项2种分类法,分别以UNIFORMAT和Masterformat为代表。我国GB 50500—2013《建筑工程工程量清单计价规范》分类体系属基于工种工项的分类;现代分类体系采用面分类法,以ISO框架为基础并综合传统分类方法,其代表为Omniclass,我国GB/T 51261—2017《建筑工程设计信息模型分类和编码标准》也属现代分类体系。
出于构件库的特性要求,选择GB/T 51261—2017《建筑工程设计信息模分类和编码标准》附录A表14中 14-10(建筑)为基础(该附表参考基于构件分类的Masterformat体系)。考虑后续建模及工程量计算需求,参考《工程量清单》分类与主流软件建模流程, 引入材料、截面和功能分类,提出多级建筑构件分类原则。一、二级分类依据为使用部位和功能,固定性高;三级分类依据为材质和几何形态,是补充的分类信息,具有较强的独立性和可变化性。因此采用一、二级为隶属关系,三级为平行特征面的线面结合混合分类法。图2以常用建筑构件为例展示了该分类原则。
图2??IFC实体属性信息分类示意
1.2??基于IFC标准的建筑构件分类信息
IFC标准中建筑构件均由IfcBuildingElement子类实体表示,常用建筑构件IFC实体名称是一级分类判别标准。对用户自定义的构件实体IfcBuilding ElementProxy则提取IfcBuildingElementProxy.name,判断其是否包含某构件一级分类名中关键字以确定所属一级分类。 构件分类流程如图1所示: 读取构件一级分类信息,选择某类构件为目标对象后对其预处理与二级分类,对该类目标对象遍历并提取信息后,再对下一类别构件重复操作。
IFC标准对几何信息相同的构件常通过映射实体IfcMappedItem的MappingSource属性引用同一映射源IfcRepresentationMap。因此二级分类前需对IFC文件预处理,对采用映射法表示几何信息的构件提取映射源实体,剔除引用相同几何实体的多余构件后将剩余构件归入目标构件组TargetElement,图3为映射源实体提取算法。
图3??映射源实体提取算法示意
建筑构件二级分类标准主要为构件功能和所在部位,其关键信息为通过属性集实体表达的属性集名称IfcPropertySet.Name、属性名称IfcPropertySingleValue.Name和属性值IfcPropertySingleValue.NominalValue。判断时需对TargetElement中构件提取符合相应名称的属性集和属性并通过属性值判断二级分类,提取步骤如下:
(1)通过构件IsDefinedby属性查找关联实体IfcRelDefinesByProperties;
(2)查找关联实体RelatingPropertyDefinition属性获得属性集实体IfcPropertySet;
(3)提取属性集实体HasProperties属性获得属性集属性实体IfcPropertySingleValue。
2??基于IFC的构件库信息提取
构件入库过程中需提取必要信息,结合应用需求和IFC的属性定义,将存入库中的数据分为基础信息、材料信息、几何信息、属性信息。后3类信息也提供了构件在材料、截面、细分功能特征面上的属性,以此对构件进行三级分类。
2.1??基础信息
IfcBuildingElement的直接属性是建筑构件的共有属性,定义为基础信息。门窗实体的直接属性还包括长、宽等整体构造信息。此外基础信息还需根据分类结果添加对应一级与二级分类信息。表1列举了建筑构件基础信息与IFC对象实体直接属性对应关系。
表1??构件基础信息与对象实体直接属性对应关系
2.2??材料信息
2.2.1??材料信息定义方式
构件材料信息可为单一或多种材料集合。IFC中不同材料信息表达方式对应不同材料表达实体,不同材料信息表达方式的定义见表2。
表2??材料信息表达方式
2.2.2??材料信息提取方式
构件通常由不同材料的组件组成,因此材料信息中包括组件及其材料的信息,通过材料定义实体IfcMaterialLayer, IfcMaterialProfile, IfcMaterialConstituent表示。
组件信息包括材料表达方式、组件名称、类别和参数,材料定义实体的Name和Category属性分别表示组件名称和类别。组件参数与材料定义实体相关,IfcMaterialLayer的参数为LayerThickness属性表达的组件厚度。IfcMaterialProfile的Profile属性定义了组件截面,以引用的截面实体编号为组件参数。IfcMaterialConstituent与Name值相等的IfcShapeAspect关联,据此可查到组件相应的几何实体并提取编号为组件参数,具体引用关系见IFC标准中IfcShapeAspect部分。截面和造型实体信息的提取在下节表述。
材料信息有材料名称和类型,分别由IfcMaterial的Name和Category属性表示。由于材料信息经多层引用,且可能采用不同表达方式,因此需判断材料表达方式后再按不同方式提取相应信息。
2.3??几何信息
为实现参数化建模并剔除冗余信息,几何信息按构件类型分为一维信息、二维信息和三维信息三种信息提取方式。
几何信息包括几何类型和几何参数。几何类型表示相应提取方式。
图4为建筑构件几何信息提取算法,厚度和截面信息提取算法在后几节讨论。
图4??建筑构件几何信息提取算法示意
2.3.1??一维信息提取方式
墙板等构件一般用规则截面的拉伸实体表示,可通过拉伸实体的参数获取厚度信息。
2.3.2??二维信息提取方式
构件通过IfcExtrudedAreaSolid的SweptArea属性引用截面实体IfcProfileDef。截面分为参数化和非参数化截面,参数化截面包括圆形、矩形等常见截面;非参数化截面有自定义截面、组合截面和派生截面。
截面信息包括截面ID、截面类型、截面名称和截面参数。IfcProfileDef的不同子类代表不同截面类型,其ProfileName属性定义截面名称。参数化截面的参数为定义截面形状的参数;组合和派生截面提取引用的截面实体编号为参数,并嵌套提取截面信息。自定义截面参数为组成截面的线条实体IfcCurve及其编号,并将不同线条实体按引用关系储存。
提取截面信息前,需判断截面类型,根据类型提取相应信息。
2.3.3??三维信息提取方式
三维储存的几何信息一般由多个IfcExtrudedAreaSolid或IfcFacetedBrep表示。由于要保存整体造型信息,需提取所有组成几何信息的拉伸实体或面片实体。
IfcExtrudedAreaSolid包含Swept Area, Position, Direction, Depth 4个属性,分别表示拉伸截面、拉伸坐标系、拉伸方向和拉伸长度。IfcFacetedBrep中以层级方式存储拓扑元素形成拓扑数据链,最底层拓扑元素引用笛卡尔点描述实体。拓扑元素引用关系为:壳(Shell)→面(Face)→面边界(FaceBound)→顶点(Vertex)→边(Edge)→环(Loop)。
2.4??属性集信息
属性集信息约占所有属性的80%,是构件信息重要组成部分。动态和静态属性集分别通过IfcRelDefinesByProperties, IfcRelDefinesByType与构件和类型实体关联。
属性集属性包括属性名称和属性值。为对其分类管理,补充属性类别和属性集ID。属性类别可区分不同类的属性集属性,表3为其定义。属性集ID对同类不同属性集的属性编号。如对同属WindowPanel, 但由不同IfcWindowPanelProperties定义的属性,赋予不同的属性集ID,代表不同窗面板的属性。属性集属性提取可采用徐嘉懿提出的算法,并根据属性所属类别和属性集添加属性类别和属性集ID。
3??基于IFC的构件信息数据库设计
为实现对构件信息的储存,根据前文所述的构件信息分类方式将提取的四类信息分别存入BasicInfo, MaterialInfo, GeometryInfo, PropertySetInfo数据表,表的字段如第3节分析。BasicInfo为主表,通过主键Element_ID与另三表建立联系。MaterialInfo和GeometryInfo表分别是材料信息表和几何信息表,储存上文所述的表达类型、名称、种类参数等相关信息。材料与几何信息根据表达方式的不同分别与截面或两类造型实体关联,因此另设截面表Profile与两类造型表ExtrudedAreaSolid和FacetedBrep,分别通过截面号ProfileID和实体号ExtrudedSoildID/BrepSolidID与MaterialInfo, GeometryInfo关联,截面号与实体号均为相应实体的实体编号,图5为基于IFC标准的构件信息数据库关系图。
图5?? 基于IFC标准的构件信息数据库关系
自定义截面需根据2.3.2的实体引用关系对定义截面的线条轮廓实体另外储存,此外三维信息中的拉伸实体与面片实体也需根据2.3.3的实体引用关系储存下层实体,在此不具体列出。
通过将所提取的构件信息储存在以该数据库为基础搭建的构件库中,即可实现构件高效的入库分类储存和管理。
4??结论与展望
本文基于建筑分类规范与IFC标准建立构件多级分类原则,提出基于IFC的构件自动入库信息管理方法,实现基于IFC中分类信息的构件自动分类。同时将构件信息按不同属性类别分类提取并储存于IFC构件属性信息数据库中,以实现构件自动入库。基于IFC标准实现BIM构件自动入库信息提取算法的研究,不仅可实现构件的复用性,为建筑信息传递的一致性提供支撑,还有助于提升BIM构件库建设过程中的入库效率与质量。在本研究的基础上,可进一步展开以下工作。
(1)完善构件几何信息的提取算法。IFC标准中有多种几何信息表达方式,本文算法只针对常见表达,为提高完整性,需对其余表达方式补充。
(2)优化构件信息数据库的结构,以提高模型数据存入数据库的存储效率。
(3)基于本文的入库信息提取方法与构件库建设理论进行实际案例应用,同时针对已提取的属性信息研究新增构件重复性检查,进一步消除构件冗余性。