APP下载

基于IFC的建筑结构设计信息交互框架研究与实现*

2024-04-01张兆波孟晓明

建筑结构 2024年5期
关键词:实体构件模块

张兆波, 孟晓明

(1 甘肃农业大学水利水电工程学院,兰州 730070;2 中国建筑西南设计研究院有限公司,成都 610041)

0 引言

建筑与结构是建筑设计过程中最重要的两个专业,二者相互协调、相互制约。建筑结构设计的流程一般是建筑专业将设计说明和建筑方案提供给结构专业,结构专业完成结构选型、分析计算、结构构件尺寸确定及定位工作。BIM技术能够实现建筑工程项目的协同设计,可以提高建筑设计效率和质量[1-4]。BIM技术在建筑专业的应用点较多也相对比较成熟,如可视化展示、方案比选等,而其在结构专业的应用一直是脱节的[5]。造成这种状况的原因有3种:1)对BIM的认识不足;2)增量成本高,不愿意花费额外的精力、资本跳出稳定且成熟的二维提资模式,转入基于BIM的工作模式;3)法律与标准体系不完善。前两个原因究其根本,是目前没有可行的协同模式和稳定成熟的可互操作的应用程序环境使得结构专业愿意参与到基于BIM的建筑结构设计工作流中。

互操作性是指一个系统(应用程序、工作流、过程等)与其他系统一起工作的能力[6]。可互操作的两个应用程序之间可以互相传递信息,而且传递信息时不会包含错误、遗漏或数据丢失。目前,由于各软件专有的数据格式不同,主流的建筑BIM软件与结构设计、分析软件对彼此的信息交互支持度较低,无法满足互操作性的要求。在BIM工作流中,结构专业仍然需要重复劳动、重新建模,从而导致出错概率增加,设计效率降低。

表1列出了主流建筑BIM软件与结构设计、分析软件的专有数据格式与可导出的数据格式。由表1可知,只有个别软件开发了针对特定软件的非开放接口或插件,但经过笔者的实例验证,利用插件或接口从建筑信息模型向结构分析计算模型的转换难以保证较高的准确性,会出现构件丢失、节点偏心实现困难、构件ID混乱、准换后的模型排错困难等问题。另外,如果只针对个别软件开发插件或接口,会使设计人员对个别软件产生依赖,当合同指定软件或因设计、分析需要变更软件时,会陷入被动。因此,开放、标准化、独立于专业软件的数据交换格式十分必要。

表1 主流软件数据格式

工业基础类 (industry foundation classes,IFC) 是由buildingSMART开发的一种开放的、中立的数据交换格式和数据模型,它用面向对象的方法表示建筑模型的几何和语义信息。IFC将建筑信息数据化,可以表示建筑构件和不同的建筑空间,还可以表示二者的相互关系。目前,IFC已被建筑领域100余种软件支持,几乎可以用于建筑物生命周期中的任何数据交换场景[7],因此它为建筑与结构专业之间的信息交互提供了方法。

1 研究现状

基于IFC的建筑结构专业信息交互研究可以分为以下3类:1)采用中央模型,胡振中等[8]采用算法和基于IFC的中央信息模型来加强建筑与结构模型及结构模型之间的互操作性;Sibenik等[9]用.NET Framework and C#开发的解析器IFCtoJSON parser将IFC文件解析为JSON格式作为中央数据文件,然后基于中央数据文件和几何平台OpenCasCade实现建筑模型到结构模型的转换;2)基于IFC的软件数据接口,刘照球等[10]从Revit软件导出IFC文件,用C++与Fortran语言开发IFC与YJK/PKPM的数据接口,以实现两类软件的数据交互;3)采用模型视图定义(MVD,可以理解为是IFC的过滤器)可以从IFC文件中过滤出特定专业软件需要的信息,明鑫[11]将MVD与结构分析模型的标准化表达相结合,与IFC实体对象进行关联以指导实现结构分析模型的数据共享与转换。

2 问题分析及建筑结构信息交互框架的提出

本文的IFC文件采用STEP物理格式,后缀为.ifc,可以以文本方式打开或阅读[12]。建筑模型导出IFC文件时,经常采用MVD Coordination View,此MVD被很多建筑BIM软件支持。目前,MVD的开发者主要是研究机构和标准化组织,而结构分析领域MVD的研究非常少,专门针对结构分析的MVD Structural Analysis View目前只被少数BIM软件支持,Revit的导出选项中就不包括此MVD。

