BIM案例:达索CAA架构桥梁基础BIM建模及审核工具开发
目前基于达索软件的BIM设计中,大多借助EKL脚本语言和action功能,采用“骨架-模板”的建模思想。这种方法虽然能够实现批量建模,但是实例化结果包含建模过程,导致效率低下,同时由于建模过程向所有使用者开放,也不利于传递过程中的数据稳定。
本文介绍一种不同于传统方法的全新桥梁基础批量建模和审核工具,该工具使用达索/组件应用架构(CAA)二次开发语言实现,嵌入到达索软件内部,通过生成承台和桩特征避免了工程模板的复杂内部逻辑结构,提高了效率,同时,该工具还具备批量修改模型IFC属性值及输出审核结果的功能。
程序交互界面及操作流程设计
根据桥梁基础设计过程的需要设计用户交互界面。该人机交互的基础设计工具具备以下几个特点:①设计功能嵌入到达索装配设计(AssemblyDesign)模块中;②设计参数采用表格输入的手段;③程序在批量创建基础模型的同时,自动为IFC属性赋值;④承台和桩分别作为用户定义特征组合成最终的基础模型,用户可手动修改这些特征结果;⑤用户手动修改承台和桩特征后,程序可根据最终特征结果输出数据表格供模型审核所用,并更新IFC属性值。
全桥基础设计用户交互界面
使用此工具进行桥梁基础BIM设计及审核时应遵循以下几个步骤。
(1)设计准备工作。
填充基础信息表格,该表格存储了承台和桩在结构尺寸、空间位置及混凝土等级方面的参数。然后,使用达索EKL脚本语言生成基础骨架坐标系。
(2)选择用于存储基础骨架的几何图形集。
选择几何图形集后,程序会自动识别并读入存储在几何图形集内的骨架坐标系和基础信息表格。
(3)选择用于存储各基础零件的父级根节点生成的桥墩基础零件将附属在该节点下。
(4)生成全桥基础模型。
上述所有步骤均完成后,对话框OK按钮即被激活,点击此按钮后生成全桥基础模型。
全桥基础BIM模型
(5)修改基础模型。
双击承台或桩基模型后,打开特征修改用户交互窗口。
桩特征修改界面
在承台特征交互窗口,用户可以增加、删除、修改一层承台的数据,并修改混凝土等级;在桩基特征交互窗口,用户可增加或删除某根桩数据,并修改混凝土等级以及桩长。
(6)基础属性批量修改及基础模型审核数据输出承台和桩的部分IFC属性(见下图)。
这2种特征修改后,零件属性值无法随之自动更新,为实现这种更新功能,可在用户界面点击RefreshAttributes按钮,所有零件的IFC属性值根据最新的特征自动更新。同时,程序可以输出最新的基础数据表格,其中存储了尺寸、位置、混凝土等级,可用于BIM建模结果审核。
实现语言及模块设计
模块设计
将该设计工具划分为3个模块以实现其功能,分别为界面模块(UIModule)、特征模块(FeatureModule)和几何拓扑模块(TopologicalModule)。
三者的关系是:几何拓扑模块创建承台和桩的几何拓扑形状;特征模块生成承台和桩特征,特征的三维形状通过几何拓扑模块获取;界面模块用于建模工具条的实现,基础零件批量生成,以及特征的批量实例化和属性修改、审核数据输出等功能。以下将从底层开始依次介绍各模块的开发流程。
几何拓扑模块
单层承台
每一个基础的承台可分为多层,其定位坐标系位于最上层承台顶部。每一层承台是一个立方体,承台顶面到定位坐标系原点有一个向下的偏移值Depth。
单层承台拓扑体创建流程如下:
使用CATMathVector类的GetDirections()和GetOrigin()方法获取定位坐标系的原点和方向向量,通过原点和方向向量之间的运算,并结合尺寸参数,创建iPt1-iPt4四个点,并在这四个点的生成过程中考虑每层承台的竖向偏移值Depth。
有了iPt1-iPt4四个点,调用了如下CAA内部函数:
CATICGMSolidCuboid * CATCGMSolidCuboid(CATGeoFactory* iFactory, CATTopData* iData, const CAT?MathPoint& iPt1, const CATMathPoint& iPt2, const CAT?MathPoint& iPt3, const CATMathPoint& iPt4);
这个函数以iPt1-iPt4四个点为输入参数,生成CATICGMSolidCuboid类型的拓扑运算器(TopologicalOperator),通过此拓扑运算器创建立方体形状的空间拓扑体,从而完成单层承台几何拓扑的生成。
多层承台组装
上一节介绍了如何创建考虑竖向偏移的单层承台,本节介绍如何组装这些单层承台。从上到下各单层承台的数据依次存储在一个列表(list)当中,组装多层承台时,在这个列表范围内循环。
对于第一层承台,由于承台顶面与定位坐标系重合,令竖向偏移值Depth=0,调用单层承台创建函数,生成CATBody类型的几何拓扑,将Depth值与当前承台高度相加获取下一层承台的竖向偏移值。如果此时处理的承台为最后一个,当前几何拓扑即为返回值,否则,继续创建下一层承台的几何拓扑,并与上一步获取的拓扑体布尔合并作为新的拓扑体。
循环操作,最终获取合并后的各层承台拓扑结果。
多根桩组装
单根桩数据存储在一个名为PileStruct的结构体中,该结构体包含桩的平面定位坐标值和桩身直径、桩长等信息。
多根桩组装函数声明格式如下:
CATBody_var PileBody(CATGeoFactory_var isp?GeoFac, CATTopData* iData, CATListPV iPileStructList,CATMathAxis iMathAxisTop)();
这个函数的输入参数iPileStructList是一个PileStruct类型的列表(list),其中存储了当前基础下所有桩的数据,每个列表元素代表一根桩;输入参数iMathAxisTop表示承台底部定位坐标系,PileStruct结构体中存储的桩平面定位坐标值即是相对于此坐标系而言的。
函数执行流程如下:
在列表范围内循环,对于当前列表元素,使用CATMathVector类的GetDirections()和GetOrigin()方法获取定位坐标系的原点和方向向量,通过原点和方向向量之间的运算,并结合桩平面定位坐标值及桩长,创建当前桩的上、下部顶点。有了单根桩的上下部顶点及桩身直径,调用如下CAA内部函数创建代表单根桩的圆柱形拓扑体:
CATICGMSolidCylinder * CATCGMSolidCylinder( CATGeoFactory* iFactory, CATTopData* iData, const CAT?MathPoint& iFirstPointOnAxis, const CATMathPoint& iSec?ondPointOnAxis, double iRadius);
在循环过程中,对代表每根桩的圆柱体执行布尔合并运算,循环结束后完成桩的建模。
特征模块
特征概述
在本程序当中,为了实现承台和桩基的快速批量建模,需要将二者封装为特征,从而保证这两种模型的轻量化和封装性。在达索CAA架构中,特征作为一种面向对象的模型,有两层含义:
(1)数据模型
特征作为一种对象,它的数据是以属性的方式存储的,特征的属性分为两类,数值类型的属性,例如整型、浮点型数值;特征类型的属性,也就是说这个属性本身也是一种特征。例如对于直线特征,它的两个端点可以作为其属性,端点本身也是特征。
(2)行为模型
每一种特征对象都包含多种与其关联的行为,CAA当中使用接口来描述对象的行为。例如,在达索中创建一个线的特征Line3D,这个特征具备在三维空间中画线的行为,因此,Line3D特征执行CATILine接口,其中包含的函数Draw()具备画线功能。
模块架构
为了定义承台和桩这两个特征,需要扩展三个对象:Footing,Pile,CATPrtCont。
Footing表示承台对象,对其扩展类型接口BridgeIFooting,这个接口包含一系列Get和Set函数,这些函数的作用是获取承台对象的属性值或者给承台对象属性赋值。同时,对承台对象扩展CATIFmFeatureBehaviorCustomization接口,此接口包含Build()函数,其作用是,当用户对承台对象执行更新操作时,调用几何拓扑模块,生成几何拓扑体,从而实现几何拓扑形状与特征的关联,Build()函数在运行时需要引用类型接口的Get系列函数,从而获取特征的属性值,作为创建几何拓扑体的输入参数。与承台类似,Pile表示桩对象,对其扩展BridgeIPile类型接口以及CATIFmFeatureBehaviorCustomization接口。
CATPrtCont是一个特征容器(Container)对象,对CATPrtCont对象扩展两个工厂接口BridgeIFootingFactory和BridgeIPileFactory,这两个接口分别包含Footing()和Pile()函数,分别用于实例化承台和桩特征。这两个函数在执行过程中需要引用各自类型接口的Set系列函数从而为特征属性赋值。
界面模块
界面模块的作用是实现以下功能:将程序的各命令以菜单按钮的形式保存在工具条当中,并创建用户交互窗口;创建承台及桩特征的生成、修改命令;实现基础批量建模、模型结果批量审核及IFC属性修改功能。
命令按钮及用户交互窗口
菜单按钮采用Add-in的方式添加,基础装配功能和特征生成功能分别嵌入到装配设计(AssemblyDesign)模块和零件设计(PartDesign)模块中,因此,二者分别实现CATIAssyWorkBenchAddin和CATIPrtCfgAddin接口。
派生CATMmrPanelStateCmd类,重载GiveMyPanel()方法,将派生类与对话窗口Dialog文件关联。重载BuildGraph()方法,通过这种方式实现用户交互。
特征的创建和修改
CATMmrPanelStateCmd类的OkAction()方法,表示用户点击OK按钮时系统需要执行的操作。重载OkAction()方法,从而实现了创建特征功能。
创建及修改特征流程
在创建模式下,用户点击工具栏按钮,激活CATMmrPanelStateCmd派生类,打开用户交互窗口,用户在窗口中输入特征属性值,点击OK按钮以后,程序调用特征的工厂接口,创建特征结果并更新拓扑形状。
在修改模式下,当用户双击某已经存在的特征,即激活CATIEdit接口的Activate()方法,此方法调用CATMmrPanelStateCmd派生类的构造函数,启动特征修改模式,在此模式下,程序提取当前特征的属性值并显示在命令交互窗口中供用户修改,点击OK按钮后调用特征类型接口的Set系列函数更新特征属性,完成特征修改及几何拓扑更新。
基础批量建模、模型结果批量审核及IFC属性修改这三项功能在同一个用户交互窗口中实现。
批量建模流程为,通过CATICkeSheet接口获取结构树中设计表格的数据,将其转化为承台和桩结构体数据列表(List)。在此列表范围内循环,由于目前达索CAA暂不支持扩展铁路IFC类型产品的生成功能,因此,对于每一个基础,使用CATAdpDuplicator类对特定IFC类型的产品进行复制,生成基础、承台、桩的产品(Product)节点,通过CATIPLMProducts接口的AddProduct()方法完成产品的结构树层级关系组织。
借助特征模块的工厂接口,在产品节点下掺入承台和桩的特征,特征属性从结构体数据列表中获取。使用CATCkeObjectAttrWriteServices类的一系列属性赋值方法,给产品节点的IFC属性赋值,属性值可以从数据列表中计算求得,也可以通过类型接口的Get系列函数从特征结果中获取。
模型结果的批量审核及修改功能都需要遍历基础批量建模结果的结构树树形结构,从而获取所有模型并对这些模型进一步操作。
CATIPLMNavReference接口的ListChildren()方法可用于获取结构树中某个产品(Product)的所有子节点,多次递归使用该方法从而实现对结构树的遍历。对于遍历出来的每一个零件(Part)根节点,使用CATIPartRequest和CATIMmiUseBodyContent接口依次获取零件中的所有的Body,以及每个Body中的所有特征,将这些特征与BridgeIFooting,BridgeIPile类型接口进行比较,从而识别获取的特征。使用类型接口Get系列函数获取特征的最新属性值。对于遍历出来的结构树中所有产品(Product)节点,通过CATCkeObjectAttrWriteServices类的一系列方法,使用这些属性值为IFC属性赋值,从而实现产品IFC属性值的批量修改;使用这些特征属性值向数据表格写出数据,从而实现批量输出模型审核数据。
总结
针对既有的以工程模板和action功能为手段的桥梁基础BIM建模方法的局限性,本文介绍了一种使用达索/CAA架构开发的桥梁基础BIM批量建模及审核工具。
使用该工具进行建模时,程序读取设计表格中的基础尺寸及其他数据,批量创建符合IFC类型的产品(Product)节点,向其中插入桩及承台特征,并对产品的IFC属性赋值。用户可单独修改特征结果,并使用该工具根据最终的特征结果批量修改产品IFC属性值,还可以使用审核工具,以excel表格的形式输出总结点下所有基础的数据,为BIM建模结果审核提供便利。
从开发架构的角度上讲,该设计和审核工具通过界面模块、特征模块、几何拓扑模块三部分实现其功能。几何拓扑模块的作用是生成承台和桩的CATBody类型拓扑结果;特征模块将桩和承台各自封装为一种面向对象的模型,并调用几何拓扑模块结果实现特征的三维显示;界面模块通过调用特征模块实现批量建模及模型的审核和IFC属性修改。
内容来源:
铁路BIM联盟成员单位——中国铁路设计集团有限公司
基于达索平台CAA架构的桥梁基础BIM建模及审核工具开发[J].结构工程师.
作者:齐成龙,男,国家一级注册结构工程师,高级工程师,工学硕士
E-mail:qichenglong@live.cn
(铁路BIM联盟文章,转发请注明出处)
Revit中文网作为国内知名BIM软件培训交流平台,几十万Revit软件爱好者和你一起学习Revit,不仅仅为广大用户提供相关BIM软件下载与相关行业资讯,同时也有部分网络培训与在线培训,欢迎广大用户咨询。
网校包含各类BIM课程320余套,各类学习资源270余种,是目前国内BIM类网校中课程最有深度、涵盖性最广、资源最为齐全的网校。网校课程包含Revit、Dynamo、Lumion、Navisworks、Civil 3D等几十种BIM相关软件的教学课程,专业涵盖土建、机电、装饰、市政、后期、开发等多个领域。
需要更多BIM考试教程或BIM视频教程,可以咨询客服获得更多免费Revit教学视频。
BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!
相关培训