CAA技术在BIM设计中的应用研究

2018-12-22 07:04赵凯华张璐琦刘增强
水利技术监督 2018年6期
关键词:定义界面设置

赵凯华,张璐琦,余 军,刘增强

(1.黄河勘测规划设计有限公司,河南 郑州 450003;2.黄河流域水资源保护局,河南 郑州 450004)

BIM(Building Information Modeling)是“建筑信息模型”简称,最初起源于20世纪70年代的美国[1]。美国国家BIM标准对BIM的定义为“BIM是建设项目的兼具物理特性和功能特性的数字化模型,且从建设项目的最初概念设计开始的整个生命周期里做出任何决策的可靠共享信息资源”[2]。通过BIM技术建立数字化的BIM参数模型,涵盖与项目相关的大量信息服务于建设项目的设计、建造安装、运营等整个生命周期,为提高生产效率、保证生产质量、节约成本、缩短工期等发挥出巨大的优势作用。[3]BIM技术已成为建设领域信息技术的研究和应用热点,其应用价值已得到政府的高度关注和行业的普遍认可,在建筑领域已获得了应用,验证了其可行性和实用性[4]。

实现BIM的前提是在建设项目生命周期的各个阶段不同项目参与方通过BIM建模过程中插入、提取、更新及修改信息以支持和反映出各参与方的职责。信息是BIM模型构建的必要条件,其贯穿于BIM应用整个周期,是BIM技术的核心。

CATIA是法国Dassault Systemes 公司开发的CAD/CAM/CAE/PDM一体化软件,被广泛应用于汽车、轮船、摩托车、航空航天等领域,尤其是航空航天领域[5]。由于其卓越的曲面建模能力,可满足异形体建模需要;水利水电工程中存在拱坝、水轮机、蜗壳、尾水管等异形结构,CATIA可以完全满足其需要,并已取得了设计成果[6],在水利水电工程三维设计中发挥了重要作用,行业也占据了相当一部分市场,相当一部分水利水电设计院采用CATIA作为其三维设计平台。但是与BIM技术结合,必须对CATIA模型的信息进行完善,实现信息化、智能化模型。

1 CATIA二次开发技术

通常所说的CATIA二次开发方式,是指进程外开发方式[7],包括基于Visual Basic的Automation技术和基于C++的CAA技术。

Automation技术是一种在解释环境下执行,在COM基础上实现的技术,其主要思想是用一个程序去控制另一个程序,它并不能直接地获取和处理数据,只能间接地通过开放的对象、方法、属性来获取、设置和处理数据[8],可以通过调用封装好的CATIA API接口(如Application、Documents、Cameras、Windows)与CATIA进行交互,以实现对CATIA中对象的增加、删除、获取子项方法和数量属性等。其局限性很明显,只能有限调用CATIA API封装好的对象,对于涉及到用户定义特征,以及对已有对象行为进行扩展等需深度定制开发的内容时,则显得无能为力。

CAA是组件应用框架(Component Application Architecture)的缩写,是达索公司产品扩展和客户进行定制开发的平台,利用CAA可以进行从简单到复杂的二次开发工作,而且和原系统的结合非常紧密,如果没有特别的说明,无法把客户所研发的功能从原系统中区分出来,这非常有利于用户的使用和集成。CAA开发人员,一方面需要具备CATIA V5知识,另一方面需要具备用C++开发能力。开发入门困难[7],可供学习借鉴的资料很少,因此成功的案例很少。国外,法国和日本对CAA研究较早也较深入;在国内,北京航空航天大学、西北工业大学、第一飞机设计院都关注CAA的研究应用[9]。水利水电工程方面,长江勘测规划设计研究院、中国电建集团成都勘测设计研究院有限公司、中国电建集团西北勘测设计研究院有限公司等单位都对CATIA二次开发进行了研究并取得了一些初步成果,但公开发表的成果很少。

2 技术路线

