基于IFC的桥梁病害信息可视化表达

2020-09-23 12:30马继骏孔令涛郭向海
土木工程与管理学报 2020年4期
关键词:语句可视化定义

马继骏, 褚 豪, 孔令涛, 郭向海, 白 勇

(1. 河南省交通通信中心, 河南 郑州 450046; 2. 华中科技大学 土木工程与力学学院, 湖北 武汉 430074; 3. 洛阳市公路事业发展中心, 河南 洛阳 471002)

BIM(Building Information Management)技术逐渐广泛地应用于建设工程各领域,其核心是将各类信息集成在建筑三维模型中,实现建筑信息的集成、公开及可视化表达,进而达到工程全寿命周期的信息交互。

将BIM技术应用于桥梁工程中,可实现桥梁建设项目在设计、施工以及运营管养各阶段的协同。不仅提高桥梁设计、施工效率,同时由于信息的高度集成,大大改善了桥梁管养阶段对各类信息的利用效率。

桥梁在设计、施工阶段,其结构模型、材料信息等参数获取较为容易,各种信息值基本稳定,且大多基于理想的结构模型集成。各参与方只需根据一致的BIM模型集成相应信息即可实现。桥梁一旦建成投入运营,由于交通载荷的动态变化,环境因素长时间持续影响且改变结构行为,材料与结构的自然老化,致使桥梁病害随时间呈动态发展。而目前桥梁动态病害信息的获取者——桥梁管养、检测人员,其专业化程度低且流动性高,检测所获取的桥梁病害信息离散性大,且无法统一。此外,既有桥梁BIM模型大多未将动态病害信息纳入其中。因此,如何在统一的BIM 模型中集成和表达桥梁动态信息,实时展现桥梁病害发展历程和病害程度,亟待深入研究。

1 研究现状

截止至2018年底,我国公路桥梁数量已达85.15万座,加上庞大的市政、铁路和水利等行业桥梁,我们面临众多处于运营中的桥梁,管养任务繁重。虽然,BIM在桥梁工程领域已经得到充分认可和持续发展,许多国家也推出了各自的桥梁管养系统,如美国的BRIDGIT及POINTS系统、丹麦的DANBRO系统,英国的NATS系统,以及日本道路公用桥梁管理系统,韩国的SHBMS系统,以及中国的CBMS系统。上述系统都是基于智能化、全寿命理念开发,但由于缺乏信息传输、共享等一系列一致标准,致使应用功能受限,尚处于起步阶段,距离桥梁管养信息技术的充分应用还亟待深入探索。

为完善BIM技术和促进桥梁智能化管养,这方面的研究和工程应用持续得以开展[1]。Shin等[2]提出基于BIM的项目全生命期管理系统,虽然各阶段信息集成标准还有待探讨,但构建了工程项目从开始到寿命结束的全过程框架,促进了BIM技术工程应用的整体构架;结合具体工程应用,Lee[3]在铁路工程项目中构建了BIM解决方案和融入IFC(Industry Foundation Classes)格式标准;综合结构健康监测、维修养护方案和结构性能评估在内的桥梁管理系统架构,以及建立统一数据标准格式,降低信息交互困难的窘境,Frangopol等[4~6]在该领域进行了有益探索。结合具体工程项目,推进BIM 技术的落地,宋福春等[7~10]在桥梁BIM 模块构建、融入监测信息等方面推动BIM 的应用。

BIM技术顺利应用,需要基于各模块数据的无障碍交互。在此方面,Faraj等[11]开发了基于IFC的网上信息共享平台,实现了真正意义上的项目参与方信息共享; 李春霞[12]结合IFC标准探究了多维BIM系统的构建方法,并通过BIM系统的构建,证明了IFC标准在BIM技术中应用的广泛前景。王超[15]结合IFC标准提出了将结构健康监测信息用IFC数据格式文件表达集成的方法,并将其共享到BIM软件平台上,实现监测信息的可视化表达和集成。

