张其林, 唐子涵, 满延磊
(1. 同济大学 土木工程学院,上海 200092;2. 上海同磊土木工程技术有限公司 研发部,上海 200433)
传统建筑行业因高度分散的行业特性、不同参建方技术应用的不一致性等因素,存在较为严重的资源浪费与经济损失现象[1]。建筑信息模型(Building Information Modeling,BIM)的出现,推动了建筑业信息化变革的浪潮。BIM技术旨在以建筑信息为基础构建计算机建筑信息模型,使建筑设计、建造、管理等各阶段信息高度集成,促进项目各参与方高效协同工作[2],提高设计施工效率、控制资源浪费。BIM技术发展的核心是在统一的数据管理平台下实现多专业领域、多时间节点的数据共享。然而,由于建筑领域设计软件繁多、不同软件对结构模型的读取与输出机制不同,信息交互仍存在较大阻碍[3]。迄今为止,国内外仍未能实现基于一套BIM模型完成的全过程正向设计,不同阶段、不同领域的设计人员常需对其他BIM软件传输的模型进行大量修改或二次建模,导致模型信息不集成、不连续,且消耗大量时间、人力成本。为打破不同BIM软件间的信息传输壁垒,国际智慧建筑联盟制订了工业基础类(Industry Foundation Classes,IFC)标准作为国际通用的BIM数据交互标准[4],对设计信息进行存储、传递、共享。IFC标准采用STEP标准与面向对象的EXPRESS语言描述,具有公开化、结构化、面向对象等特征[5-6],按照层级进行划分的框架具有较强的可读性与可扩展性[7],是解决BIM数据交互问题的基础。
钢结构作为当前应较为广泛的建筑结构形式之一,由于其体系、构件、连接类型复杂多样,且力学分析、设计验算、结构深化等各阶段相对独立,对高准确性、高效率的BIM 数据交互功能的需求较为迫切。但现有的基于IFC 标准的数据交互技术对钢结构BIM信息传输的准确性与完整性较低,严重影响了钢结构BIM技术的推广应用。本文提出了基于IFC标准的钢结构BIM 全数据交互技术,其中导出技术最大限度保留了钢结构模型信息,可获得较高的BIM软件IFC数据解析支持率;针对Tekla软件开发的专用导入接口,能实现IFC模型全信息读取与编辑,打通了钢结构从计算、深化到出图的全信息交互节点,实现了钢结构BIM技术应用的高精确性与高效率。
目前,建筑设计阶段对基于IFC 标准的数据交互技术的研究主要集中于IFC 数据映射、信息集成共享与相关应用开发等方面。Lipman[8]研究了钢结构设计标准与IFC 数据的映射方法,为IFC 标准在钢结构设计中的应用打下基础;Wu等[9]从语义与几何信息的角度出发提出了一种基于BIM 数据集的IFC 数据映射优化方法;Kang 等[10]设计了基于IFC标准的信息提取、转换与加载框架,并对IFC标准与GIS标准进行了集成研究。诸多研究成果被应用于建筑、桥梁、隧道等多种结构形式的模型转化中[11-13],使IFC标准的应用范畴得到进一步丰富与扩展。
目前在基于IFC数据交互的应用领域,多数深化设计与实体建模类BIM软件均提供IFC格式模型的导入导出功能,如Revit、Tekla Structure、ArchiCAD、Bentley、Advance Steel等,但其应用效果并不尽如人意。许多学者在研究中指出,IFC数据于不同软件中传输时存在一致性问题,Turk Z等[3]通过IFC数据转换测试发现以IFC标准描述的建筑信息模型在不同BIM软件间传递会出现信息错误、构件丢失、表达不一致等现象;Ghang Lee等[15]发现同一模型在不同软件中输出的IFC文件在大小、编号、描述构件所使用的对象类型与属性等方面都存在差异。综上所述,IFC数据在BIM软件间的传输主要存在两方面问题:一是模型IFC数据导出时会出现信息表达错误甚至丢失的现象;二是即使通过IFC文件获取到较为完整的钢结构模型数据,部分BIM 软件对模型信息的解析功能仍不够完善,且不同软件间IFC数据到实体模型的映射算法不统一、存在信息表达歧义,难以完整准确的还原结构模型[16],影响模型传输效率。
在信息导出错误与丢失方面,以某钢结构框架模型为例,将其在两类BIM软件间以IFC格式进行传输,模型出现了较为明显的杆件缺失(见图1a),且切割过的板件只保留了实体外观,其切割信息、厚度、编号等关键属性均丢失,无法进行参数化二次编辑(见图1b)。
图1 IFC模型信息传输问题Fig.1 Error in transmission of information from IFC model
在信息解析不完全方面,以钢结构详图设计软件Tekla Structures 为例,其内置 “参考模型” 功能接受*. ifc格式文件导入,但解析所得模型的信息保留率较低,大量零构件出现几何外观表达错误,无法直接用于深化设计与出图。例如,将某圆管柱IFC 模型导入Tekla,发现柱身出现了严重的板件、螺栓缺失,如图2a所示。Tekla 2020及以上版本增加了 “起始IFC 对象转换变更管理” 功能,可通过转换、作为挤压转换、作为项转换等选项对构件进行调整,但即使经过转换,模型仍存在构件丢失现象,如图2b 所示,且转换无法批量操作,对体量较大的建筑模型,逐一转换调整构件并不现实。综上,经由IFC 标准传输的钢结构模型,常需要工程人员进行大量步骤繁琐的修改调整,严重影响设计效率。因此提升钢结构IFC 数据导出的准确性与兼容性,针对部分IFC数据解析能力不足的BIM软件创建相应的IFC数据解析接口,已成为解决问题的关键所在。
图2 Tekla对IFC模型的表达错误Fig.2 Wrong expression of IFC model by Tekla
为提升IFC 数据导出的完整性、准确性与兼容性,根据IFC标准下的模型表达机制,设计模型数据至IFC 数据的转换流程,整体思路可划分为模型几何信息导出与附加属性导出两部分。
2.1.1 模型几何信息导出
模型中构件几何信息可通过IFC 构件类IfcElement 及其派生类描述。构件在不同软件中IFC 类转换差异,是导致几何信息传输错误的一大原因。例如,梁、柱、板等构件分别可转换为IfcBeam类、IfcColumn 类、IfcPlate 类,也 可 统 一 转 换 为IfcBuildingElementProxy 类,研究发现多数BIM 软件对前者有更强的解析能力;焊缝、螺栓等连接可转换 为 IfcDiscreteAccessory 类 、IfcMechanical-Fastener类等,经测试不同方式导出构件的信息完整度,决定采用IfcDiscreteAccessory 类描述焊缝连接,IfcMechanicalFastener 类描述螺栓等连接,使模型导出的构件信息拥有最大程度的完整性与兼容性。
导致信息丢失、二次编辑困难的另一原因,是构件的几何实体项表达方式差异。若构件几何构型规则,其几何实体项IfcGeometricRepresentationItem可通过IFC拉伸实体IfcExtrudedAreaSolid、IFC旋转实体IfcRevolvedAreaSolid 等参数化实体表达,其信息保留率较高,能够二次编辑。若构件形状复杂,难以通过既有IFC参数化实体表达,可采用参数化程度较低的IFC面片实体IfcFacetedBrep替代,面片实体将构件拟合为网格化的三角面片,能描述实体几何外观,通用性较强且算法简单,是目前BIM软件对构件的主流转化方式,但其信息保留率低,导出后无法二次编辑。对比两种表达方式,结果如表1所示。
表1 IFC几何实体项表达方式对比Tab.1 Comparison of IFC geometric entity item expressions
为减少B-rep面片实体带来的信息丢失,本研究对复杂构件优先采用CSG(Constructive Solid Geometry)体素构造法描述,CSG将复杂实体视作简单几何实体的布尔运算结果,其中简单几何实体可采用参数化IFC实体描述,以提高构件信息保留率。例如,基于CSG法创建切割体、被切割体的IFC参数化几何实体,将其视为布尔算子IfcBooleanOperand,应用IFC标准提供的union/intersect/difference三种运算符执行布尔运算。若构件经历过线/面切割,可通过IFC标准下的半空间体IfcHalfSpaceSolid予以描述,切割面即为半空间体边界面,切割面法向为半空间体深度方向。模型构件几何信息转换思路如图3所示。
图3 IFC构件几何信息转换Fig.3 Geometric information conversion of IFC elements
2.1.2 模型附加属性导出
模型附加属性包含构件截面、材质、编号、组信息等,目前多数BIM 软件对IFC 附加属性转换处理较少。本文为最大限度保留模型信息,通过以下三种方式导出其附加属性:
一为材料属性,可通过IfcRelAssociatesMaterial关联构件与其材料集IfcMaterial 导出,经验证此方式可获取较高的BIM软件解析支持率。
二为截面、编号等基本属性与常用构件附加属性,可通过属性集IfcPropetySet 中的HasProperties引用单值属性,再以IfcRelDefinesByProperties 建立构件与属性集间关联的方式导出。其中构件附加属性增加了可导出的信息种类,如对杆件,实现端部定位点重心坐标导出;对板件,实现切角类型、切角尺寸导出;对螺栓、锚栓、铆钉,实现规格、装配类型、排列方式等信息导出;对焊缝,实现类型、角焊缝高度(若为角焊缝)等信息导出。此方式可便捷导出多种自定义属性,且不受表达方式限制,思路如图4所示。
图4 IFC构件属性转换Fig.4 Attribute conversion of IFC elements
三为目前绝大多数BIM软件均未考虑的组信息,包括构件组、节点组等。组信息导出最重要的是同时保留构件自身参数化信息与依附关系,经研究本文采用IFC 聚合关系类IfcRelAggregates 描述组,以抽象类 聚 合 元 素 集 IfcElementAssembly 作 为RelatingObject提示组关系,以RelatedObjects定义组构件集合,该方式使组层级与构件属性均得以保留,实现了高参数化水平的组信息转换,思路如图5所示。
综上,设计如图6所示的模型IFC数据导出流程。
图6 模型IFC数据导出流程Fig.6 Exporting process of model IFC data
经上述流程导出的钢结构模型IFC 文件,可将模型中零构件几何外观、坐标方位、布尔运算过程等几何信息与零构件材料、截面、编号、组关系等附加属性完整准确的表达,且映射算法具有较强的兼容性,能够于主流BIM 软件中实现准确的几何构型表达与参数化构件二次编辑。
为实现模型全数据交互与二次编辑、出图,还需完善BIM软件对IFC数据的解析功能。本文选取常用于施工图绘制、对模型可编辑性要求较高的Tekla软件,研究针对Tekla 的IFC 数据导入接口,设计IFC数据到Tekla模型数据的完整转换流程。
IFC 结构模型可通过IfcProject 表达,其依次关联模型场地、建筑、楼层信息,以及模型整体的空间坐标方位。解析IfcElement 类,可获得全部建筑构件信息,遍历其中成员,可逐一转化构件。
Tekla中IFC构件解析需按一定顺序进行。部分实体存在关联实体,如切割体、被切割体可视为切割结果的关联实体,被连接构件可视为连接件的关联实体。以Tekla零件切割为例,执行切割的方式为实例化一个BooleanPart 对象,设置已存在的零件为该对象的被切割体Father与切割体OperativePart,若该对象Insert成功,说明切割成功。因此这部分IFC实体解析时,需满足其关联实体均已生成的先决条件,考虑采用拓扑排序思路:对不存在关联实体的构件先行解析,每解析完成一个构件,记录该构件IFC标识符GlobalId 与Tekla 标识符Identifier 间的哈希映射;若当前构件存在关联实体,获取其算子BooleanOperand的IFC标识符GlobalId,判断哈希表中是否已存储该GlobalId 作为键值,若否,说明当前构件存在布尔算子尚未生成,无法执行切割操作,需暂缓解析。所有关联实体单向记录,即解析不存在环路。
Tekla构件创建时需要设置属性,故实例化构件对象前需先通过反向属性IfcRelDefinesByProperties获取与当前构件对象IfcElement 相关联的属性集,采用数据结构哈希表记录属性名与属性值间的映射关系。考虑到Tekla中材料库、截面库设计依据为欧洲规范,属性解析前先建立国标与欧标间关于材料、截面类型的转换机制。
解析螺栓、锚栓等连接构件时,由于螺栓群可围绕定位点与定位轴线进行偏移与旋转,这为栓群位置的确定带来较大困难。本研究采用记录螺栓局部坐标系,螺栓创建时将模型整体坐标系转换为局部坐标系,基于构件坐标层次进行螺栓定位,待创建完毕再还原整体坐标系的方式,解决了螺栓定位问题。属性赋值阶段先设置螺栓规格、直径、装配类型等基本信息,再通过关联实体的IFC 标识符GlobalId 与此前记录的已生成Tekla 构件的GlobalId 到Identifier 间的哈希映射找到待连接构件,绑定其为螺栓的PartToBoltTo 与PartToBeBolted 对象,完成螺栓实体导入。零构件创建过程及实例化相应类需赋值的成员变量如图7所示。
图7 Tekla零构件创建与属性设置Fig.7 Component creation and property setting of Tekla
由于拓扑排序流程确保其布尔算子已拥有Tekla实体,解析布尔类型构件时可直接获取相应实体并利用实例化零件切割(BooleanPart)、面切割(CutPlane)等类对象,执行IfcBooleanOperator 记录的切割或延伸操作,重现并维护构件切割或连接过程。布尔切割流程及实例化相应类需赋值的成员变量如图8所示。
图8 Tekla布尔实体创建与属性设置Fig.8 Boolean entity creation and property setting of Tekla
解析模型组信息时,从IfcRelAggregates 类获得组内子构件的IFC 标识符,利用哈希映射确定对应Tekla构件实体,通过GetAssembly 方法获取主零件的Assembly装配对象,再将其余构件加入该装配单元,实现组信息转换。综上,设计如图9所示的模型 IFC数据导入流程。
图9 模型IFC数据导入流程Fig.9 Importing process of model IFC data
由于模型中零构件均根据IFC数据重建,效果等同于直接在Tekla中手动建模,故经上述流程解析得到的IFC模型能够较好的满足二次编辑与出图需求。
IFC数据导出技术的程序依托同济大学自主研发的钢结构设计平台3D3S实现,能够将常见的钢结构模型导出为IFC文件。开发3D3S软件系统需要C++编程语言与基于ObjectArx的AutoCAD二次开发环境。为将模型信息转换为IFC格式数据,使用开源引擎IfcOpenShell,并通过自主设计的各类转换函数,实现ObjectArx中三维实体类AcDb3dSolid派生的各类构件实体到IFC实体的转换。
IFC数据Tekla专用导入接口的程序则依托基于C#编程语言的Tekla二次开发实现,由于IfcOpenShell解析器没有C#版本,使用Xbim开源库对IFC文件进行解析,并利用Tekla官方应用编程界面TeklaOpenAPI提供的类库,实现IFC实体到Tekla模型中ModelObject类派生的各类构件实体的转换。
由3D3S IFC数据通用导出技术导出的IFC模型具有普适性,能够在支持IFC文件读取的主流BIM软件中表达,直接将模型导入至Revit、ArchiCAD、Navisworks等软件中,可实现模型几何构型交互,满足模型中参数化构件的二次编辑,这样的数据接口可视作通用接口;同时为提升模型转换精度、避免深化阶段重复建模,开发针对Tekla的IFC数据导入接口,使经其导入的模型实现全信息保留与二次编辑,提升钢结构深化设计效率,这样的数据接口可视作专用接口。IFC模型转换程序框架如图10所示。
为验证研发的通用数据接口工程应用可行性,选取某轻钢厂房模型,经由3D3S Solid软件导出为IFC格式文件。选择建筑结构设计常用且支持IFC模型解析的BIM软件Revit、ArchiCAD与Navisworks,导入该IFC文件,所得模型整体与细部效果如图11、12所示。
图11 厂房IFC模型整体导出效果Fig.11 Exporting integral results for IFC model of workshop
图12 厂房IFC模型细部导出效果Fig.12 Exporting detailed results for IFC model of workshop
经对比分析,导出的IFC模型信息完整、表达准确,参数化程度较高,在几类测试软件中均体现出较优的交互效果。
选取Tekla、Revit、ArchiCAD 3款自带IFC导出功能的结构设计软件,统计其导出的IFC 模型数据信息转化率,对比结果如表2所示。由表格可见,相较于其余3款BIM软件,3D3S IFC数据导出技术能够获得更高的实体切割、构件局部坐标等几何信息的转化率,并通过参数化组信息与构件附加属性丰富了可导出的信息种类,具有较为显著的信息转化优势。
表2 不同软件导出IFC模型的信息转化率对比Tab.2 Comparison of information conversion rates of IFC models exported by different softwares
为验证研发的针对Tekla的IFC专用数据导入接口的工程应用可行性,选取某轻钢厂房模型与某会展中心模型,经由3D3S Solid软件导出为IFC格式文件,使用接口导入至Tekla。所得厂房模型及其细部构造如图13所示,会展中心模型及其细部构造如图14所示。
图13 厂房IFC模型于Tekla中导入效果Fig.13 Importing results to Tekla for IFC model of workshop
图14 会展中心IFC模型于Tekla中导入效果Fig.14 Importing results to Tekla for IFC model of exhibition center
对比使用IFC 数据导入接口前后的Tekla 模型信息转化率,如表3所示。使用导入接口后,模型几何构型、切割信息、附加属性等转化率大幅提升,并新增深化设计所需的关系信息与组信息导入,基本满足后续深化设计与图纸绘制需求,显著提升计算模型到深化模型的转化效率。
表3 使用IFC数据导入接口前后模型信息转化率对比Tab.3 Comparison of model information conversion rates before and after using the IFC data import interface
从运行效率层面分析,以轻钢厂房模型为例,模型dwg 文件大小为216MB,共有13 666 根杆件、12 076 块板件、1 953 个螺栓、2 482 段焊缝、6 784 组节点,经IFC 数据导出技术转换得到的IFC 文件大小为246MB,导出用时8min 11s;导入Revit 软件,用时8min 46s,导入ArchiCAD 软件,用时3min 37s;应用专用数据接口导入Tekla 软件,用时5min 32s,表现了全数据交互技术较优的空间性能与运行效率。
从数据格式层面分析,中国建筑科学研究院建筑工程软件研究所研发的工程管理软件PKPM同样开发了导出模型至Tekla 的功能,但其模型存储为mdb格式,导出与导入均需特定的转换接口,无法满足导出模型供主流BIM软件共享的要求。使用IFC格式与其他格式开发数据接口的功能对比如表4所示,可知使用IFC 格式进行数据导出并开发基于IFC 标准的导入接口通用性较强,且具有 “进可攻、退可守” 的优势。使用专用接口能够有针对性的将IFC 模型全部信息导入指定BIM 软件,无需重复建模即可进行深化设计、施工图出图等流程;使用通用接口则能将IFC模型几何构型与参数化构件全部信息导入主流BIM 软件,实现模型整体基于几何层次的数据交互与参数化构件的二次编辑。
表4 不同格式下数据接口的对比Tab.4 Feature comparison of data interfaces in different formats
(1) 本文针对现有钢结构BIM软件基于IFC标准下的模型数据交互问题,研发了一种全数据交互技术,克服了国内外现有软件平台在钢结构模型IFC数据导入导出中存在的主要弊端,大幅提升了BIM技术在钢结构设计建造全过程中应用的准确性、经济性与效率。
(2) 为提高IFC模型信息导出的完整性与兼容性,选取BIM软件解析支持率较高的IFC类进行零构件转换,并采用参数化程度较高的IFC实体描述基本构件、CSG体素构造体描述异形构件,减少了因应用面片实体带来的钢构件模型参数大量丢失的现象,提高了模型的可编辑性。除可导出构件材料、截面、编号等基本属性外,还可导出任意类型钢构件重要的附加信息,能够满足钢构件对可导出信息的严苛要求。
(3) 通过专用数据接口的设计,可将IFC模型完整准确的传入Tekla软件,避免了深化设计阶段重复建模,提高了基于BIM技术的钢结构模型深化与出图效率。
(4) 本文研发的IFC数据导出技术具有较强的通用性与普适性,所得IFC模型能够在主流BIM软件中实现基于几何构型层次的数据交互与参数化构件的二次编辑;IFC数据导入接口具有较强的针对性,适用于对模型可编辑性要求较高的情况,通过专用接口开发能够实现模型全信息转换与二次编辑,使BIM模型呈现良好的数据交互效果。
(5) 本文研究的IFC全数据交互技术已成功应用于实际钢结构工程中,与传统方法相比,可将钢结构BIM技术的应用效率提高2-3倍,并避免了重复建模可能带来的人为差错。
作者贡献声明:
张其林:提出研究思路,指导研究方案,设计论文框架,审阅论文并提出修改意见,提供技术及经费支持;
唐子涵:调研及整理文献,参与研究工作,完成程序编写,起草并修订论文;
满延磊:调研及整理文献,参与研究工作,指导程序编写,审阅并修订论文。