基于Revit二次开发的水轮机蜗壳自动建模方法研究

2022-02-18 05:57邓玉星李进平苏凯
水利水电快报 2022年1期
关键词:二次开发BIM技术

邓玉星 李进平 苏凯

摘要:为解决水轮机蜗壳建模过程繁琐和流道参数获取困难的问题,基于Revit软件二次开发,通过Revit API工具包、WinForm开发界面、C#编程语言、蜗壳水力设计理论和蜗壳放样路径公式推导,设计了一款金属蜗壳自动建模插件。运行结果表明:插件可视化程度高,操作方便,能有效提高蜗壳的建模效率,也为流道参数的获取和水力分析提供了接口。

关键词:金属蜗壳; BIM技术; 插件设计; 二次开发; 放样融合

中图法分类号:TV734 文献标志码:A DOI:10.15974/j.cnki.slsdkb.2022.01.003

文章编号:1006 - 0081(2022)01 - 0011 - 06

0 引 言

建筑信息模型(Building Information Modeling,BIM)是以三维数字技术为基础并集成建筑工程项目各种相关信息的工程数字模型,是对工程项目相关信息完整的数字化表达[1]。BIM技术的实施解决了工程信息在规划、设计、施工、运营全生命期各阶段的有效利用与管理。在设计阶段,与传统三维设计模型相比, BIM模型具有参数化、可视化、模拟性、协同性和可出图性等优势[2]。BIM技术在建筑行业已得到广泛应用,在水利水电行业的使用越来越多,这是当前的发展趋势。

在实际应用中,BIM技术存在费用高、进度紧张、软件生态环境差、需要全人工或半人工转化模型、人工维护困难等问题,采用二次开发是解决这些问题的有效途径[3]。当前水利水电行业主流的BIM设计平台包括Autodesk公司的Revit,Bentley公司的MicroStation和Dassault公司的Catia[4]。其中,Revit除了具有易上手、互操作性强的特点之外,还具有較强的参数化设计能力和软件可开发性,适合进行二次开发。利用Revit的二次开发工具,可以较大程度减少重复工作,提升建模效率,实现快速建模[5]。

由于存在大量的异形曲面构件,没有建筑行业类似的标准化构件,水利水电行业在BIM建模时比较困难。以水轮机蜗壳为例,水力设计得到断面数据较多,在Revit中手动建模蜗壳过程十分繁琐且建模质量不易保证。如果采用二次开发方式,用户仅需输入少量关键的蜗壳设计参数,计算机就能实现自动化建模,则可以提高建模质量,且能节省人力成本。

目前针对传统建筑行业的Revit二次开发软件较多,针对水利水电行业的比较少,且通用性不足。朱致远等[6]通过Revit二次开发对水闸工程挡土墙进行稳定计算分析,伍丹琪等[7]通过Revit二次开发实现了泵站厂房上部建筑的参数化建模,宋永嘉等[8]将Revit二次开发与数值仿真相结合,进行水闸消能工方案的优化设计研究。

本文选择水轮机金属蜗壳为研究对象,分析其水力设计理论,确定流量和流速等关键参数,基于Revit二次开发设计出一款蜗壳BIM建模插件。通过该插件,可自动通过计算公式得出蜗壳的断面参数,并根据断面参数自动建模,还可根据需要生成不同的蜗壳模型,同时,蜗壳的轴线长度和空腔体积的数据也将保存到模型参数中,可为过水流道自动识别和水力分析提供基本数据。

1 蜗壳建模基本理论

1.1 水力设计理论

按照圆周速度等于常数的假设,金属蜗壳圆形断面尺寸的计算公式如下:

断面半径

[ρi=Qiπvc=φiQmax360oπvc] (1)

断面中心距

[ai=ra+ρi] (2)

断面外半径

[Ri=ra+2ρi] (3)

式中:[vc]为蜗壳进口断面平均流速,[m/s];[Qmax]为水轮机组的最大引用流量,[m3/s];Qi为蜗壳各个断面水轮机组的引用流量,[m3/s];[ra]为座环外半径,m;[φi]为任一断面处的包角,(°)。

1.2 建模方法