按照水利水电工程设计的信息要求,对CATIA特级级和零件级分别进行开发,使模型能够承载不同层级的水利水电工程信息。通过csv文件格式,使CATIA信息能够和后台数据库系统进行数据交互,可将模型信息保存到数据库中,为BIM技术应用提供可靠信息源,技术原理如图1所示。

图1 技术原理

2.1 技术手段

在Visual Studio 2008的集成开发环境中,采用CAA技术进行开发。

2.2 主要步骤

从特征级属性开发、零件级属性开发、信息导出3方面分别进行介绍。

2.2.1 特征级属性开发

(1)定义属性工菜单栏。菜单栏用于在CATIA零件设计环境中提供命令按钮,添加特征级属性命令按钮。

(2)界面定制。在集成环境中可通过可视化的操作,完成界面设计布局,用到的元素包括Frame、PushButton、SelectorList、Editor、ParameterEditor等。

(3)定义信息的类别Catalog及StartUp。通过定义Catalog及StartUp,表达信息属性在CATIA中构造方式。

(4)默认属性设置。为特征设置若干种常用的属性,减少用户设置工作量。

(5)事件绑定。通过完成如下事件绑定界面与CATIA之间信息传递,界面中需要绑定的主要事件包括:窗口关闭事件、元素选择与替换、特征级属性设置、新属性添加、属性名称修改、确定按钮完成操作。

(6)将属性信息与特征绑定。提取用户设置的信息,利用信息对特征进行扩展。

(7)即实现编辑功能(行为实现)。当需对已设置的特征级属性信息进行更改时,在结构树上双击,即可弹出特征级属性编辑对话框,完成修改。

(8)其他操作。对结构树中信息进行过滤,防止无关子元素显示等。

2.2.2 零件级属性开发

(1)扩展属性工具菜单栏。对属性工具菜单栏进行扩展,添加零件级属性命令按钮。

(2)界面定制。零件级属性界面包括设置零件级属性界面和零件级所包含的特征级信息汇总界面,用到元素类型与特征级属性的相同,通过可视化的操作完成界面定制。

(3)定义信息的类别Catalog及StartUp。零件级属性构造方式与特征级属性相同,可采用与特征级属性相同的Catalog及StartUp。

(4)默认属性设置。为零件级设置若干种常用的属性,减少用户设置工作量。

(5)事件绑定。通过完成如下事件绑定界面与CATIA之间信息传递,界面中需要绑定的主要事件包括:窗口关闭事件、元素选择与替换、零件级属性设置、新属性添加、属性名称修改、确定按钮完成操作、信息类型选择事件、多字段查询设置、关键字获取、查询命令响应。

(6)将属性信息与零件绑定。提取用户设置的信息,利用信息对零件进行扩展。

(7)实现编辑功能(行为实现)。当需对已设置的零件级属性信息进行更改时,结构树上双击,即可零件级属性编辑对话框,完成修改。

(8)其他操作。对结构树中信息进行过滤,防止无关子元素显示等。

2.2.3 属性信息导出

(1)扩展属性工具菜单栏。对属性工具菜单栏进行扩展,添加属性信息导出命令按钮。

(2)界面定制。通过可视化的操作完成界面定制。

(3)事件绑定。通过完成如下事件绑定界面与CATIA之间信息传递,界面中需要绑定的主要事件包括:窗口关闭事件、元素选择、列表的右键事件“清空选择”和“清除选择”,提供删除已选择的属性功能、更改目录事件,设定导出目录、导出为csv事件,完成导出操作。

(4)导出操作。采用文本输出流,将信息写入csv文件。

2.3 关键问题解决办法

2.3.1 关键问题一:属性工具栏定义

属性工具栏是命令入口,是通过程序与CATIA进行通信的第一道门。CAA遵循C++编程风格,首先,需要继承基础类CATBaseUnknown,然后,需要在函数CreateCommand中定义命令,最后在CreateToolbars中将定义的命令添加到工具栏。头文件及源文件部分关键代码如下。

