基于组件应用架构和工程模板的混凝土框架箱涵建筑信息建模优化方法

2018-12-14 03:18齐成龙
中国计划生育学杂志 2018年8期
关键词:箱涵涵洞端部

齐成龙

(中国铁路设计集团有限公司桥梁院,天津 300142)

三维设计技术是当前计算机辅助设计的发展趋势,在机械、建筑、化工、石油等设计行业已得到较为成功的应用,并成为市场竞争的重要工具[1-2]。中国铁路总公司提出:要建立以建筑信息建模(BIM)为主要技术框架,以铁路工程全生命周期管理为目标的工程信息化平台和应用模式[3],从而确立了BIM技术在铁路设计中的地位。

模型是信息的载体,而三维建模又是BIM技术的基础和难点。目前基于达索软件的BIM设计大多采用“骨架-模板”的建模思想[4-5]。文献[5]在使用“骨架-模板”方法建立混凝土框架箱涵BIM模型时,“骨架”为与涵节顶部相对应的坐标系群,涵节为工程模板(Engineering Template),实例化过程采用达索action功能。这种方法虽然能够实现批量建模,但是由于工程模板的复杂内部逻辑结构,导致实例化效率低下,同时由于这种复杂的内部逻辑对各个环节的使用者均开放,也不利于传递过程中数据的稳定。

为了避免上述问题,通过三个方面阐述了对框架箱涵建模方法的优化。

1)优化后的设计过程同样遵循“骨架-模板”的建模思想,其骨架生成方法与文献[5]相同,不再赘述。本文介绍了一个通过C#语言开发的数据转换工具,该工具能够以框架箱涵设计软件 RCCAD生成的文本文件作为输入,输出作为骨架坐标系批量生成必要条件的数据表格,此表格同样可以作为在涵洞节段批量生成过程中的输入数据。

2)使用达索/CAA二次开发语言创建一个框架箱涵主体结构建模工具,嵌入到达索软件内部,通过用户定义特征避免了工程模板的复杂内部逻辑结构,并确保了数据的稳定传递和建模效率。

3)CAA开发的框架箱涵主体结构建模工具在生成主体结构同时,还生成了与端部涵节关键表面相平行的平面。建立一个用于生成框架涵端部挡墙及排水坡的工程模板,该工程模板以meta input的方式引入端部涵节关键平面,以design table的方式修改模型尺寸参数,实现端部结构的快速建模。

1 数据转换工具

文献[5]已经介绍:在生成框架箱涵骨架前,需要一个能够反映涵洞节段、基础布置方式及结构详细尺寸的数据表格,该数据表格在以往的设计过程中是通过手动输入建立的,这也是影响建模效率的一个重要因素。

在通常的框架箱涵设计过程中使用的是RCCAD软件,RCCAD软件的输出内容除了二维涵洞布置图,还包括一些用以描述设计结果的文本文件。针对传统建模方式效率低下的问题,通过C#语言开发出一个数据转换工具,该工具读入这些文本文件,并结合用户手动输入相关尺寸信息,最终实现涵洞数据表格的快速生成。其使用界面如图1所示。

2 框架涵主体结构建模工具开发

2.1 概 述

在文献[5]所述的传统建模方法中,为了建立整个涵洞的主体结构模型,首先建立节段和基础的模型,再将模型转化为工程模板,最后使用action功能批量实例化工程模板。针对传统方法的缺点,本章介绍一个CAA二次开发成果,它能够批量创建涵洞节段及基础模型,并且所创建的模型是仅对用户开放部分参数的自定义特征,不仅提高了建模效率,还有利于模型应用过程中的数据稳定性。本章重点分析该设计工具的开发思路。

图1 数据转换工具操作界面Fig.1 User interface of data transformation tool

2.2 达索 CAA架构

Dassault Systemes提供了一种基于组件的定制开发机制,即组件应用架构(Component Application Architecture,简写为 CAA)。CAA采用面向对象的程序设计(Object-Oriented-Programming,OOP)思想,基于COM和OLE技术,使CAA开发的程序代码更加规范化和标准化,程序模块更加具有独立性和可扩展性。CAA架构如图2所示,描述了 Dassault Systemes内部模块之间的关系。基于CAA架构,客户也可以把定制开发的功能加入到达索系统中。利用CAA实现的客户定制功能,无论从界面风格和操作习惯,都可以达到与达索无缝集成的效果。用户非常容易接受和使用[6]。

图2 CAA架构Fig.2 CAA architecture

2.3 程序交互界面及操作流程设计