在Revit中建模水轮机蜗壳,一般先通过空心放样融合来建模蜗壳的空腔部分,接着建模蜗壳的实体部分,最后剪切得到蜗壳模型。水轮机金属蜗壳在设计和制造时通常会根据包角将蜗壳分为多段,蜗壳的单线图见图1。建模时首先可以把图1中蜗壳断面的中心线处理成圆弧并作为放样融合的路径,然后将式(1)的计算结果作为各断面轮廓的半径,对各段蜗壳进行建模,最后通过剪切得到完整的蜗壳。蜗壳舌板是金属蜗壳造型中的关键所在,其位置由蜗壳的包角确定。本文实例中的蜗壳包角为345°,即最后一段金属蜗壳建模结束的位置正是345°包角处,同时蜗壳进口段也在345°包角处设有缺口,在建模对应的座环后,可以保证蜗壳尾端与座环固定导叶的连接。

由于Revit空心放样融合及剪切的特殊性,放样路径的计算公式较为复杂,是本文拟解决的关键问题。

2 放样融合路径解决方案

2.1 放样路径处理思路

水轮机蜗壳一般通过空心模型剪切实体得到,而Revit在进行曲面的布尔剪切时,对曲面的质量要求十分严格,如果建模质量不合格,就会出现在剪切时提示无法保持连接的情况。为了保证金属蜗壳分段建模顺利,需要使相邻两段蜗壳连接处的轮廓形状和大小相同且处于同一个平面,而Revit在进行放样融合时,轮廓所在的面是放样路径在端点的法平面。过圆心的直线与圆相交的点的切线必定与该直线垂直,即该直线就是圆在交点处的法线,连接点法平面共面示意见图2。如图2所示,对于相互连接的、半径不同的两段圆弧[A1A2]和[A2A3],如果它们的两个圆心点[O1],[O2]和连接点[A2]共线,则两段圆弧在连接点有相同的法线[O1A2]。

同理,在空间坐标系中共面的两段圆弧,只要它们的两个圆心点和连接点共线,在连接点处就有相同的法平面,按照这个思路就可以解决放样路径端点轮廓共面的问题。在Revit软件的二次开发中,作为放样融合路径常用的线有直线Line、曲线Arc和样条曲线Spline,直线显然不满足蜗壳的放样融合需求,而样条曲线需要获得多个点及各点之间的权重,计算比较困难。而且,相较于一整条放样路径曲线,分段的放样路径曲线可以更好地利用式(1)中的断面半径,使模型更加精确,故采用分段的Arc曲线作为放样融合路径。

Revit 2018 API函数中创建Arc的方法有3种,分别是Create(XYZ, XYZ, XYZ),Create(Plane, Double, Double, Double),Create(XYZ, Double, Double, Double, XYZ, XYZ)。第一种是通过起点、终点和一个在曲线上的点来创建一条曲线;第二种是通过平面、半径、起始角度和终止角度来确定一条曲线;第三种是通过圆心坐标、半径、起始角度、终止角度、定义弧线所在平面的X轴和Y轴的坐标点来创建曲线。由于金属蜗壳分段较多,确定起始角度和终止角度较为繁琐和困难,因此选择第一种方法创建曲线。曲线的起点和终点可以通过式(1)和式(2)来计算得到,第三点则需要先找到该曲线的圆心,然后通过圆心和辅助线来确定。

2.2 相邻两段放样路径有相同法平面的圆心坐标

在族文件中建模时,将参照平面选在“楼层平面”的“参照标高”上,建模时放样融合的路径将全部在此平面上创建,即所有坐标点的Z坐标为0,所以只需在二维平面上对放样融合路径进行计算。放样路径及各点示意见图3。如图3所示,直线段[A0A1]是蜗壳进口段的中心线,令其垂直于Y轴,圆弧[A1A2]和[A2A3]是两段蜗壳弯管段的中心线,各坐标为[A1(x1,y1)],[A2(x2,y2)],[O(x′0, y′0)],[O1(x′1, y′1)],通过公式(1)和(2)可以得到在不同角度时,蜗壳各段的断面半径[ρi]和断面中心距[ai],然后通过断面中心距[ai]和角度[θi]获得坐标[Ai(xi,yi)],其中[xi=aicosθi],[yi=aisinθi],从蜗壳的进口段开始,随着包角的变化,[ρi]的值不断减小,点[Ai(xi,yi)]也不断靠近[O]点。