IFC文件按照IFC Schema定义,它在数据结构层面有很高的完整性,但存在文件庞大,冗余度过高的问题。比如,在进行三维几何形状描述时,IFC Schema提供了边界表示(B-rep)、挤压平面立体(Extruded Area Solid)等多种方式,BIM软件自主、随机选择形体生成方式并导出IFC文件,有时候简单形体用复杂的方式表达,忽视了模型表达效率。另外,在IFC文件中,同一实体经常被多个不同的实体管理和引用,使得同一实体在文件内有多个副本,造成大量重复实体出现。因此为了避免建筑专业与结构专业信息交互过程中出现IFC文件信息冗余度高导致的软硬件资源消耗大、交互效率低等问题,对IFC文件进行轻量化优化很有必要。

另外,建筑BIM模型及其导出的IFC文件中往往存在大量与结构无关的信息。以一个高层住宅楼建筑信息模型为例(图1),此模型导出的IFC文件包含374 895行数据,大小为23.8MB。其中包含了大量与结构无关的实体,比如门IfcDoor、窗IfcWindow、装饰条IfcBuildingElementProxy等实体及其引用的实体和属性。因此,基于IFC的建筑与结构信息交互工作流程中,快速、准确地从建筑IFC模型中抽取与结构计算、分析相关的实体及其属性,生成结构信息模型,对整个工作流程的实现十分关键。

图1 高层住宅楼建筑信息模型

在建筑结构设计时,建筑模型中结构构件的定义和布置通常是借助于建筑师具备的基本结构概念来完成,结构工程师在建筑方案阶段一般参与较少[13]。结构工程师通常是等建筑师给出一个表现空间形式的方案后,以结构专业方法去实现。这可能会造成建筑方案被采纳而结构上不可行,需要进行反复多次的截面尺寸、结构布置、甚至结构体系的修改[14]。

因此,在基于BIM的建筑、结构工作流中,结构工程师应及早介入方案设计阶段,在结构计算分析之前,充分利用建筑信息数据化、数据开放性、可自动读取的优势,借助从建筑信息模型中提取的结构信息模型,设计自动简化计算算法模块,计算重力荷载、重力荷载下结构内力、构件截面初步尺寸、主体抗侧力结构刚度等。使结构工程师在结构分析计算之前快速得到结构近似力学指标和断面尺寸,从而从整体上控制结构的刚度、构件承载力,避免在结构分析时进行反复多次计算与调整,提高设计效率。

简化计算后,结构信息模型有较高的可信度,但在进行结构计算分析时,需要使用结构分析模型。结构分析模型是结构信息模型的简化表示,二者存在差异:1)结构信息模型中,梁、板、柱、墙构件是由截面拉伸或边界面组合表示,构件本身具有截面参数、长度等属性。而在结构分析模型中,梁、柱由线形元素和被赋予的截面和材料属性表示;墙、板由平面元素和被赋予的截面和材料属性表示;2)结构信息模型中,构件的连接关系是由边界点的坐标值确定,结构分析模型中,构件先是通过共用点或共用线实现连接,再设置刚接、铰接等力学连接方式;3)结构分析模型中,材料性质(密度、材料强度、弹性模量、泊松比等)和构件所受的荷载是结构分析的必要元素,而在结构信息模型中为非必要元素。重新建立结构分析模型不符合BIM工作流的原则,因此,需要将结构信息模型转换为结构分析模型。

综合以上分析,本文提出了基于IFC的建筑结构信息交互框架,如图2所示。该框架由4个模块、5个步骤组成,对其解释如下:

图2 建筑结构信息交互框架

第1步:从建筑BIM模型中,通过模型视图定义Coordination View 2.0导出IFC文件。

第2步:开发优化算法模块对导出的IFC文件进行优化,得到优化的IFC文件。

第3步:开发结构信息提取算法模块从优化的IFC文件中提取结构信息模型。

第4步:开发简化计算算法模块。首先,结构工程师将材料属性等简化计算所需参数输入到结构信息模型中,然后利用结构信息模型并通过简化计算模块计算结构力学指标,根据计算结果初步确定合理的构件断面尺寸。

第5步:结构信息模型被结构专业确认无误后,通过开发的模型转换算法模块,将结构信息模型转换为结构分析模型,进行结构分析计算。