根据框架箱涵设计过程的需要,设计出如图3所示的用户交互界面。该人机交互的框架涵设计工具采用达索/CAA语言二次开发,直接嵌入到达索软件内部。具备以下几个特点:1)涵节及基础装配功能嵌入到达索装配设计(Assembly Design)模块中,涵节、基础节段编辑功能嵌入到达索零件设计(Part Desgn)模块中;2)数据表格与定位骨架在同一个几何图形集下,与骨架信息同时读取;3)作为设计成果的所有涵洞节段和基础模型与作为骨架的坐标系关联,当骨架坐标系位置发生变化时,模型的空间位置也同步发生变化。

图3 涵洞装配用户交互界面Fig.3 User interface of whole box culvert assembly

该设计工具的操作流程如图4所示,使用其进行框架箱涵BIM设计时应遵循以下几个步骤:

图4 操作流程设计Fig.4 Operation process design

1)设计准备工作。包括创建骨架坐标系等设计准备工作,与文献[5]中的传统建模方法相同,不再赘述。所不同的是设计信息表格可以采用达索/CAA的数据转换工具生成,并且,需要将生成的表格结果放置在用于存储涵节骨架的几何图形集当中。

2)选择用于存储涵洞节段骨架的几何图形集。选择几何图形集后,程序会自动识别并读入存储在几何图形集内的涵节骨架坐标系和涵洞设计信息表格。

3)选择用于存储涵洞基础骨架的几何图形集。选择几何图形集后,程序会自动识别并读入存储在几何图形集内的基础骨架坐标系。

4)选择用于存储涵洞模型的父级根节点。生成的所有模型零件将悬挂在该节点下。

5)修改交互界面中的其他参数值。“其他参数值”包括上下部结构骨架坐标系的前缀,和上下部结构满足IFC分类的零件模板name属性值。因为对于不同的用户来说,其通过EKL语言生成的节段坐标系名称前缀可能各不相同,为了便于对坐标系的识别从而与设计信息表格中的涵洞节段编号一一对应,CAA程序在此处自动抽取几何图形集內第一个坐标系名称的前缀用以过滤出有用的编号信息。为了防止骨架编号起始值不为1导致程序抽取的前缀错误,程序将此文本框设置为可编辑,用户可根据具体情况手动修改。

6)生成涵洞结构模型。当所有必需的步骤均完成时,对话框的OK按钮即被激活,点击后生成涵洞上、下部结构模型。

7)修改涵洞上、下部结构节段模型。在结构树中双击特征节点或者在模型窗口中双击模型,即可打开如图5所示的涵洞、基础节段特征修改窗口,此窗口能够根据用户个性化需求修改节段尺寸参数和端部坐标系。

图5 涵洞节段(左),基础节段(右)模型修改窗口Fig.5 Modification window of culvert segment(left)and base segment(right)model

2.4 实现语言及模块设计

2.4.1 模块设计

Dassault/CAA是基于COM技术进行组织开发的,因此将该设计工具划分为三个模块来实现其功能,分别为界面模块(User Interface Modulus)、节段拓扑模块(Topological Modulus)和特征模块(Feature Modulus),如图6所示。

2.4.2 界面模块

界面模块用于用户界面交互功能的实现,分为创建工具条和创建用户交互窗口两部分。

工具条采用Add-in的方式添加,由于涵洞上、下部结构装配功能和涵洞、基础节段编辑功能分别嵌入到装配设计模块和零件设计模块中,因此,分别实现CATIAssyWorkBenchAddin和CATIPrtCfgAddin两个接口。

首先创建用户交互窗口Dialog文件,再通过对CATMmrPanelStateCmd类的派生,重载 GiveMyPanel方法,使派生类与用户交互对话窗口Dialog文件关联。重载BuildGraph方法,从而完成传统交互窗口无法实现的对话流程操作。

Build Graph方法通过命令状态(Command State)和代理(Agent)两个关键元素来实现用户与界面的交互响应。代理分为两种,CATDialogAgent代理用来获取界面控件响应,CATFeatureImportAgent继承自 CATDialogAgent,专门用来获取特征。每个命令状态中存储了若干个代理,CAA对某一代理所接受的用户操作进行判别,来决定是否执行不同命令状态之间的转换。最终实现了如图4所示的程序跃迁流程。

图6 模块设计Fig.6 Module design

图7 CAA建模流程Fig.7 Modeling process of CAA

2.4.3 特征模块

涵节与基础节段分别作为具有独立几何形状的实体,代表这两种实体的特征需要派生自达索提供的MechanicalFormFeature基类,并为其指定属性。属性分为两种类型,定位坐标系属于特征类型的属性,因为坐标系是一个特征,节段各几何尺寸属于数值类型的属性。