各方面持续推进的研究促进了BIM 在桥梁全寿面周期的应用,但由于桥梁动态病害逐年发展,依附于构件几何特征上的病害信息,同样需要不间断更新。这个过程模型的几何、材料等信息基本保持不变,但病害信息却需要持续交互,方可实现病害的发展历程和全方位展现。BIM技术应用于建筑工程领域的核心就在于实现整个项目各参与方的信息共享,这一过程基于信息交互开展,但目前如何基于模型实现桥梁病害信息动态交互,以实现桥梁病害的可视化动态表达,是BIM技术应用于桥梁管养的关键问题,其研究还有待深入。

基于上述考虑,通过依附构件几何信息,本文提出基于IFC数据标准的桥梁动态信息表达,推进BIM技术在桥梁管养阶段的应用。

2 需要解决的问题

基于BIM技术的桥梁智能化管养系统一般应包括如下模块:数据采集录入、信息存储数据库、病害预警及养护方案分析子系统等。整个系统应基于桥梁可视化模型开展信息集成与分析,实现信息形象而具体的表达,方便信息的采集、录入、分析以及共享。之后,依据相应算法及规范判断桥梁病害类型和程度,给出桥梁技术状况等级,进而制定相应的养护方案。

然而,目前桥梁可视化表达大多局限于桥梁整体信息的展现上,基于三维模型的桥梁具体病害信息描述和展示尚未涉及。对构件裂缝、破损、露筋及钢筋锈蚀等各类桥梁病害的表达基本还停留在文字、数据等较为抽象的描述上,最多再赋予部分静态照片。相较于桥梁三维可视化模型清晰直观的表达,桥梁病害信息的描述显然过于抽象且不够准确,无法给决策者提供病害的空间概念和病害影响结构安全程度的总体判断。

为实现桥梁病害信息的可视化表达,论文依托Revit平台构建桥梁三维可视化模型,研究桥梁可视化模型的IFC数据格式文件,总结桥梁结构几何模型的IFC数据表达方法,提炼IFC数据文件表达结构模型的具体规律。在此基础上,生成桥梁病害信息的IFC格式语句,并将其写入桥梁可视化模型的IFC源文件中,生成新的带桥梁病害信息的IFC文件。根据平台软件自带的IFC文件读取功能,自动生成新的带病害信息的桥梁可视化模型,实现桥梁病害信息依附与结构模型的动态表达。其流程如图1所示。

图1 基于IFC实现桥梁病害信息可视化具体流程

为此,首先需要深入探讨IFC数据文件的标准格式,理清IFC文件表达模型的核心内涵,并基于文件属性信息、模型几何信息以及其它属性信息三个方面深入研究IFC文件的基本结构。

通常,桥梁病害大多表现为桥梁外观的改变。从IFC文件的角度来说,带病害信息的桥梁可视化模型实质是原桥梁模型的几何信息发生了变化。为此,可根据模型几何信息IFC描述,研究桥梁病害信息的描述方法,找到具体的描述规律,推演更新的IFC格式文件,实现桥梁病害信息的可视化表达。

3 IFC数据文件结构解析

IFC标准由国际协作联盟于1997年发布,经过二十多年的发展,经历了约八个版本的更迭,最终形成了较为稳定的IFC2*4版本。这一版的IFC数据文件有丰富的实体定义和优良的可扩展性。IFC标准的发展为BIM软件实现信息交互和参数化设计提供了极大的帮助。目前,基本上主流的BIM开发软件都支持IFC格式文件的读取与输出功能,不同软件之间都能通过定义IFC格式的数据文件实现数据共享。

作为数据准则,IFC标准采用了目前广泛应用于数据描述的标准化语言EXPRESS语言。不同于编译语言C++、C#等,EXPRESS专门用于数据描述。即EXPRSS语言只负责描述表达数据的信息,而不具备编译功能。相比于传统的编译语言,EXPRSS具有可读性强、数据描述能力强的优势,其具体的语法规则可以参考《ISO 10303-11:2004》。