第1步在主流建筑BIM软件中都可以实现,本文进行第2、3步的研究工作,分别对应后文中的第3、4节。为了验证这两部分研究成果的可行性,本文第5节选取一框架结构建筑信息模型算例进行验证。

3 IFC文件优化

根据上述IFC文件冗余度分析,且为了提高第3步结构信息模型提取算法的运行效率,需要对BIM模型预处理、对IFC文件进行优化处理,包括以下3个方面:

(1)导出前BIM模型预处理

不同建筑BIM软件有不同的IFC导出设置方法,为了保证导出IFC模型的准确性,本文需要定义的模型预处理原则包括:1)不导出模型空间边界;2)按楼层标高拆分墙柱;3)导出公用属性集;4)模型精度设置为为低。

(2)过滤与结构无关的信息

在IFC文件中,有很多与结构无关的信息、实体和引用的实体需要被过滤,比如IFC头文件(HEADER)信息、与结构无关的度量单位实体、填充墙、门和门洞、窗与窗洞、装饰构件实体、人和组织的属性Owner History对应的IfcOwnerHistory、IfcPerson、IfcOrganization实体等。以上部分实体在引用新的实体时,有可能与结构构件实体共同引用同一个或多个实体,如窗和柱均引用楼层实体IfcBuildingStory、建筑物实体IfcBuilding和场地实体IfcSite,如果将窗实体及其引用的所有实体全部过滤,可能会导致结构信息模型提取时数据缺失。因此,此部分只过滤可以明确判断为与结构无关的实体,即只过滤首层实体,而保留其引用的全部实体,节省时间与算力。结合IFC Schema,对与结构无关的实体进行判定,形成无关实体库,用Python语言开发算法对无关实体进行过滤。

(3)删除重复实体

IFC文件中实体由#开头,图3所示实体编号为#20392,名称为IfcProductDefinitionShape,它用来定义产品形状相关信息,它包含了3个属性分别是:“名称”、“描述”、“表示”。名称和描述属性为可选属性,已被省略。“表示”属性引用了实体#20390,该实体也包含属性及引用的实体,如此形成层层嵌套关系。

图3 实体

在IFC文件中,通常有多组同名、同属性、不同编号的实体,比如IfcAxis2Placement3D实体,该实体用来定义构件或空间局部坐标系的坐标轴方向及坐标原点的位置。在图1所示高层住宅楼建筑IFC文件中,同名、同属性的实体IfcAxis2Placement3D有6 002个,然而只需要保留其中一个供其他实体引用,并用这个保留的实体编号去替换引用实体中重复实体的编号,如图4所示。替换完成后,再次检查新的IFC文件是否出现新的重复实体,如果有,继续进行替换、删除操作。

图4 实体替换

在以上分析的基础上,用Python语言开发优化算法对IFC文件进行优化。

4 结构信息模型提取

首先,根据IFC Schema,对IFC文件数据结构进行深入分析,从复杂的实体继承和引用关系出发,推理与结构构件信息相关的实体和属性。

在IFC Schema中,实体分为对象实体和关系实体,对象实体用属性来描述对象的特征。关系实体通过指向不同的对象实体来描述对象实体之间的关系。实体属性采用继承机制,见图5。

图5 实体继承

在图5这个继承关系中,对象实体IfcObject的空间位置和几何信息由实体IfcProduct和IfcElement的属性来表达,而不同的IfcElement之间的连接或从属关系通过关系实体IfcRelConnectsElements来表达。最终,这些实体的属性被更为具体的实体所继承,如柱IfcColumn、梁IfcBeam、墙IfcWall等。图6为一个简单示例建筑模型导出的IFC文件中#272柱实体及属性。如图6所示,柱从IfcProduct继承的属性ObjectPlacement和Representation用于定义柱的几何信息和位置信息。

图6 建筑模型导出的IFC文件中#272柱实体及属性

ObjectPlacement属性在IFC文件中对应编号#271的实体IfcLocalPlacement,该实体包含两个重要的属性PlacementRelTo和RelativePlacement,属性PlacementRelTo定义柱局部坐标系位于楼层局部坐标系内;属性RelativePlacement定义柱局部坐标系坐标轴方向及及其原点在楼层坐标系内的坐标值。同理,还可以定义楼层局部坐标系在建筑局部坐标系内坐标轴方向及其原点位置、建筑局部坐标系在场地坐标系内的坐标轴方向及其原点位置。最终,通过多次坐标变换,确定柱局部坐标系在场地(绝对)坐标系内的坐标轴方向及其原点位置。