达索向用户开放三种 CAA建模工具(Representation Modeler):几何建模工具(Geometry Modeler),特征建模工具(Feature Modeler),物理建模工具(Mechanical Modeler)。这三种建模工具在用户定义特征的创建和使用过程中起到重要作用,如图7所示。

通过特征建模工具能够得到该特征的抽象基类,此抽象基类仅对特征属性进行了声明。物理建模工具用于定义此抽象基类,简单来说就是物理建模工具使用一个类型接口(Type Interface)和一个工厂接口(Factory Interface)将抽象基类具体化。特征模块需要完成的工作即是创建这两个接口:

类型接口(Type Interface)包含若干个方法,这些方法的作用是对特征属性进行定义,使用户借助类型接口能够达到提取特征属性值和对特征属性赋值的目的。

工厂接口(Factory Interface)仅包含1个方法,此方法以属性值作为输入参数,实例化得出以类型接口表示的特征结果。

2.4.4 节段拓扑模块

节段拓扑模块的作用是将特征模块创建的以内存数据表示的特征结果转化为可视的拓扑造型。

通过继承CATIFmFeatureBehaviorCustomization接口,并重载此接口的Build方法,在本方法内部运行几何建模工具来生成拓扑造型。

作为达索内部机制,当系统执行更新(Update)操作时,CATIFmFeatureBehaviorCustomization接口的Build方法自动被激活。作为承担控制建模流程作用的模块,界面模块执行以下流程:成功生成特征结果后,运行更新操作,系统通过Build方法触发节段拓扑模块,从而生成与特征结果相适应的可视化拓扑几何形状。

在生成节段拓扑形状时,以特征属性值作为输入元素,这些输入元素通过类型接口提供的方法获取。

如图8所示:每一个节段,包括上部结构和基础,其端面法线方向即Y轴方向,与涵洞轴线方向不一致,这个斜交角度可以从涵洞数据表格中获取。在本模块,端部坐标系除了用于确定模型空间位置,在生成截面关键点继而生成几何体的过程中也起到重要的作用。

如图9所示:涵洞上部结构截面由外圈和内圈组成,分别用6个和8个关键点表示。作为特征属性的涵节坐标系,其原点和方向向量可通过CATMathAxis类的 GetOrigin,GetDirections方法获取,继而生成XZ平面。

图8 节段及端部坐标系Fig.8 Segment(left)and axis systems on their ends

图9 涵洞上部结构截面关键点Fig.9 Key points of the superstructure of culvert continuous girder section

拓扑层内部操作流程如下:

1)对属于CATPlane类的XZ平面执行GetParam方法,以涵洞节段断面尺寸为参数,生成CATSurParam类型的外圈关键点,这些关键点均位于XZ平面内。

2)使用 CATGeoFactory接口的 CreatePLine方法,以步骤1)生成关键点和XZ平面作为输入参数,生成同样位于XZ平面的属于CATPCurve类型的6根线,这些线由外圈6个关键点依次首尾相连得到。

3)使用CATCGMCreateTopSkin函数,以步骤1)生成的XZ平面和步骤2)生成的外圈线组成的数组作为输入参数,生成CATICGMTopSkin类型的外圈蒙皮。

4)使用 CATCGMCreateTopPrism函数,以步骤3)生成的外圈蒙皮和涵轴方向作为输入参数,以涵轴长度作为拉伸距离向涵轴方向拉伸,生成CATICGMTopPrism类型的拉伸体。

5)使用与步骤1)—步骤4)相同的方法生成内圈拉伸体。

6)使用 CATCGMCreateDynBoolean函数,以步骤4)和步骤5)生成的内外圈体作为输入参数执行布尔减操作,生成CATICGMDynBoolean类型的涵节结果。

对于涵洞基础节段,拓扑操作的流程与上部结构节段类似。不同的是,其截面只有一个由4个点组成的外圈,使用CATCGMCreateTopPrism函数执行拉伸操作后,不再需要布尔减运算。

3 框架涵端部附属结构

一般情况下,框架涵每个端部包含大小里程侧各一个挡墙及挡墙中间的排水坡共3个结构。由于端部附属结构几何构造复杂,以拓扑语言表示比较困难,同时,与涵节相比,端部附属结构数量较少,因此,采用实例化工程模板的方式生成端部附属结构模型。为了克服工程模板实例化速度慢的问题,将涵洞每个端点的3个结构封装在一个装配文件下,这样,对于每个涵洞工点仅需执行两次实例化操作,从而提高了建模效率。封装后的端部附属结构模型及其结构树如图10所示。

图10 框架涵端部附属结构模型及结构树Fig.10 Auxillary structure model on the end of culvert and its tree structure