[OA1]的长度大于[OA2]的长度,所以可以在直线[OA1]上找到一点[O1],使得[O1A1]的长度等于[O1A2]的长度,这就使得以[O1]为圆心的圆弧[A1A2]在[A1]处的切线垂直于Y轴,即[A0A1]和[A1A2]在[A1]处有相同的法线,若以[A0A1]和[A1A2]为放样路径,则可保证两段放样融合在[A1]处轮廓所在的平面是同一个平面,从而保证剪切成功。同理,可以在直线[O1A2]上找到一点[O2],使得[O2A2]的长度等于[O2A3]的长度,这样圆弧[A1A2]和以[O2]为圆心的圆弧[A2A3]在[A2]处也有相同的切线和法线。理论上,只要不出现类似于[OA1]垂直[OA2]的情况,依次下去,就能使各段蜗壳平顺连接并剪切成功。

现求圆心[O1]坐标,令线段[O1A1]的长度[L1]等于线段[O1A2]的长度[L2],則有

[x1-x′12+y1-y′12=x2-x′12+y2-y′12] (4)

(1) 当[x1=x′0]时,直线[A1O]的方程为[x′1=x1],代入式(4)化简得

[y′1=y22-y21+(x2-x1)22(y2-y1)]                 (5)

(2) 当[x1≠x′0]时,直线[A1O]的斜率为

[k=y1-y′0x1-x′0] (6)

直线[A1O]的方程为

[y′1=kx-x0+y0] (7)

代入式(4)化简得

[x′1=x22+m22-x21-m212(x2+km2-x1-km1)] (8)

式中:[m1=y1+kx0-y0];[ m2=y2+kx0-y0]。

计算后续其他圆心坐标时只需将坐标作对应的调整即可。

2.3 放样融合路径曲线的第三点坐标

在确定好圆心使相邻两段放样路径有相同的法线后,还要找到创建曲线的第三点。以圆弧[A1A2]为例,要找到第三点[B1],需要引入一条过O点的直线[lk1],直线[lk1]与圆弧[A1A2]的交点为[B1],圆弧上的第三点计算示意见图4。如图4所示,只要令[O1A1]的长度等于[O1B1]的长度,就可保证[A1, B1, A2]位于同一段圆弧上,这就找到了创建放样融合路径需要的3个点,同理,只要令[O2A2]的长度等于[O2B2]的长度,就能保证[A2, B2, A3]在同一段圆弧上,依次下去,就能确定所有的放样融合路径的第三点坐标。现求[B1]点坐标。

为计算方便,令[lk1]平分∠[A1OA2],则[lk1]的斜率[k1]为

[k1=tan θ] (9)

式中:[θ=θ1+θ22]。

则[lk1]的方程为

[y=k1x] (10)

要找到[B1]的坐标,只需要使线段[O1A1]的长度等于线段[O1B1]的长度即可,令[B1]的坐标为[(x″1, y″1)],则有

[x1-x′12+y1-y′12=x″1-x′12+y″1-y′12](11)

由于式(11)在不同的情况下有不同的解,现分开讨论:

(1) 当[θ=90°]时,斜率[k1]趋于无穷,[x″1=0],代入化简得

[y″1=-p+p2-4q2] (12)

式中:[p=-2y′1];[q=(x′1)2+(y′1)2-(x1-x′1)2-(y1-y′1)2]。

(2) 当[θ=-90°]时,斜率[k1]趋于无穷,[x″1=0],代入化简得

[y″1=-p-p2-4q2] (13)

式中:[p=-2y′1];[q=(x′1)2+(y′1)2-(x1-x′1)2-(y1-y′1)2]。

(3) 当[-90°<θ<90°]时,代入化简得

[x″1=-s+s2-4t(1+k21)2(1+k21)] (14)

[y″1=k1x″1] (15)

式中:[s=-2x′1-2k1y′1];[t=(x′1)2+(y′1)2-(x1-x′1)2-(y1-y′1)2]。

(4) 当[-270°<θ<-90°]时,代入化简得

[x″1=-s-s2-4t(1+k21)2(1+k21)] (16)

[y″1=k1x″1] (17)

式中:[s=-2x′1-2k1y′1];[t=(x′1)2+(y′1)2-(x1-x′1)2-(y1-y′1)2]。