Representation属性在IFC文件中对应编号#268的实体IfcProductDefintionShape,通过分析该实体与其他实体的引用关系(图7)可知,经过5层引用,柱的几何信息包含在#254实体即IfcExtrudedAreaSolid中,该实体定义几何体可以通过挤压平面生成。它包含4个属性,分别是起点位置Position,被挤压平面SweptArea、挤压方向ExtrudedDirection、挤压长度Depth。

图7 实体引用

IFC文件中每个构件都有其所属的空间,例如,柱定义在柱底标高所在的楼层空间。在IFC Schema中,构件和空间的从属关系通过关系实体IfcRelContainedInSpatialStructure表达,它可以将柱实体IfcColumn关联在柱所在的楼层实体IfcBuildingStory。

用同样的方法推理与结构相关的所有实体及其属性、引用实体及其属性、关系实体及其属性。将优化后的IFC文件作为输入文件,利用IfcOpenSell工具箱,用Python语言开发提取算法模块从输入文件中提取结构信息模型。

5 案例研究

为了测试所开发算法的可行性和运行效果,选取了一个三层框架结构教学楼建筑信息模型进行验证,如图8所示。该模型由Revit 2019创建,选择模型视图定义Coordination View 2.0导出IFC文件,文件大小为3.35MB,包含实体64 075个。

图8 教学楼建筑信息模型

用优化算法模块优化IFC文件,先根据无关实体库过滤与结构无关的信息和实体。表2中列出了部分过滤的无关实体的名称及数量。过滤实体的总数量为1 452个。过滤完成后,查找重复实体,第一轮共查找到2 641组重复实体,最小重复数为2,最大重复数为353,为实体IfcAxis2Placement3D(#6,$,$),即存在353个不同编号但同名、同属性的实体。查找完成后,总重复数为8 502,重复率为R=13.6%。选取每组重复实体中编号最小的实体作为保留实体,则其他实体为可删除实体。在删除之前,搜索确定每一个可删除实体的被引用情况,用保留实体在IFC文件中替换被引用的可删除实体,最后删除可删除实体。替换、删除完成后,进行第二轮查找,将前两轮查找结果列于表3中。

表2 无关实体的名称及数量

表3 查找结果

由表3可知,前两轮优化共删除重复实体9 895个,占实体总数的16%,第一轮的优化效果远好于第二轮,因此,为了提高框架整体运行效率、节省算力。此部分优化止于第二轮。经过过滤、删除后的IFC文件共包含52 728个实体,优化率为18%。

用提取算法模块提取结构信息模型,提取出的IFC文件中包含12 210个实体,占优化后实体总数的23%。将提取出的结构信息模型分别导入Revit和IFC Viewer中均能正确加载和显示,没有出现IFC文件语法错误,没有发现构件丢失、构件重叠等情况,如图9、10所示。

图9 结构信息模型(导入Revit)

图10 结构信息模型(导入IFC Viewer)

6 结语

本文从建筑与结构专业的工作模式出发,针对主流的建筑BIM软件与结构设计、分析软件信息交互支持度低这一问题,分析了已有基于IFC的建筑结构信息交互研究现状及存在的问题,提出了基于IFC的建筑结构信息交互框架。该框架由4个算法模块组成,共包含5个步骤。为了实现该框架,用Python语言开发了优化算法模块和结构信息模型提取算法模块,并用一个建筑信息模型验证了算法的有效性,通过验证,得出以下结论:

(1)两个算法模块在实际应用时是可行的。从所得数据可知,优化算法模块可以有效地过滤IFC文件中的无用信息、查找并删除重复的实体,使IFC文件轻量化,以间接提高提取算法模块的运行效率。

(2)提取算法模块可以准确地从IFC文件中提取出结构信息模型,且无IFC语法错误,无构件丢失、构件重叠等情况。

(3)优化算法模块的优化能力还可以继续提升,这需要对IFC Schema进行更深入的研究;提取算法模块在信息提取时运行时间较长,在后续的研究中需要对算法进行优化以缩短运行时间。

(4)后续将用更多不同结构类型的算例验证前述研究成果的可行性。后续的研究中会将简化计算算法模块和模型转换算法模块的开发作为重点内容,以完全实现基于IFC的建筑结构信息交互框架。

猜你喜欢

实体构件模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
前海自贸区:金融服务实体
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
建筑构件
建筑构件
建筑构件
建筑构件