IFC标准对于数据描述是层层递进的。首先,IFC标准定义了四个结构层次,这四个结构层次涵盖了不同的范围和功能,它们从上到下依次为:领域层、共享层、核心层以及资源层。资源层作为最底层的数据描述层,其主要描述内容包括实体信息的细节内容,如实体的具体参数信息、材料信息、几何信息以及物理信息等,是对实体最为细节全面的归纳。核心层是对资源层内容的总结,IFC标准中核心层包括三个方面的内容:控制信息及其扩展、产品信息及其扩展以及过程信息及其扩展。核心层的存在为实现资源层的扩展提供可能性,以防止资源层定义不完整导致实体信息不完善的情况。共享层通过将信息特征归类,总结出六个普遍适用的信息元素,所有实体都被包含在这六个元素中。即所有实体都可以继承这六大元素之一的信息特征。最后,领域层作为最顶层,主要规定了实体的专业领域。IFC标准提供了九大专业领域,任何这九大领域内的实体都可以用IFC数据文件表达。

3.1 IFC文件结构

通过总结各类模型的IFC数据文件可以发现,通常IFC数据文件分三个方面表达模型信息:文件属性信息,模型几何信息以及其他属性信息。文件属性信息主要是对文件总体属性信息的描述,比如文件名、建立时间、文件作者等;模型几何信息主要是对模型几何结构的描述,是建立模型的基础,只有了解了IFC标准对于模型几何信息的描述规律,才有可能写出带病害信息的IFC文件,实现病害信息的可视化表达;至于模型的其他属性信息,如模型材料、颜色等,由于这一类属性信息并不影响桥梁病害的可视化表达,故不作深入讨论。

(1)文件属性信息

文件属性信息主要包含文件的总体信息以及常规设置信息。任何一个IFC数据文件都会包含一个头文件和数据文件,头文件一般到ENDSEC字段结束,主要包括三个语句:FILE_DESCRIPTION(文件描述)、FILE_NAME(文件名、文件建立时间等相关信息)以及FILE_SCHEMA(采用的IFC标准版本),通过这三个语句对文档属性做一个详细的定义。此外,对于一些常规的信息,IFC数据文件也有专门的描述语句,如IFCDIRECTION语句用于定义空间坐标系,IFCSIUNIT语句用于定义长度、面积等信息的默认单位,IFCPERSON语句用于确认当前访问的电脑账户等,具体描述方式代码如下:

……

#11= IFCDIRECTION((1.,0.,0.));

#13= IFCDIRECTION((-1.,0.,0.));

#15= IFCDIRECTION((0.,1.,0.));

#17= IFCDIRECTION((0.,-1.,0.));

#19= IFCDIRECTION((0.,0.,1.));

#21= IFCDIRECTION((0.,0.,-1.));

#23= IFCDIRECTION((1.,0.));

#25= IFCDIRECTION((-1.,0.));

#27= IFCDIRECTION((0.,1.));

#29= IFCDIRECTION((0.,-1.));

……

以上十段代码是对空间各方向单位向量的描述,其中,前六句是基于三维平面的空间坐标向量,后四句是基于二维平面的坐标向量。

……

#43=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);

#44=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);

#45=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);

……

以上三段代码是对项目默认单位的定义,通过IFCSIUNIT语句来实现项目单位的默认设置。

(2)模型几何信息

为实现模型的可视化表达,对模型的几何信息进行准确表述显然非常关键。IFC数据文件提供了详细的模型几何信息表达方法。首先,通过IFCCARTESIANPOINT定义节点坐标,通过定义一系列节点,勾勒出模型具体形状。然后,通过IFCPOLYLINE循环,将由IFCCARTESIANPOINT定义好的节点依次顺序连接成一个封闭的平面图形。最后,通过对这个平面图形执行旋转、拉伸、放样以及融合等命令,最终得出三维的可视化模型。比如,为了得到一个正方体,首先应由IFCCARTESIANPOINT语句定义四个节点坐标。