(1)头文件部分关键代码如图2所示。

图2 头文件部分关键代码

(2)源文件部分关键代码如图3所示。

图3 源文件部分关键代码

2.3.2 关键问题二:信息特征定义

特征是CATIA模型重要组成部分,首先,通过调用CreateCatalog函数生成Catalog,然后调用Catalog的CreateSUInCatalog方法生成StartUp,最后调用StartUp的AddAttribute方法为StartUp添加属性,添加特征及信息两个属性。关键代码如图4所示。

图4 信息特征定义代码

2.3.3 关键问题三:属性与特征/零件进行绑定

用户输入的信息与CATIA模型进行关联,需要通过对“关键问题二”中StartUp赋值实现:①通过AccessCatalog方法获取到对应Catalog;②调用该Catalog的RetrieveSU方法获取到StartUp;③调用StartUp的Instanciate方法进行初始化,获取到实例;④对③中初始化的实例,设置特征及信息,实现将信息与特征绑定。关键部分代码如图5所示。

图5 属性与特征/零件进行绑定代码

3 工程应用

某水利水电工程采用CATIA为基础设计平台,需要采用BIM技术完成工程5D施工模拟,根据项目需求,采用本文介绍的技术原理采用CAA技术进行二次开发,完成了特征级属性工具、零件级属性工具及属性信息导出功能开发。特征级属性默认信息包括材料、密度、尺寸等,零件级属性默认信息包括零件编号、版本、描述、设计者、校核人、审查人、完成时间等,除此设计者可根据需要自行对信息进行修改及补充。

图6为属性工具条,在CATIA零件设计环境下,自动加载显示。从左到右依次为“特征级属性”“零件级属性”“信息导出”命令按钮。

图6 属性工具条

图7为特征级属性工具,图7(a)为工具命令面板,可以快速设置特征级属性参数值;图7(b)为特征属性在树结构上的显示。

图7 特征属性

图8为零件级属性工具,图8(a)为工具命令面板,可以快速设置零件级属性参数值;图8(b)为零件级属性在树结构上的显示。

图8 零件属性

图9为零件级所包含特征级的属性汇总,可实现对特征级的属性进行分类、汇总,支持对多个关键字进行并集/交集查询。

图9 特征属性汇总

图10为属性信息导出的界面,图11是导出后的csv文件。

图10 属性信息导出

图11 属性信息导出csv文件

csv文件可实现将数据方便地导入到数据库中。通过数据库,可实现数据共享及访问方式的多元化,增强了数据的一致性和可维护性;并保证了数据的相对独立性,实现对数据的集中控制,确保其安全性和可靠性。通过利用数据库管理系统提供的一套方法,可及时发现故障并进行修复,防止数据被破坏,能够尽快恢复数据库系统运行时出现的物理上或逻辑上的错误。利用sql语句的强大功能实现对信息的检索,以满足不同维度的应用需求。

最终通过数据库读取特征信息及零件信息,并运用到5D施工模拟中,将时间、成本因素考虑到施工模拟,对该BIM研发项目的顺利研发推进起到了重要作用。

4 总结

CATIA CAA具备强大的二次开发能力,通过对其进行研究,尤其是用户定义特征技术的深入研究,达到了用户信息属性与CATIA模型的集成目的,使得CATIA模型可实现方便地插入、提取、更新及修改信息,对BIM技术在工程应用提供了有力信息支持。应用实践表明,该技术对CATIA的特征级及零件级实现了信息封装,可方便地进行管理,支持与数据库进行数据交互,对BIM技术在工程领域应用推广具有重要意义。

猜你喜欢
定义界面设置
中队岗位该如何设置
国企党委前置研究的“四个界面”
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
人机交互界面发展趋势研究
成功的定义
中俄临床医学专业课程设置的比较与思考
手机界面中图形符号的发展趋向
地铁出入段线转换轨设置
修辞学的重大定义
山的定义