Revit系统软件二次开发研究
2014-01-18徐剑
■ 徐剑
Revit系统软件二次开发研究
■ 徐剑
分析西成客运专线清凉山隧道BIM建模过程中存在的问题,并提出解决方案。从项目管理、族库管理、断面管理、族构件加载和模型拼装方面对Revit系统二次开发,掌握Revit SDK API函数二次开发方法和一些技巧,熟悉了解其功能,实现隧道BIM模型拼装。
Revit;BIM模型;二次开发;清凉山隧道
1 问题提出与解决方案
在西成客运专线清凉山隧道BIM建模过程中,存在以下几方面的问题。
(1)适合隧道工程建模的族构件基本是空白。按建模需求完成族库建设后发现,依靠手工方式在Revit系统提供的人机交互平台完成隧道建模工作效率低,精度无法保证。即使建模完成,若要对某部分变更,可能需要修改模型全部构件参数,整个拼装过程必须重来。
(2)族构件按照一定的标准建立,同一族构件在同一模型或不同模型中,会被多次调用,用于不同位置,其参数发生变化。手工建模时,同一族构件参数调整非常繁琐,而且容易出错。
(3)在三维空间曲线上建模时,要求族构件必须进行相应形变,以满足模型与实际情况相符,手工很难完成。
基于上述问题,通过对Revit系统提供的API函数研究,结合手工建立隧道模型的基本过程,通过多次试验,提出采用二次开发方式解决问题的思路。一是通过人工方式建立隧道族构件;二是采用二次开发程序准确获取隧道模型所需的空间曲线基本属性,并为隧道族构件的摆放做基础准备;三是加载各种族构件,完成实例生成、参数设置和拼装工作。
图1 Revit系统软件的功能模块
2 项目开发过程
Revit系统软件的功能模块见图1。
2.1 项目管理
项目管理的目的是确定隧道工点的起讫里程,获取工点所在线路的三维空间曲线或平面曲线与竖曲线属性。如果提交的是线路三维空间曲线的DWG文件,则可直接在二次开发系统中应用三维空间曲线属性提取功能,获得满足后期隧道BIM模型拼装要求的属性值。如果按线路竖曲线要素值和平面曲线DWG文件方式提供隧道所在的线路,首先可获取平面曲线的各
属性值,然后通过二次开发系统提供的竖曲线属性值计算功能,获取竖曲线上满足隧道模型拼装的各属性值,最后将竖曲线属性值与相对应的平面曲线属性值拟合,得到完整的空间三维线路曲线属性值。
2.2 族库管理
隧道BIM模型是由众多隧道族构件拼装而成,因此,有效地管理族构件是二次开发系统成功的关键之一。其中包括族构件所属项目及工点、族文件所在路径、族名称及类型管理、族预览及族参数设定、族所属拼装类型管理等。隧道族构件管理界面见图2。
(1)族构件文件基本属性管理。族文件路径可通过浏览磁盘文件获取,族名称及族类型、族基点坐标值等由二次开发系统通过对族文件的操作自动获取,避免了人工输入产生的误差导致模型拼装失败。
(2)拼装参数管理及族预览。此参数主要是在BIM模型自动拼装中,由二次开发系统按拼装要求在实例中进行修改或新增的参数值,可在拼装时对模型尺寸、模型所在曲线半径等进行修改,也可作为BIM信息的一部分,提交给BIM模型的使用方。
(3)拼装属性管理。在隧道BIM模型中所有族构件实现模型拼装时,按类型可分为整体拼装、间距拼装和单独拼装3类。按照拼装类型不同,族构件在调用及实例生成时,插入点的计算不同。专用洞室属于特殊族构件,在族库管理中同时进行有效管理。2.3 断面管理
隧道BIM模型由不同类型的断面组成,不同断面类型的区别主要表现在断面起讫里程、断面中构件的组成、按整体拼装形式进行拼装的构件管节长度、按间距拼装形式进行拼装的各构件相对应的拼装间距等。隧道BIM模型断面管理界面见图3。断面管理中设定的参数及数值直接参与模型拼装的族构件调用、实例生成及实例插入点的计算。
图2 隧道族构件管理界面
2.4 族构件的加载
断面类型、族构件及拼装信息设置后,将参与本次模型拼装的族构件加载到Revit系统中,可从族库中选取族构件,以减少二次开发系统开销,提高拼装速度。族构件加载界面见图4。
2.5 模型拼装
图3 断面管理界面
图4 族构件加载界面
图5 拼装界面
隧道BIM模型可按里程、断面、部位等不同形式进行全隧道或隧道段落拼装。隧道BIM模型拼装界面见图5。
3 Revit系统二次开发总结
(1)在Revit系统开发包中,二次开发为用户准备了Revit SDK API函数,并随Revit系统版本升级,其API功能不断完善、加强。
(2)用好API函数,可改善Revit系统软件本身存在的不足。例如,Revit系统软件在人机交互方面,特别是在空间定位人机交互方面比较薄弱,导致无法通过输入三维坐标点方式插入族构件或生成实例,而API函数可很好地解决这个问题。
(3)将Revit系统软件与其他软件相互配合,能够达到事半功倍作用。例如,开发过程中将Revit系统的二次开发与Autocad的二次开发相结合,通过Autocad提供的DWG浏览控件打开线路曲线DWG文件;通过ObjectArx二次开发编程,获取Revit系统二次开发所需的线路属性值,并存入共享数据库,使隧道BIM模型在空间三维曲线上的精确、快速拼装得到数据保证。
(4)在Revit系统开发中发现二次开发资源不足,从需求分析到开发完成没有完整、详细的技术参考资料借鉴,以及Revit SDK API函数的使用方法及功能,除了Revit SDK Tools本身所带的帮助文件外,没有其他技术资料,使开发中遇到的问题无法迅速解决,需要不断探索和实践,成为新技术学习、实战经验和开发技巧的积累过程。
4 结束语
通过对Revit系统软件的开发,掌握了Revit SDK API函数二次开发方法和一些技巧,熟悉和了解其功能,实现了隧道BIM模型拼装,为今后开发工作打下一定基础。
徐剑:中铁第一勘察设计院集团有限公司信息网络处,工
程师,陕西 西安,710043
责任编辑苑晓蒙
U45
A
1672-061X(2014)05-0039-03