#1=IFCCARTESIANPOINT((0.,0.));

#2=IFCCARTESIANPOINT((0.,1.));

#3=IFCCARTESIANPOINT((1.,1.));

#4=IFCCARTESIANPOINT((1.,0.));

然后,采用IFCPOLYLINE语句将这四个节点连接成封闭的正方形。

#5=IFCPOLYLINE((#1,#2,#3,#4));

最后,通过IFCEXTRUDEDAREASOLID命令得到一个边长为1的正方体(代码中#19为空间向量坐标,表示拉伸方向)。

#6= IFCEXTRUDEDAREASOLID(#5, #19,1.);

(3)其他属性信息

除了模型的几何信息外,IFC标准同样提供了其他类型属性信息的描述方法,诸如模型的颜色、材料等信息都可以通过IFC标准得以表述。由于研究着重于桥梁病害信息的可视化表达,而桥梁病害信息的表达主要涉及到模型几何信息的动态更新。因此,对模型材料及颜色等其他信息的IFC文件表达方法不作深入探讨。

3.2 箱梁构件IFC文件实例分析

为了深刻了解IFC文件刻画模型几何信息的方法,通过研究一个箱梁构件的IFC文件实例具体分析。

(1)由IFCCARTESIANPOINT语句定义箱梁平面节点坐标,具体对象节点编号如图2所示,表达语句如下:

图2 箱梁结构平面节点编号示意

#124= IFCCARTESIANPOINT((0.,-81.));

#126= IFCCARTESIANPOINT((247.,-81.));

#128= IFCCARTESIANPOINT((247.,-51.));

#130= IFCCARTESIANPOINT((145.,-40.));

#132= IFCCARTESIANPOINT((75.,143.));

#134= IFCCARTESIANPOINT((0.,143.));

#136= IFCCARTESIANPOINT((-75.,143.));

#138= IFCCARTESIANPOINT((-145.,-40.));

#140= IFCCARTESIANPOINT((-247.,-51.));

#142= IFCCARTESIANPOINT((-247.,-81.));

#146= IFCCARTESIANPOINT((0.,103.));

#148= IFCCARTESIANPOINT((43.,103.));

#150= IFCCARTESIANPOINT((65.,81.));

#152= IFCCARTESIANPOINT((101.,-13.));

#154= IFCCARTESIANPOINT((73.,-42.));

#156= IFCCARTESIANPOINT((0.,-42.));

#158= IFCCARTESIANPOINT((-73.,-42.));

#160= IFCCARTESIANPOINT((-101.,-13.));

(2)由IFCPOLYLOOP及IFCFACEBOUND语句将两个封闭图形节点分别依次连接起来,勾勒出模型轮廓,再通过IFCACE语句生成截面,表达如下:

#144=IFCPOLYLOOP((#124,#126,#128,#130,#132,#134,#136,#138,#140,#142,#124));

#166=IFCPOLYLOOP((#146,#148,#150,#152,#154,#156,#158,#160,#162,#164,#146));

#168=IFCFACEBOUND(#144,.T.);

#170=IFCFACEBOUND(#166,.T.);

#172=IFCFACE((#168,#170));

(3)由IFCEXTRUDEDAREASOLID语句将箱梁平面拉伸,得到箱梁构件模型。

#173=IFCEXTRUDEDAREASOLID(#172,#19,2000.);

可以发现,IFC对于模型几何信息的表述,都是通过由点到面最后到体的过程进行的。而桥梁病害可视为构件在表观上发生变化。因此,要想实现桥梁病害信息的可视化表达,只需修改桥梁构件模型的IFC文件信息中有关几何信息表述的内容,在原IFC文件的基础上加入桥梁病害信息的IFC几何表述,就可以实现桥梁病害信息的可视化表达。

4 桥梁病害信息的可视化表达

通过深入剖析诸如箱梁构件发生常见病害时(如裂缝、混凝土破损等)的几何特征变化,获得IFC语句表述桥梁病害信息的基本规律,从而归纳出普遍适用的桥梁病害信息IFC表达格式,实现桥梁病害信息的通用可视化表达。基于桥梁病害信息的IFC文件,一旦采集到桥梁具体病害信息资料,只需通过相应的计算分析得出具体的桥梁病害节点坐标,修改相应的桥梁病害IFC文件,得到更新的IFC文件,之后导入到三维模型源文件中,就可以实现带病害信息的桥梁可视化模型。

如混凝土裂缝属于桥梁表观病害的一种,常见于各类桥梁结构中,是出现频率高、数量多、危险系数大的几类桥梁病害之一。本文以箱梁结构为模型,通过结合IFC对于结构几何模型的表述方法来研究结构模型裂缝信息的IFC表达方法,得出普遍适用的结构裂缝IFC描述语句,以此修改原结构模型的IFC文件几何描述语句,得出新的IFC文件,实现带病害信息的桥梁模型可视化表达。

为了得到统一的桥梁裂缝检测数据,首先要建立模型坐标,由此推出裂缝的具体坐标,为后续编写裂缝信息文件做好准备。

通过确定结构模型的原点与坐标系,就可以依据裂缝的检测信息,推算出裂缝起点、终点的具体坐标。通过对IFC文件结构中几何属性信息的讨论可知,IFC文件描述模型几何信息的一般流程为:首先定义模型轮廓各节点的坐标位置,然后通过IFC语句将各点连接成面,再将各个面组合成体,即 “点→面→体”的一般过程。在得到裂缝起点、终点坐标后,只需依据裂缝信息推算裂缝各节点的坐标,得到一系列节点信息,以这一系列节点为新的结构表面轮廓,构建出新的模型信息。如某箱梁底面裂缝,实际模拟通过IFC文件表达裂缝信息的过程。

沿裂缝表面取一系列节点刻画出裂缝的具体轮廓,并依据裂缝检测信息推出各节点坐标,从而用IFC语句刻画出裂缝轮廓信息。如图3所示,通过将裂缝轮廓刻画为1~14号节点,将裂缝大致勾勒出来。此外,值得注意的是为了立体表达裂缝三维模型,依据裂缝深度建立了对应1~15号节点的内表面节点(16~30号节点,图中未标出),其节点坐标与1~14号节点的区别只在于z方向上的变化,用于表达裂缝深度信息。

图3 箱梁模型裂缝节点编号

通过已知的裂缝信息得出各节点坐标,并用IFC文件中的IFCCARTESIANPOINT语句定义各节点坐标如下(为表达方便,各节点对象编号依序取1~15):

#1=IFCCARTESIANPOINT((-35,839,0.));

#2=IFCCARTESIANPOINT((-25,813,0.));

#3=IFCCARTESIANPOINT((-29,839,0.));

……

#14=IFCCARTESIANPOINT((-34,862,0.));

#15=IFCCARTESIANPOINT((-22,866,0.));

而16~30号节点坐标的x,y值与1~15号节点完全一致,只在z值上发生变化,代表了裂缝深度信息。

#16=IFCCARTESIANPOINT((-35,839,20.));

……

#30=IFCCARTESIANPOINT((-25,813,20.));

在定义了各节点坐标后,通过IFC文件中的IFCPOLYLOO,FCFACEBOUND,IFCFACE语句连接各节点形成新的平面。由于裂缝的出现,箱梁表面的几何模型信息发生变化,出现包括裂缝侧面(15个)及内表面(1个)在内的共计16个新的平面,原箱梁底板平面几何信息也发生变化。一般来说,对于任意裂缝信息,如果定义了n个表面节点,那么就需要新增定义n+1个截面(n个侧面和1个内表面),并重新定义裂缝所在平面的原IFC几何描述信息。

裂缝的每一个侧面都由四个节点构成,其内表面则由16~30号节点连接而成,具体的IFC语句如下:

#31=IFCPOLYLOOP((#16,#17,#18,#19,#20,…,#29,#30));

#32=IFCFACEOUTERBOUND(#31,.T.);

#33=IFCFACE((#32));

//裂缝内表面截面定义

#34=IFCPOLYLOOP((#16,#30,#15,#1));

#35=IFCFACEOUTERBOUND(#34,.T.);

#36=IFCFACE((#35));

//裂缝某一截面定义

#37=IFCPOLYLOOP((#30,#29,#15,#14));

#38=IFCFACEOUTERBOUND(#37,.T.);

#39=IFCFACE((#38));

……

#73=IFCPOLYLOOP((#16,#17,#2,#1));

#74=IFCFACEOUTERBOUND(#73,.T.);

#75=IFCFACE((#74));

//循环定义15个裂缝侧面

最后,通过裂缝表面的1~15号节点与箱梁底面节点定义一个新的截面(*为原底板截面对象编号):

#76=IFCPOLYLOOP((#1,#2,#3,#4,#5,…,#14,#15));

#77=IFCFACEOUTERBOUND(#76,.T.);

#78=IFCFACE((#77,#*));

//底板截面重定义

IFC文件中,一般通过IFCCLOSEDSHELL语句实现各个面之间的组合。在定义了所有由裂缝产生的新截面后,需要对原文件IFCCLOSEDSHELL语句定义的内容做一定修改,新增对应的截面,形成新的带裂缝信息的IFC文件,从而实现桥梁病害信息的可视化。

#79=IFCCLOSEDSHELL((…,#33,#36,#39,#42,…,#69,#72,#75,#78));

以上79行IFC语句完整地定义了一个带15×2个节点的裂缝IFC格式的几何模型信息,具有普遍适用的优点。对于任意结构的裂缝病害,只需要知道具体的裂缝信息(如裂缝位置及长度等),得出裂缝各节点的坐标信息,然后依据具体模型的IFC文件对象编号稍作修改,就可以得出该模型的带裂缝信息的IFC文件,然后由相关BIM软件导出三维模型。如图4所示。

图4 带裂缝的箱梁三维模型(局部放大)

混凝土破损同样作为桥梁常见病害之一,与裂缝病害在IFC文件的表达中有许多相似之处。从结构表观变化上看,裂缝是结构发生线性的条状开裂,而破损则是发生面状的脱落破损,但是本质上裂缝与破损都是表观发生破坏,在IFC几何信息表达上有很多互通之处。要得到混凝土破损的IFC几何属性信息表达语句,首先依然是建立空间坐标系并对混凝土破损处轮廓进行节点编号,然后依据相关检测信息得出各节点的坐标,最后利用IFC语句进行“点→面→体”依序定义,得出带病害信息的三维模型。

5 结 语

如何提高信息利用率,提高桥梁管养效率以及降低管养成本是现阶段桥梁管养领域的研究热点。本文通过研究IFC文件的基本结构和语法特征,讨论了IFC对于模型几何信息的描述方法和过程,深入研究了当模型几何信息改变时(发生表观病害如裂缝、混凝土破损等)模型IFC文件的变化过程,总结了普遍适用的裂缝病害的IFC文件表述语句,从而实现了桥梁病害信息的可视化表达。通过这一系列包含了裂缝信息的IFC语句,可以针对任意已知的桥梁裂缝病害进行描述,然后将其代入到原桥梁模型IFC文件中,形成新的带病害信息的IFC文件,最终得到动态更新的三维结构模型。

猜你喜欢
语句可视化定义
基于CiteSpace的足三里穴研究可视化分析
自然资源可视化决策系统
思维可视化
自然资源可视化决策系统
重点:语句衔接
成功的定义
我喜欢
修辞学的重大定义
山的定义
作文语句实录