計算后续各段放样融合路径的第三点坐标时,只需要将坐标作对应的调整即可。在获取创建放样路径的3个点后,就可以创建Arc曲线作为放样融合的路径,并结合断面数据进行放样融合。

3 蜗壳自动化建模实现

3.1 编码工具

编码工具包括Revit API开发包工具和WinForm用户界面工具。Revit系列的所有软件都提供API,可以通过Revit API将应用程序集成到Revit软件中(插件),Revit API允许使用任何与.NET兼容的编程语言,包括Visual Basic.NET,C#,C++/CLI,F#等,用户可以通过API访问模型的图形数据、参数数据,对模型元素进行创建、修改和删除,以及创建插件来自动完成一些重复性工作[9]。Revit API中集成了大量现成的命名空间及其包含的类和类中的函数和属性,在大大降低二次开发难度的同时,也提高了开发效率。Windows Form即Windows窗体(简称WinForm),是用于建立客户端界面的程序设计框架,它使开发人员可以充分利用Windows 操作系统中丰富的用户界面特性[10]。

本文使用编译软件为“Visual Studio 2019”,编程语言为“C#语言”,目标框架为“.NET Framework 4.5.2”,输出类型为“类库”,引用“RevitAPI”和“RevitAPIUI”程序集,Revit版本为2018,安装的SDK版本为2018.2,插件在族文件环境中通过Revit软件界面上的“附加模块-外部工具-Add-In Manager”进行插件的载入和运行。

3.2 实施方案

插件主要由计算模块、建模模块和交互界面模块组成。根据已知的蜗壳断面尺寸的计算公式和推导得出的融合放样路径的计算公式,先将两者编码,再封装成计算模块,根据蜗壳的建模方法将Revit API中的类、函数和方法封装成建模模块。

交互界面模块在插件运行时将会弹出,插件交互窗口的构成如图5所示,其主要由3部分组成:图片部分,用于说明参数含义;参数的输入和模型控制部分,用于参数输入以及对模型结果类型进行选择;建模的命令部分,控制插件运行。将3个模块组合起来,使用户通过交互界面输入设计参数后,计算模块直接对设计参数进行计算,然后将计算得到的数据用于建模模块进行建模,最终得到水轮机蜗壳模型,同时对建模过程中模型轴线长度和空腔体积的数据进行整理,并写入模型的属性参数中,无论是在族文件还是在项目文件中都可以读取到蜗壳模型的流道数据,便于进行水力分析计算。

4 插件效果展示

4.1 插件功能

(1) 快速建模。根据水轮机金属蜗壳设计参数计算断面数据并快速生成模型,且可以根据需要选择生成“完整蜗壳”“只生成蜗壳空腔”和“只生成蜗壳所占空间位置的空腔”。后两种用在一些特定情况下的挖孔,比如混凝土材质的实体中挖出蜗壳所占的空间,挖出的空间将与相同参数生成的蜗壳很好地贴合;模型修改方便,在交互界面选择生成放样路径的模型线,就可以将模型线作为放样路径,从而通过修改放样轮廓达到修改模型的目的。

(2) 计算蜗壳的空腔体积和轴线长度。在进行输水系统水力计算时需要了解蜗壳的空腔体积和轴线长度,插件在生成模型时可以直接将空腔体积和轴线长度集成到模型的参数中,其中空腔体积来自每一段空心放样融合的体积之和,轴线长度来自每一段放样融合路径的长度之和,两者均由Revit API中类的属性得出,可以保证数值的精确性。这些参数可以直接通过属性参数栏得到,同时通过二次开发也可以读取模型中的其他参数,为后期水力计算奠定了基础。

4.2 插件应用

以新疆库尔干水电站金属蜗壳的设计参数为例,检测插件的运行效果。

(1) 获取蜗壳的设计参数。新疆库尔干水电站蜗壳进口断面平均流速[vc]为7.1m/s,机组最大引用流量[Qmax]为11.5[m3/s],座环外半径[ra]为1.105[ m],导叶高度[b0]为0.166[ m],进口段长度[Lab]为2.0[ m],进口段入口处半径[r0]为0.75[ m],选取每一段蜗壳的角度[θ]为15°,蜗壳壁厚为0.05[ m]。

