传统框架箱涵建筑信息建模方法效率低下。譬如,基于达索软件的BIM设计多采用“骨架-模板”的建模思想。在使用“骨架-模板”方法建立混凝土框架箱涵BIM模型时,“骨架”为与涵节顶部相对应的坐标系群,涵节为工程模板 ,实例化过程采用达索action功能。这种方法虽然能够实现批量建模,但由于工程模板复杂内部逻辑结构,导致实例化效率低,复杂的内部逻辑对各环节使用者均开放,也不利于传递过程中数据的稳定。
为了避免上述问题,通过3方面阐述对框架箱涵建模方法的优化。
优化后设计过程同样遵循“骨架-模板”的建模思想,通过C#语言开发的数据转换工具能以框架箱涵设计软件RCCAD生成的文本文件作为输入,输出作为骨架坐标系批量生成必要条件的数据表格,同样可作为在涵洞节段批量生成过程中的输入数据
使用达索/CAA二次开发语言创建一个框架箱涵主体结构建模工具,嵌入到达索软件内部,通过用户定义特征避免了工程模板的复杂内部逻辑结构,并确保了数据的稳定传递和建模效率
CAA开发的框架箱涵主体结构建模工具在生成主体结构同时,还生成与端部涵节关键表面相平行的平面。建立一个用于生成框架涵端部挡墙及排水坡的工程模板,该工程模板以meta input的方式引入端部涵节关键平面,以design table的方式修改模型尺寸参数,实现端部结构的快速建模
![cf137871efc3dc03856998d740c57ff7.gif](https://img-blog.csdnimg.cn/img_convert/cf137871efc3dc03856998d740c57ff7.gif)
数据转换工具
在通常的框架箱涵设计过程中使用的是RCCAD软件,RCCAD软件的输出内容除了二维涵洞布置图,还包括一些用以描述设计结果的文本文件。针对传统建模方式效率低下的问题,通过C#开发出一个数据转换工具,该工具读入这些文本文件,并结合用户手动输入相关尺寸信息,最终实现涵洞数据表格的快速生成。
数据转换工具操作界面
框架涵主体结构建模工具开发
1达索CAA 架构
Dassault Systemes提供一种基于组件的定制开发机制,即组件应用架构(CAA)。CAA 采用面向对象的程序设计(OOP)思想,基于COM和OLE技术,使CAA开发的程序代码更加规范化和标准化,程序模块更具独立性和可扩展性。
达索CAA架构
2交互界面
人机交互的框架涵设计工具采用达索/CAA语言二次开发,直接嵌入到达索软件内部。具备以下几个特点:(1)涵节及基础装配功能嵌入达索装配设计模块中,涵节、基础节段编辑功能嵌入到达索零件设计模块中;(2)数据表格与定位骨架在同一个几何图形集下,与骨架信息同时读取;(3)作为设计成果的所有涵洞节段和基础模型与作为骨架的坐标系关联,当骨架坐标系位置发生变化时,模型空间位置也同步发生变化。
涵洞装配用户交互界面
操作流程
操作流程图解
设计准备工作。包括创建骨架坐标系等设计准备工作。设计信息表格可以采用达索/CAA的数据转换工具生成,并且,需要将生成的表格结果放置在用于存储涵节骨架的几何图形集当中
选择用于存储涵洞节段骨架的几何图形集。选择几何图形集后,程序会自动识别并读入存储在几何图形集内的涵节骨架坐标系和涵洞设计信息表格
选择用于存储涵洞基础骨架的几何图形集。选择几何图形集后,程序会自动识别并读入存储在几何图形集内的基础骨架坐标系
选择用于存储涵洞模型的父级根节点。生成的所有模型零件将悬挂在该节点下
修改交互界面中的其他参数值。“其他参数值”包括上下部结构骨架坐标系的前缀,和上下部结构满足IFC分类的零件模板name 属性值。对于不同用户,其通过EKL语言生成的节段坐标系名称前缀可能各不相同,为便于对坐标系的识别从而与设计信息表格中的涵洞节段编号一一对应,CAA程序在此处自动抽取几何图形集內第1个坐标系名称的前缀用以过滤出有用的编号信息。为防止骨架编号起始值不为1,导致程序抽取的前缀错误,程序将此文本框设置为可编辑,用户可根据情况手动修改
生成涵洞结构模型。当所有必需的步骤均完成时,对话框的OK 按钮即被激活,点击后生成涵洞上、下部结构模型
修改涵洞上、下部结构节段模型。在结构树中双击特征节点或者在模型窗口中双击模型,即可打开如下图所示的涵洞、基础节段特征修改窗口,此窗口能够根据用户个性化需求修改节段尺寸参数和端部坐标系
a.涵洞节段;b.基础节段
涵洞节段(左),基础节段(右)模型修改窗口
4实现语言及模块设计
Dassault/CAA是基于COM 技术进行组织开发的,因此将该设计工具划分为3个模块来实现其功能,分别为界面模块、节段拓扑模块和特征模块。
模块设计图解
界面模块用于用户界面交互功能的实现,分为创建工具条和创建用户交互窗口两部分。工具条采用Add-in的方式添加,由于涵洞上、下部结构装配功能和涵洞、基础节段编辑功能分别嵌入到装配设计模块和零件设计模块中,因此,分别实现CATIAssyWorkBenchAddin 和CATIPrtCfgAddin两个接口。
首先创建用户交互窗口Dialog文件,再通过对CATMmrPanelStateCmd 类的派生,重载GiveMyPanel方法,使派生类与用户交互对话窗口Dialog文件关联。重载BuildGraph 方法,从而完成传统交互窗口无法实现的对话流程操作。
Build Graph方法通过命令状态(Command State) 和代理(Agent) 2个关键元素来实现用户与界面的交互响应。代理分为2种,CATDialogAgent 代理用来获取界面控件响应,CATFeatureImportAgent继承自CATDialogAgent,专门用来获取特征。每个命令状态中存储了若干个代理,CAA 对某一代理所接受的用户操作进行判别,来决定是否执行不同命令状态间的转换。
CAA建模流程图解
涵节与基础节段分别作为具有独立几何形状的实体,代表这2种实体的特征需要派生自达索提供的MechanicalFormFeature基类,并为其指定属性。属性分为两种类型,定位坐标系属于特征类型的属性,因为坐标系是一个特征,节段各几何尺寸属于数值类型的属性。
达索向用户开放3种CAA 建模工具:几何建模工具,特征建模工具,物理建模工具。这3种建模工具在用户定义特征的创建和使用过程中起到重要作用。
通过特征建模工具能够得到该特征的抽象基类,此抽象基类仅对特征属性进行了声明。物理建模工具用于定义此抽象基类,简单来说就是物理建模工具使用一个类型接口和一个工厂接口将抽象基类具体化。特征模块需要完成的工作即是创建这两个接口:类型接口包含若干个方法,这些方法的作用是对特征属性进行定义,使用户借助类型接口能够达到提取特征属性值和对特征属性赋值的目的。工厂接口仅包含1个方法,此方法以属性值作为输入参数,实例化得出以类型接口表示的特征结果。
节段拓扑模块的作用是将特征模块创建的以内存数据表示的特征结果转化为可视的拓扑造型。通过继承CATIFmFeatureBehaviorCustomization接口,并重载此接口的Build 方法,在本方法内部运行几何建模工具来生成拓扑造型。
作为达索内部机制,当系统执行更新操作时,CATIFmFeatureBehaviorCustomization接口的Build 方法自动被激活。作为承担控制建模流程作用的模块,界面模块执行以下流程:成功生成特征结果后,运行更新操作,系统通过Build 方法触发节段拓扑模块,从而生成与特征结果相适应的可视化拓扑几何形状。
在生成节段拓扑形状时,以特征属性值作为输入元素,这些输入元素通过类型接口提供的方法获取。每一个节段,包括上部结构和基础,其端面法线方向即Y 轴方向,与涵洞轴线方向不一致,这个斜交角度可以从涵洞数据表格中获取。在本模块,端部坐标系除了用于确定模型空间位置,在生成截面关键点继而生成几何体的过程中也起到重要的作用。
a.涵洞节段;b.基础
节段及端部坐标系
涵洞上部结构截面由外圈和内圈组成,分别用6个和8个关键点表示。作为特征属性的涵节坐标系,其原点和方向向量可通过CATMathAxis类的GetOrigin,GetDirections方法获取,继而生成XZ平面。
涵洞上部结构截面关键点
拓扑层内部操作流程如下:
对属于CATPlane类的XZ平面执行GetParam方法,以涵洞节段断面尺寸为参数,生成CATSurParam类型的外圈关键点,这些关键点均位于XZ平面内
使用CATGeoFactory接口的CreatePLine方法,以步骤1生成关键点和XZ平面作为输入参数,生成同样位于XZ平面的属于CATPCurve类型的6根线,这些线由外圈6个关键点依次首尾相连得到
使用CATCGMCreateTopSkin函数,以步骤1生成的XZ平面和步骤2生成的外圈线组成的数组作为输入参数,生成CATICGMTopSkin类型的外圈蒙皮
使用CATCGMCreateTopPrism函数,以步骤3生成的外圈蒙皮和涵轴方向作为输入参数,以涵轴长度作为拉伸距离向涵轴方向拉伸,生成CATICGMTopPrism类型的拉伸体
使用与前述步骤相同的方法生成内圈拉伸体
使用CATCGMCreateDynBoolean函数,以步骤4和步骤5生成的内外圈体作为输入参数执行布尔减操作,生成CATICGMDynBoolean类型的涵节结果
对于涵洞基础节段,拓扑操作的流程与上部结构节段类似。不同的是,其截面只有一个由4个点组成的外圈,使用CATCGMCreateTopPrism函数执行拉伸操作后,不再需要布尔减运算。
框架涵端部附属结构
一般情况下,框架涵每个端部包含大小里程侧各一个挡墙及挡墙中间的排水坡共3个结构。由于端部附属结构几何构造复杂,以拓扑语言表示比较困难,同时,与涵节相比,端部附属结构数量较少,因此,采用实例化工程模板的方式生成端部附属结构模型。为了克服工程模板实例化速度慢的问题,将涵洞每个端点的3个结构封装在一个装配文件下,这样,对于每个涵洞工点仅需执行两次实例化操作,从而提高了建模效率。
框架涵端部附属结构模型及结构树
由上图可以看出:端部附属结构模型以6个平面作为输入元素,这些元素分别代表最外侧涵洞节段的几个平面。而在下图中,端部涵洞节段零件除了包括节段几何体以外,还给出了6个平面,这6个平面分别与涵洞某些特定的结构面平行。作为端部附属结构模板输入元素的6个平面和端部涵节零件发布的6个平面是一一对应的,并且具有相同涵义的平面其名称也相同。这样,在实例化端部附属结构工程模板时,就能采用meta input 的方式,不需手动依次选择6个输入元素,仅选择端部涵节零件即可完成模型实例化。
端部涵节对外发布的平面
常用的框架涵节段按照孔径可以区分为2、3、4、5、6m 几种类型,每种孔径对应若干种净高尺寸,而每一种净高尺寸又对应若干种角度选择,对于有些孔径的涵节,边坡坡率也可以作为一个划分原则。
以2m孔径为例,它仅有2、2.5m 两种净高选项,其类型就包含了10种,如果考虑净高选项更多的其他孔径类型,涵节类型划分就更加复杂。
作为端部附属结构重要部件的挡墙,其几何形状由多个尺寸参数确定。同时,端部挡墙的尺寸参数值,与其紧密相连的涵节型号是一一对应的。所以,可以采用与涵节类型相同的划分原则列出挡墙尺寸参数表,该参数表如图12所示,放在端部附属结构模型的关系节点下。
表格数值与挡墙端部附属结构的尺寸参数相关联,当成功实例化工程模板以后,根据涵节孔径、净高、斜交角度等参数选择并激活对应的数据行,端部附属结构尺寸自动与该行数据关联,刷新模型后,几何形状随即与新的尺寸参数匹配更新。省去查寻标准图中的设计数据并手动依次输入多种尺寸参数的繁琐过程,提高了建模效率。
因此,对于端部附属结构,采用“选择端部涵节模型→实例化工程模板→激活对应设计表格行数据→更新模型”的建模流程,可以高效、精确地建立涵洞端部附属结构模型。
工程应用
本期推送介绍的这种高效、精确的框架箱涵BIM建模方法已在众多铁路工程中得到了应用,例如牡佳客专BIM试点项目、京沈客专BIM试点项目、京雄城际BIM项目等。采用这种建模方法,大幅度提高了铁路框架箱涵的BIM建模效率和设计效率。
下图所示为与地形相结合后的牡佳客专某框架箱涵模型。可以看出,当铁路框架箱涵BIM模型与三维地形结合后,之前在二维设计过程中无法充分体现的各种设计要素能够更加直观的展现在设计人员面前。
框架箱涵模型与地形相结合
以上介绍的方法仍然采用“骨架- 模板”的建模思想。只是对于骨架生成和节段实例化所需的数据表格,不再采用人工手动输入的方式生成,而是通过C#语言开发一个数据转换程序,能以RCCAD文本文件为输入条件,自动生成数据表格。
此前,涵洞节段及基础模型采用工程模板的action实例化方法生成,为了避免这种方法效率低下且稳定性不足的缺陷,使用CAA开发出一个框架箱涵建模工具。
框架箱涵端部结构包括挡墙和排水坡,其参数众多、几何构造复杂,不适宜采用用户定义特征的方式由CAA二次开发建模。所以,在优化后的建模方法中,将端部附属结构封装到一个装配体中,采用工程模板的方式实例化。
内容来源:
中国铁路设计集团有限公司(铁路BIM联盟成员单位)
齐成龙. 基于组件应用架构和工程模板的混凝土框架箱涵建筑信息建模优化方法[J].
工业建筑.
(铁路BIM联盟文章,转发请注明出处)
欢迎留言!
如果您有好的意见和建议,也请不吝留言,小编会对留言进行整理收集,建设性意见和建议会转达联盟秘书处