![互通立交预制梁桥布置程序脚本的开发_第1页](http://file4.renrendoc.com/view/ea709800988c5fdd5115ab9abf6bd557/ea709800988c5fdd5115ab9abf6bd5571.gif)
![互通立交预制梁桥布置程序脚本的开发_第2页](http://file4.renrendoc.com/view/ea709800988c5fdd5115ab9abf6bd557/ea709800988c5fdd5115ab9abf6bd5572.gif)
![互通立交预制梁桥布置程序脚本的开发_第3页](http://file4.renrendoc.com/view/ea709800988c5fdd5115ab9abf6bd557/ea709800988c5fdd5115ab9abf6bd5573.gif)
![互通立交预制梁桥布置程序脚本的开发_第4页](http://file4.renrendoc.com/view/ea709800988c5fdd5115ab9abf6bd557/ea709800988c5fdd5115ab9abf6bd5574.gif)
![互通立交预制梁桥布置程序脚本的开发_第5页](http://file4.renrendoc.com/view/ea709800988c5fdd5115ab9abf6bd557/ea709800988c5fdd5115ab9abf6bd5575.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
互通立交预制梁桥布置程序脚本的开发
1复杂形态模型创建在建筑结构设计和施工领域,pmi(建筑信息模型)的概念深深扎根于人们的心中。AutodeskRevit(以下简称Revit)是目前国内在设计及施工领域方面应用最广泛的一款BIM建模软件。建立参数化的模型是Revit的核心;当通过Revit创建好一个模型之后,与该模型相对应的各类型图纸(平、立、剖)及构件明细表随之产生。也就是说对于一个已建好的参数化模型,与其相关联的所有图纸、视图及明细表都是基于同一个模型数据库的数据外在表现形式。当模型某元素发生改变时,在Revit项目中该元素关联的其他元素将会随之发生同步变化,这是BIM相对于传统设计方法的主要优势之一,每个数据元素均具有关联性。同时随着BIM技术的不断完善和发展,在正向设计领域中的应用越来越广,特别是对Dynamo技术的应用,表现的尤为突出。另外,BIM技术不同于传统设计方法的另一特征是对于Revit已建好的模型,可根据项目实际要求添加关于模型及其构件的各种信息,包括但不限于模型构件的材料供应方、加工方、施工方、验收方、监理方、材质的外观、材质的物理力学属性(密度、弹性模量、压缩模量、泊松比等)等信息。对于已建好的Revit模型,不仅可以实现整体及不同类型构件工程量的统计输出外,而且还可以将该模型成果文件用于力学分析、绿色节能分析、模拟光照分析、实景漫游等。Revit在建筑行业的应用已经拥有众多优异的表现,与建模相关联的功能模块也主要是和建筑结构相关。与市政工程诸如道路、桥梁、隧道相关的功能模块则少之又少,直接使用Revit来创建形态结构复杂的桥梁、隧道(特别是盾构及其管片配筋)是非常困难的。为解决Revit在创建复杂形态模型时的缺陷,本文以Revit内置插件Dynamo作为程序主要开发工具,结合Revit,Civil3D,Excel开发了T梁桥主体结构、下部结构及桥面系布置程序。数据获取及分类处理如图1所示。另外所有的图形处理、程序设计和编辑均是基于一定数量的基础数据(点数据),基础数据处理的是否恰当,直接影响最终模型的显示效果和精度。由于Revit有图形界限的限制,从Civil3D中导出的点数据直接应用于Dynamo中,会造成图形无法正确显示的问题。所以在将原始点数据导入Dynamo之前,需进行处理———采用相对坐标。这种处理方式既保证了图形的正常显示,又保证了建模精度。图1所示将原始坐标点数据转变为相对坐标的具体步骤为:修改Revit项目基点(系统默认状态为0,0,0,结合工程项目实际情况,将其设定为340000,287300,0),随后基于该基点对原坐标值进行转换,结果如图1中“变更坐标”所示。2使用原理和节点开发2.1dynamo简介Dynamo可视化编程的主要特点是程序编辑过程中可随时查看编辑成果,程序编辑与结果输出相同步。同时该种类型的编程有别于传统编程,传统编程是基于过程的,Dynamo可视化编程是基于对象的。下面通过一个范例来说明两种编程思想的区别。通过圆心和半径做圆,常规的程序源代码如下:通过可视化编程创建圆的过程如图2所示。以上2种方法均可以创建圆形,很明显采用Dynamo可视化编程去创建图形更加直观和便捷。2.2数据连缀方式在模型创建过程中,Dynamo通过内置的不同类型节点将各种类型数据列表以某种逻辑关系进行相互连接来解决相关模型创建问题。不同节点之间的数据列表运算是基于某种类型的数据连缀方式,数据连缀方式共分为三种类型:最短类型、最长类型和叉积类型。最短类型:两个相对应的数据列表内部元素一一对应相互连接,直至某一数据列表最后元素相连接;最长类型:一组数据列表内部数据元素一直连接到另一数据列表没有相对应的数据元素为止;叉积类型:每组数据列表中的每一个数据元素均与另一组数据列表中的所有数据元素相互连接。处于不同连缀状态下的数据列表运算结果是不同的。现结合图3~图5来说明列表数据运算中的三种不同连缀状态。2.3节点开发和节点包生产在dynamo中2.3.1节点的创建过程由于Dynamo内置节点类型毕竟有限,功能随之也受到限制,不可能涉及到任意类型的工程项目BIM模型创建。特别是在创建复杂的空间结构体BIM模型时,除了应用内置节点类型外,还需依据工程的实际特点开发相应的功能型、创建型节点,以满足复杂空间结构体模型的创建及建模精度等要求。在创建不同类型节点的过程中,节点开发均是基于C#(.net)程序语言。通过使用Dynamo导入动态链接库文件(.dll),该DLL类型文件中的类名及静态方法名共同构成节点的名称。DLL文件导入后Dynamo会初始化该文件并生成相应的功能性节点。下述分别以“Geometry.MyPoint”“VectorViewer”(向量观察节点包)、“Point.Bycoordinates”(几何空间点创建节点)为例,讲述节点的创建过程及节点包、节点的组成结构(见图6,图7)。创建Geometry.MyPoint功能性节点的核心源代码如下所示:(1)节点的名称;(2)节点的输入项;(3)节点的输出项;(4)节点数据的连缀状态,不同的连缀状态会影响节点进行列表运算的结果;(5)节点的主体,在此点击鼠标的右键可以对节点的连缀状态、显示预览、预览上游等进行相关设置。图8,图9所示方法是基于文本数据流加Dynamo可视化编程数据流的方式来开发相应功能性节点。PythonScript是Dynamo的内置节点,在节点的创建过程中可以增加多个输入端口,但输出端口只有一个(Output),双击该节点可以进入相应的代码编辑界面,所有的代码编辑均是基于Python这种类型的计算机语言,代码编辑界面如图9所示。通过PythonScript或是CodeBlock节点,可实现可视化数据流编程(Dynamo)和文本数据流编程(Python)相互之间的转化。将参数化设计和计算机算法有机的联系在一起。2.3.2环缝节点创建项目建模过程中,为实现某一特定的功能,将若干个内置的不同类型节点连接并打包,形成自定义节点包,以便在项目中可以被重复调用,无需再次连接相同的节点。自定义节点的结构组成具体以创建盾构管环的环缝节点为例来进行说明,具体如图10所示。上述自定义节点包含有多个输入端口、一个输出端口,接口一般是由CodeBlock来实现。如图10所示,输入端口是由CodeBlock实现,输出端口为Output默认输出端口。创建好自定义节点包的输入及输出端口后,用鼠标框选各连接节点,在菜单栏(Ribbon)中点击“编辑”选项,从下拉列表中选择“从所选项创建节点”,在随后弹出的对话框中添加相应的自定义节点包名称及所属类别即可实现自定义节点包的创建。自定义节点创建完成并发布后,可在类别模块中选取相应节点。3上部结构及梁体特点本节内容以某公路互通匝道桥为例,该匝道桥梁中心线位于曲率半径为2800m的圆曲线上,上部结构为预应力混凝土结构,梁体类型为T梁,单片梁体宽度为2.4m,高度为1.2m,梁跨径组合为(28+28+28+30+25+28)m。同时本节内容主要就参数化T梁族的制作思路进行介绍,至于在族制作过程中如何添加约束、如何建立参数关系等在此不进行详细描述。3.1模型族参数化t参数化T梁族制作思路:将梁体构造图纸进行拆分(T梁拆分为桥面板、肋板、加腋结构、横隔板)—分析梁体结构组成,结构变化处分开建模—确立建模标准(主要包含内容为定位标准、材质标准)—选取自适应公制常规模型族样板—确定模型创建原点—根据各组成部分所处位置添加参照平面—添加尺寸约束—添加类型、实例参数及参数表达式(主要用于梁体横坡、内外边梁翼缘板线形调整等)—绘制截面轮廓(采用参照线绘制,并将参照线与参照平面进行锁定)—创建形状,形成参数化T梁族。所建族实例及参数化设置分别如图11,图12所示。3.2参数化桥墩族构建参数化桥墩族制作思路:将桥墩构造图纸进行拆分(桥墩拆分为垫石、盖梁、墩柱、系梁、承台、桩基)—选取公制结构基础族样板—确定模型创建原点(选取对称中心所在位置)—根据各结构组成部分所处位置添加参照平面—添加尺寸约束—添加类型、实例参数及参数表达式(主要用于盖梁坡度调整)—分别绘制各组成部分的截面轮廓(将轮廓线与各参照平面进行锁定)—采用拉伸命令创建实体,最后通过连接命令形成整体参数化桥墩族。所建族实例如图13所示。3.3桥台族参数化方法参数化桥台族制作思路:将桥台构造图纸进行拆分(桥台拆分为耳墙、台帽、台背、牛腿、倒棱、挡块、垫石、桩基)—分析桥台结构组成—选取公制结构基础族样板—确定模型创建原点(选取对称中心所在位置)—根据各组成部分所处位置添加参照平面—添加尺寸约束—添加类型、实例参数及参数表达式(主要用于台帽、台背横坡调整)—绘制各截面轮廓(将轮廓与参照平面进行锁定)—创建实体,最后通过融合命令形成参数化桥台族。所建参数化族实例如图14所示。4数据处理平台设计在进行程序开发之前,需将项目实体各项信息统计于Excel表中(Excel是基于Microsoft平台,采用其他平台的Excel软件会造成数据无法读取的情况发生),诸如桥墩信息、桥台信息、步跨信息、T梁预制横坡等,方便后期Dynamo进行数据处理,将相应实体布置在实际位置上。另外本节内容主要介绍创建不同结构模块主要程序节点构成,至于模块与模块之间及对应程序各主要节点之间如何衔接在此不做说明。4.1线路组成结构1)线路生成程序主要节点组成。程序基本设计流程:读取Excel数据—数据处理—应用List.GetItemAtIndex节点过滤所需数据—采用Point.ByCoordinates节点生成空间点—应用NurbsCurve.ByPoints节点将点连接生成线—采用PolyCurve.ByJoinedCurves节点将三维空间线类型转换为PolyCurve类型。2)线路校核程序主要节点组成。程序基本设计流程:读取Excel数据—数据处理—应用List.GetItemAtIndex节点过滤所需数据—采用Point.ByCoordinates节点生成空间点—应用NurbsCurve.ByPoints节点将点连接生成线—采用PolyCurve.ByJoinedCurves节点将三维空间线类型转换为PolyCurve类型—应用Curve.Length节点获取投影曲线长度—按照桩号计算投影曲线长度并与上一步所测曲线长度进行比较(做差)—通过if和Boolean节点将比较结果转换为不同的颜色显示。4.2维空间线poitycurves—下部结构布置程序开发程序脚本设计流程将由Civil3D生成的控制点连接成线(采用NurbsCurve.ByControlPoints节点将空间点连接形成三维空间线)—通过PolyCurve.ByJoinedCurves节点将上步生成的三维空间线转换成PolyCurve类型—将转换后的三维空间曲线投影至二维平面上(为XY平面)—按照跨径在曲线上获取相应位置上的点—放置下部结构族—调整下部结构族偏转角度(角度由该点处的切向量与世界坐标系Y轴或是X轴的夹角),使得与实际布置情况保持一致(线路生成及校核程序未在下列列出)。4.3梁体位点编排1)建立放置梁体空间坐标系及梁体放置点位编排程序脚本设计流程。将由Civil3D生成的控制点连接成线(采用NurbsCurve.ByControlPoints节点将空间点连接形成三维空间线)—通过PolyCurve.ByJoinedCurves节点将上步生成的三维空间线转换成PolyCurve类型—将转换后的三维空间曲线投影至二维平面上(为XY平面)—按照梁体跨径在投影曲线上获取相应位置上的桩号点—将上步形成点投影至原三维曲线—以三维曲线上的点为局部坐标系原点建立梁体放置空间坐标系—根据梁体的横向排布特征及横坡参数建立整体桥跨梁体放置空间坐标系—利用节点List.Sublist实现外边梁、中梁、内边梁点位编排。2)创建梁体程序脚本设计流程。放置梁体点位编排程序脚本如前所述,在此不再详述。在梁体点位编排程序脚本基础之上对所布置的各分片梁体进行命名(核心是应用生成字符串相关节点进行命名)—复制梁体类型(应用白马包中的CopyType节点)—采用放置自适应族相关节点AdaptiveComponent.ByPoints进行梁体布置(注意相关连接节点的数据结构必须保持一致)。本实际案例中的T梁族分为“两种类型”:a.未置入直线类型(第一阶段T梁);b.置入直线类型(第二阶段T梁,该种“类型”的T梁主要通过内置直线的端点来实现梁体的空间布置)。3)边梁、中梁梁体类型划分及梁体横坡、梁长、梁端角度调整程序脚本设计流程。继在梁跨整体布置脚本程序的基础之上采用Element.SetParameterByName节点对处于不同位置处的分片梁体所属类型进行划分(外边梁、中梁、内边梁)—采用List相关节点对梁体类型列表数据进行处理—采用Element.SetParameterByName节点对不同分片梁体类型的横坡、梁体长度、梁体梁端角度参数值进行设置。4.4生成实体的编码与编排1)横隔板及湿接缝定位点编排、放置族实例程序设计流程。根据自适应族样板创建8点自适应族(注意编排自适应点的顺序,同时在绘制图形时采用参照线绘制)—按照一定的顺序在参数化的T梁族里面置入模型线(后续程序相应节点会根据依照此线产生的端点按绘制顺序放置自适应族,所以在绘制该类型模型线时需注意绘制的方向和顺序)—采用Element.Curves获取每片梁体中的内置线—应用list相关节点进行数据处理,获得放置自适应族的空间点坐标列表—采用文本数据流选取项目文件中的自适应族类型—应用CopyType节点对梁片进行命名(相关操作节点的数据结构必须保持一致)—应用AdaptiveComponent.ByPoints节点放置自适应族。另外湿接缝定位点编排脚本程序与横隔板定位点编排脚本程序结构一致,可参照湿接缝定位点编排脚本程序进行点位编排和命名。2)放置桥面板、行车道标志线及护栏程序设计流程。通过CodeBlock文本数据流获取项目文件中相应类型族文件—通过世界坐标系(WGS)原点放置族—采用List.Cycle节点生成对应数目的轮廓族—设置相同类型轮廓的空间偏转角度(桥面板、行车道标志线、护栏断面轮廓)—获取组成各构件轮廓的曲线—采用GroupCurves节点对组成各轮廓曲线进行分组,所得每一组曲线均可独立构成闭合曲线—将组成每个闭合轮廓的线进行聚合处理,使得多线组成一个整体的闭合轮廓线(在行车道标志线、护栏断面、桥面板横断面数据处理中应用)—采用CoordinateSysterm.ByOriginVectors节点将生成的闭合轮廓由世界坐标系变换至目标空间坐标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国塑料葡萄行业投资前景及策略咨询研究报告
- 2025至2031年中国VCD机外壳行业投资前景及策略咨询研究报告
- 《贸易术语、价格》课件
- 《控烟监督员培训》课件
- 秘书岗位练习测试卷
- 《钩虫病李》课件
- 2025年大直径硅单晶及抛光片项目合作计划书
- 《森林景观资》课件
- 《酒店产品定价》课件
- 《考研英语介绍》课件
- 中央经济会议2024原文及解释
- 教育培训机构的组织架构与各职位的职责
- 新高考化学2024备考选择题高频热点专项突破16 弱电解质的电离平衡
- 总经理助理培训课件
- 公安校园安全工作培训课件
- 烟草制品购销员(三级)复核理论知识试题
- 固体废弃物管理培训
- 硬件工程师职业生涯规划
- 长相思·其二李白
- 提升管理层领导力的酒店管理培训课程
- 儿科早产儿“一病一品”
评论
0/150
提交评论