(2) 输入获取设计参数。插件用户操作界面如图6所示,将蜗壳设计参数输入插件的参数输入栏中。

(3) 根据需要调整模型的类型并确认。可以根据需要在“是否生成放样路径的模型线”中选择“是”或“否”,在“生成蜗壳模型的类型”中选择“完整蜗壳”“只生成蜗壳内部空腔”和“只生成蜗壳所占空间位置的空腔”,并点击确认,等待模型生成。

4.3 插件运行效果展示

在输入图6中给定的数值后,插件生成蜗壳的效果图如图7所示。

若选择生成的模型为空心模型,且生成放样路径的模型线,则蜗壳空心模型的效果图如图8所示,其与实体剪切后的效果图如图9所示。

蜗壳模型的轴线长度和空腔体积如图10所示,其中体积单位为[m3],长度单位为[mm]。

5 结 语

本文基于AutodeskRevit平台的二次开发,将金属蜗壳的设计公式转化为数学模型,并通过公式推导解决了在Revit中不易确定蜗壳放样融合路径的问题,将蜗壳的设计与建模集成在插件之中,不仅使插件功能丰富、操作简单、可视化程度高,还有效的提高了蜗壳的建模效率,为BIM技术在复杂水工结构建模上的应用奠定了基础,同时轴线长度和空腔体积参数也为流道识别和水力计算提供了接口。

参考文獻:

[1] 赵继伟,魏群,张国新,等. 水利工程信息模型的构建及其应用[J]. 水利水电技术, 2016,47(4):29-33.

[2] 王宁,陈嵘,杨新军,等. 基于BIM技术的水利工程三维设计研究与实现[J]. 人民长江,2017,48(增1):162-165.

[3] 葛晶,周世光. 基于Revit平台BIM工作系统二次开发应用实例[J]. 建筑技术,2017(12):85-87.

[4] 补舒棋. 水电工程三维设计中CATIA与REVIT比较[J]. 人民黄河, 2014(3):113-116.

[5] 王增竹. Revit二次开发及其应用研究[J]. 水电站设计,2019,35(3):31-33.

[6] 朱致远,牛志伟,张宇,等. Revit二次开发在水闸工程挡土墙设计中的应用[J]. 人民长江,2021,52(2):117-121.

[7] 伍丹琪,陈俊涛,肖明. 基于Revit二次开发的泵站厂房参数化BIM解决方案[J]. 水电与新能源, 2019, 33(4):15-18,68.

[8] 宋永嘉,张豪杰,朱浩岩,等. 基于BIM的水闸消能工优化设计应用研究[J]. 水利与建筑工程学报, 2020(12):15-20,27.

[9] AUTODESK ASIA PTE LTD. Autodesk Revit二次开发基础教程[M].  上海:同济大学出版社, 2016:1-2.

[10] 赵春玲. NET平台下开发三层架构WinForm应用程序简介[J].  信息技术与信息化, 2010(4):33-35.

(编辑:唐湘茜)

Research on automatic modeling method of turbine spiral case based

on secondary development of Revit

DENG Yuxing, LI Jinping, SU Kai

(School of Water Resources and Hydropower, Wuhan University, Wuhan 430072, China)

Abstract:In order to solve the problems of complicated modeling process of hydraulic turbine spiral case and difficulty for obtaining the channel parameters, based on the secondary development of Revit software, we designed a plug-in for automatic modeling of metal spiral case through Revit API toolkit, WinForm development interface, C# programming language, spiral case hydraulic design theory and spiral case lofting path formula derivation. The operation results of example parameters showed that the plug-in is high in visualization and convenient in operation, and can effectively improve the modeling efficiency of spiral case, and also provide an interface for channel parameter acquisition and hydraulic analysis.

Key words: metal spiral case; BIM Technology; plug-in design; secondary development; lofting fusion

猜你喜欢
二次开发BIM技术
初中生物教材插图的分类及二次开发
例谈对高中数学教材中习题的二次开发
浅谈CAD软件二次开发的方法及工具
例谈课本习题的“二次开发”
高中物理教材导入的“二次开发”
BIM技术在建筑工程施工中的应用
BIM技术在配套服务用房项目的深化设计及应用研究
BIM技术在钢结构工程设计制造中的应用研究
基于BIM技术的工程项目信息管理模式