由图10可以看出:端部附属结构模型以6个平面作为输入元素,这些元素分别代表最外侧涵洞节段的几个平面。而在图11中,端部涵洞节段零件除了包括节段几何体以外,还给出了6个平面,这6个平面分别与涵洞某些特定的结构面平行。作为端部附属结构模板输入元素的6个平面和端部涵节零件发布的6个平面是一一对应的,并且具有相同涵义的平面其名称也相同。这样,在实例化端部附属结构工程模板时,就能采用meta input的方式,不需手动依次选择6个输入元素,仅选择端部涵节零件即可完成模型实例化。

常用的框架涵节段按照孔径可以区分为2,3,4,5,6 m几种类型,每种孔径对应若干种净高尺寸,而每一种净高尺寸又对应若干种角度选择,对于有些孔径的涵节,边坡坡率也可以作为一个划分原则,以2 m孔径为例,其类型划分如表1所示。

图11 端部涵节对外发布的平面Fig.11 Planes publicated by culvert segments

表1 2 m孔径框架涵类型划分Table 1 Types of culvert with a 2 m clear width

从表1可见:2 m孔径涵洞仅有2,2.5 m两种净高选项,其类型就包含了10种,如果考虑净高选项更多的其他孔径类型,涵节类型划分就更加复杂。

作为端部附属结构重要部件的挡墙,其几何形状由多个尺寸参数确定。同时,端部挡墙的尺寸参数值,与其紧密相连的涵节型号是一一对应的。所以,可以采用与涵节类型相同的划分原则列出挡墙尺寸参数表,该参数表如图12所示,放在端部附属结构模型的关系节点下。

图12 关系节点下的挡墙尺寸Fig.12 Parapet dimensions table on relation node

表格数值与挡墙端部附属结构的尺寸参数相关联,当成功实例化工程模板以后,根据涵节孔径、净高、斜交角度等参数选择并激活对应的数据行,端部附属结构尺寸自动与该行数据关联,刷新模型后,几何形状随即与新的尺寸参数匹配更新。省去查寻标准图中的设计数据并手动依次输入多种尺寸参数的繁琐过程,提高了建模效率。

因此,对于端部附属结构,采用“选择端部涵节模型→实例化工程模板→激活对应设计表格行数据→更新模型”的建模流程,可以高效、精确地建立涵洞端部附属结构模型。

4 工程应用

本文介绍的这种高效、精确的框架箱涵BIM建模方法已在众多铁路工程中得到了应用,例如牡佳客专BIM试点项目、京沈客专BIM试点项目、京雄城际BIM项目等。

采用这种建模方法,大幅度提高了铁路框架箱涵的BIM建模效率和设计效率。

图13所示为与地形相结合后的牡佳客专某框架箱涵模型。可以看出,当铁路框架箱涵BIM模型与三维地形结合后,之前在二维设计过程中无法充分体现的各种设计要素能够更加直观的展现在设计人员面前。

图13 框架箱涵模型与地形相结合Fig.13 Box culvert model combined with terrain

5 结束语

本文在文献[5]所述的传统框架箱涵建模方法基础上,介绍了一套优化的建模方法。

该方法仍然采用“骨架-模板”的建模思想,其骨架生成方法也与文献[5]相同。对于骨架生成和节段实例化所需的数据表格,不再采用人工手动输入的方式生成,而是通过C#语言开发一个数据转换程序,能以RCCAD文本文件为输入条件,自动生成数据表格。

文献[5]当中,涵洞节段及基础模型采用工程模板的action实例化方法生成,为了避免这种方法效率低下且稳定性不足的缺陷,使用CAA开发出一个框架箱涵建模工具,通过用户定义特征避免了工程模板的复杂内部逻辑结构,并提高了数据的稳定传递和建模效率。

框架箱涵端部结构包括挡墙和排水坡,其参数众多、几何构造复杂,不适宜采用用户定义特征的方式由CAA二次开发建模。所以,在优化后的建模方法中,将端部附属结构封装到一个装配体中,采用工程模板的方式实例化。由于采用meta input的方式获取工程模板输入元素,并且通过设计表格的方式批量快速为几何尺寸赋值,从而提高了建模效率。

猜你喜欢
箱涵涵洞端部
大型水轮发电机绕组端部电晕问题探讨
强夯法施工对高填方涵洞稳定性影响分析
浅析铁路箱涵顶进控制滑床板技术
大型核能发电机定子端部动力特性研究
箱涵埋深对双孔箱涵结构计算的影响分析
弹簧扁钢51CrV4端部开裂原因分析
大跨度多孔箱涵顶进过程基底摩阻力研究
基于非线性FAHP的箱涵下穿铁路顶进施工风险评价
高速公路涵洞安全性评估方法与应用研究
降低深埋涵洞侧壁摩阻力的效果分析