(浙江省交通规划设计研究院有限公司,杭州 310012)
Generative Component软件(以下简称GC)是Bentley平台的一款可视化编程软件,主要功能为以自定义程序创建并控制三维模型。GC程序以节点为基本单元,以节点间的联结关系表示算法逻辑,降低了编写难度。即使是不擅长代码的用户,也可以GC将处理问题的逻辑思路转变为一套程序化解决方案。
目前,Bentley平台的常用桥梁建模软件包括OpenRoads ConceptStation,OpenRoads,OpenBridge,MicroStation,PowerCivil以及 ProStructures等,这些软件在异形建模以及批量建模时存在精度与效率不足的问题。人工绘制虽然可以一定程度上解决这些问题,但效率低下,且容易出错[1-2]。本文研究基于GC的桥梁建模方法,旨在借助可视化编程这一工具,获取更快的建模效率与更高的建模质量。
桥梁建模往往需要多软件协同工作,例如国内广泛使用的“Dynamo+Revit”[3-4]模式。协同工作可以发挥各软件的长处,对于软件分工明确的Bentley平台而言,这一点尤为重要。本文除了介绍GC的功能以及GC桥梁建模基本方法,还将进一步探究该软件与其他Bentley软件的协同工作方式。
通过基于节点的可视化编程界面[5](图1),GC可以让用户自由创建参数化设计模型或自动化处理过程[6]。这种建模方式的主要特点如下:
(1)参数化:所建模型的所有尺寸和坐标信息,都可以追溯到程序节点中的某一个参数,修改参数即可修改模型,效率极高;
(2)可视化:GC程序与模型之间的关联是同步的,可以即时看到程序改动对模型的影响;
(3)广泛适用性:GC自带的节点库提供种类丰富的三维建模工具,适用于常见结构以及各种异形结构;
(4)可积累性:除了使用GC提供的节点,也可以编写C#脚本自行定制节点,脚本可不断积累,为后续设计提供更多可供选择的工具。
图1 GC可视化编程界面
为了与其他软件实现协同作业,GC提供了多种数据交互方法。
Bentley平台最常见的数据交互是文件参照。该方法起源于Bentley平台最早发布的产品MicroStation(1986年)[7],可以参照的文件格式包括Bentley平台的通用格式dgn、cel,AutoDesk平台的常用格式Dwg,以及几乎成为通用图形数据交换格式的DXF[8]等。GC可以通过 ReferenceAttachment节点(图2a)使用这种文件参照功能。GC所创建的模型文件(格式通常为dgn),也可以被其他软件所参照。
图2 用于数据交互的节点2 GC桥梁建模基本方法
除了Bentley平台通用的文件参照,GC还提供三种特殊的数据交互方式:
(1)通过cell节点(图2b),从其他dgn或cel文件中调用某一个model;
(2)通过ExcelRange节点(图2c)的ReadValue或WriteValue区块,对excel文件进行读取或写入;;
(3)通过DataImporter(图2d)/DataExporter节点,对Access/txt/SQL文件进行读取或写入。
桥梁建模通常被分为三个步骤,分别为上部结构建模、下部结构建模以及附属结构建模[9]。这三部分从模板形式到模型创建方法均有所不同,下面将分别介绍。
(1)模板的制作
横截面模板制作简单,使用方便,适合带状实体建模,因此在被广泛使用的BIM软件(如InfraWorks、OpenBridge、PowerCivil、Dynamo+Revit等)中,上部结构模板常常被制作成参数化横截面的样式。
图3 模板脚本运行生成的箱梁横截面
GC的参数化横截面模板以C#脚本的形式存在,称之为模板脚本。模板脚本每次运行都会根据输入的参数值生成对应尺寸的横截面轮廓(图3)。脚本可以在GC中直接编写,或以txt文件格式导出或导入。模板脚本可以放置在Curve节点的Byfunction区块内直接运行,也可以被其他Curve节点调用运行。后者可以批量生成不同尺寸且相互独立的横截面轮廓。
(2)上部结构创建
上部结构以路线为依托[10]。通过文件参照方法获取路线,然后从Excel表格(图4)读取参数,根据桩号信息沿路线放置若干横截面,通过融合放样与布尔运算生成上部结构实体(图5)。
图4 用于输入参数的execl表格
(1)模板的制作
由于难以通过横截面融合放样的方式生成,因此下部结构建模时,更适合使用三维模板。可以编写脚本制作三维模板,但是代码量(500至600行)相对于横截面(100行)模板成倍增加,不仅耗时耗力,且极易出错。通过编写脚本制作下部结构模板,并非最优选择。
图6 桥墩模板文件(cel格式)
图5 通过放样方法生成变截面箱梁结构
GC可以调用其他dgn或cel文件中的model,其调用过程与从模板库中调用某一个模板单元十分相似[11]。因此对于下部结构,可以在其他建模软件,如MicroStation或PowerCivil中,利用其参数建模功能直接绘制单个三维桥墩模板(图6),将不同类型的模板分别保存在不同model中并区别命名,随后便可以在GC中,通过cell节点进行调用。
(2)下部结构创建
下部结构同样需要以路线为依托,路线获取方式同上部结构。由于模板的尺寸已经在制作model时调整完毕,因此只需要沿路线确定桥墩的坐标以及摆放方向,然后通过cell节点依次调用对应的model即可(图7)。
图7 调用cel模板文件创建桥墩
根据分布特征,可以将附属结构分为两类:第一类为连续分布的带状结构,如护栏; 第二类为离散分布的块状结构,如路灯。前者的建模方式类似于上部结构,可以通过横截面放样方式生成,后者建模方式类似于下部结构,适合通过调用三维模板文件的方式生成。
Bentley平台的桥梁BIM建模,通常需要以下几款软件共同完成:用于处理地形、路线与桥梁铺面的OpenRoads,用于桥梁主体建模的OpenBridge,用于绘制自定义构件的MicroStation和PowerCivil[12-13]。GC与上述软件的协同建模,可以有以下两种形式。
对于形式较为简单的桥梁,OpenBridge预制了高度参数化的建模路径,可以实现桥梁主体的快速建模。但OpenBridge创建的模型细节有限,需要用GC进一步加工。
例如,高速公路桥的建模工作中,可以根据输入的参数和路线,由程序自动生成上千块不同尺寸的横隔梁,并整合到OpenBridge模型中(图8)
OpenBridge无法创建的桥梁模型有两种:一种是样式较为复杂,不在预制建模路径涵盖范围内的,如斜拉桥、悬索桥; 另一种是样式简单但参数变化较为复杂,使用预制建模路径无法获取较高精度的,如斜交变宽T梁桥。此时需要抛弃OpenBridge的建模路径,转入GC中自行编写建模程序并完成建模。
基于GC建模与基于OpenBridge建模的最大区别在于,后者自带模板库并且可以独立制作模板,而前者的部分模板(尤其是下部结构)往往需要在其他建模软件中绘制,然后通过参照或调用的方式使用。
图9展示了基于GC的建模案例。以参照方式从OpenRoads获取路线,以调用方式从MicroStation获取T梁单元并从PowerCivil获取桥墩单元。编写GC程序对上述结构单元进行组装式的整合,以完成整座桥梁的建模。
图8 将GC生成的横隔梁合并到主模型
图9 基于GC的桥梁建模
在Bentley平台的多软件协作工作模式下,GC可以凭借其直观而灵活的编程功能以及数据交互能力,弥补其他专业软件的缺陷,成为桥梁BIM建模的又一有力工具。
GC允许用户跨软件跨平台获取建模素材,并自行决定如何将它们整合为所需要的模型,这个整合过程是高度参数化与高度自动化的。通过这种方式,提高建模效率、提高建模精度、降低建模成本与复用成本,这就是GC的价值所在。