本发明属于bim桥梁技术领域,具体是一种采用dynamo创建桥梁预应力管道模型的方法。
背景技术:
现浇预应力桥梁中的预应力管道又称波纹管,其压浆密实性好坏对桥梁的耐久性具有重要影响,据统计,由于压浆不密实导致预应力管道内钢绞线锈蚀,预应力提前丧失,可造成桥梁实际寿命缩短至设计寿命的十分之一,截止到2002年,各种桥梁总和约有28万座,其中,危桥约有9597座,它们平均开始出现问题的年限是7年,在工程中,预应力管道的正确定位、避免与钢筋及预埋件碰撞和挤压都能很大程度上消除预应力管道在施工过程中的质量缺陷,避免预应力管道内钢绞线锈蚀而导致的预应力提前丧失;
然而,现有技术难以快速、精准地创建桥梁预应力管道模型,导致施工难度大,施工质量存在缺陷,同时现有技术创建桥梁预应力管道模型过程繁琐,模型创建速率慢,模型创建出错的概率高,而且现有技术难以适用于各种类型现浇梁预应力管道模型的创建,可拓展性低,可推广性弱。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种采用dynamo创建桥梁预应力管道模型的方法。
为实现上述目的,本发明采用了如下技术方案:
一种采用dynamo创建桥梁预应力管道模型的方法,包括以下步骤:
创建dynamo环境下的桥梁设计线;
基于设计线创建密集空间坐标系;
基于桥梁横坡调整空间坐标系;
创建预应力管道平面大样图revit族;
创建预应力管道立面大样图revit族;
dynamo执行分解,计算点x、y、z坐标值;
基于所述空间坐标系创建密集的三维空间点;
基于所述密集的三维空间点,创建预应力管道中心线;
基于所述预应力管道中心线创建预应力管道。
优选的,所述创建dynamo环境下的桥梁设计线包括:
在revit环境中,通过dynamo程序,读取数据或三维设计线元素,将其转换为dynamo环境中的空间曲线,其中转化的步骤是生成nurbscurve,再转换为polycurve,作为dynamo环境下的桥梁设计线,记录桥梁设计线的起点桩号。
优选的,所述基于设计线创建密集空间坐标系包括:
在dynamo环境中,将桥梁设计线向xy平面投影,形成桥梁平面设计线;
通过需要创建预应力管道模型所在的一联现浇梁的图纸信息,记录该联现浇梁中预应力管道的管道起始桩号、管道结束桩号,根据管道桩号差,确定要等分的数量,作为计算程序的数据输入端;
在管道起始桩号和管道结束桩号之间,基于等分数量进行划分,形成等差桩号列表,通过等差桩号列表中每一项桩号减去起点桩号,得到相对桩号列表,根据相对桩号列表在桥梁平面设计线上取对应桩号点,将桩号点沿竖直向上投影到桥梁设计线上,形成对应的三维空间点;
取所述三维空间点为原点,取所述三维空间点在桥梁设计线的切向量的相反向量为z轴,取垂直z轴且沿竖直向上方向的空间向量为y轴,建立一组dynamo环境下的密集空间坐标系列表,列表成员数量与等分数量一致。
优选的,所述基于桥梁横坡调整空间坐标系包括:
通过桥梁设计图纸,记录桥面在管道起始桩号和管道结束桩号,以及管道起始桩号和管道结束桩号之间的横坡变坡点桩号及横坡值,通过计算得到相对桩号列表中每一处桩号对应的横坡值列表,将所述密集空间坐标系列表中每一项空间坐标系,绕本坐标系z轴,逆时针旋转atan(横坡值)角度,形成最终空间坐标系列表,列表成员数量与等分数量一致。
优选的,所述创建预应力管道平面大样图revit族包括:
以revit公制常规模型族样板新建族,基于参照标高平面,将中心(左/右)轴定义为管道起始桩号的基准线,向右方向为桩号递增方向,将中心(前/后)轴定义为对应现浇梁平面图中的设计中心线,竖直向上方向偏离值对应左偏距,竖直向下方向偏离值对应右偏距,基于模型线,自左向右连续绘制线段,使得模型线在任意桩号处相对于中心(前/后)轴的距离与该桩号处预应力管道中心的偏距一致,完成后保存为族,完成预应力管道平面大样图族文件的创建。
优选的,所述创建预应力管道立面大样图revit族包括:
以revit公制常规模型族样板新建族,基于参照标高平面,将中心(左/右)轴定义为管道起始桩号的基准线,向右方向为桩号递增方向,将中心(前/后)轴定义为对应现浇梁立面设计中心线,即设计高程基准,竖直向上方向偏离值对应超出桥面的高程差,竖直向下方向偏离值对应低于桥面的高程差,基于模型线,自左向右连续绘制线段,使得模型线在任意桩号处相对于中心(前/后)轴的距离与该桩号处预应力管道中心到设计高程的高程差一致,完成后保存为族,完成预应力管道立面大样图族文件的创建。
优选的,所述dynamo执行分解,计算点x、y、z坐标值包括:
通过dynamo程序,基于对应关系,对所述预应力管道平面大样图进行分解,计算出在权利要求4所述的最终空间坐标系列表中每一项空间坐标系的xy平面上的点的x坐标值x1、x2、x3..xs;对所述预应力管道立面大样图进行分解,计算出在所有最终空间坐标系中xy平面上的点的y坐标值y1、y2、y3..ys;所有最终空间坐标系中xy平面上的点的z坐标值始终为0;
所述对应关系为:在所述最终空间坐标系上,px点的x坐标值xx与pm点x坐标值xm存在关系:xx=xm,px点的y坐标值yx与pn点y坐标值yn存在关系:yx=yn,px点的z坐标zx=0,其中px点为预应力管道中心线在最终空间坐标系中xy平面上的点,pm点为px点在最终空间坐标系中xz平面上的投影,pn点为px点在最终空间坐标系中yz平面上的投影。
优选的,所述基于所述空间坐标系创建密集的三维空间点包括:
通过dynamo程序,基于所述最终空间坐标系,在每一项最终空间坐标系上输入对应x坐标值x1、x2、x3..xs,以及对应的y坐标值y1、y2、y3..ys,建立点(x1,y1,0)、(x2,y2,0)、(x3,y3,0)..(xs,ys,0),完成预应力管道中心线上密集的三维空间点的创建。
优选的,基于所述密集的三维空间点,创建预应力管道中心线包括:
通过dynamo程序,基于所述密集的三维空间点,通过nurbscurve.bypoints节点生成空间曲线,再通过polycurve.byjoinedcurves节点将空间曲线转化为polycurve,完成预应力管道中心线的创建。
优选的,所述基于所述预应力管道中心线创建预应力管道包括:
编制dynamo程序,通过curve.planeatparameter节点为预应力管道中心线创建参数param为0的平面,在该平面上通过circle.byplaneradius节点创建半径为预应力管道半径的圆,通过curve.sweepassolid节点,使得该圆沿预应力管道中心线进行放样融合,生成预应力管道形状;
增加pythonscript节点,编写节点内python程序,调用revit的api接口函数,将dynamo中的预应力管道形状转化为revit环境下的族,选用常规模型族样板,对该revit族进行命名,完成最终桥梁预应力管道模型的创建。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
本发明提供了一种创新的方法,结合revit与dynamo,实现了现浇梁中预应力管道模型的快速、精准创建,为bim桥梁领域在预应力管道等空间线性异形结构模型的创建做了一次创新和突破;
本发明将空间异形的预应力管道模型简化为预应力管道中心线平面大样图及预应力管道中心线立面大样图的创建,及基本工程识图的基本工作,降低了出错的概率,创建思路清晰,提高了预应力管道模型的创建速率,具备显著的高效性;
本发明原创的dynamo编程成果及思路,广泛适用于各种类型现浇梁预应力管道模型的创建,通用于各版本的revit软件及dynamo插件,并且基于桥隧工程形体相似的特点,本发明具有很高的可拓展性,可推广性强。
附图说明
图1本发明的流程图;
图2本发明的预应力管道平面大样图revit族示意图;
图3本发明的预应力管道立面大样图revit族示意图;
图4本发明的预应力管道中心线点坐标对应图;
图5本发明优选实施例中的现浇箱梁revit模型示意图;
图6本发明优选实施例中的桥梁设计线创建过程示意图;
图7本发明优选实施例中的空间坐标系创建程序示意图;
图8本发明优选实施例中的空间坐标系生成结果示意图;
图9本发明优选实施例中的基于桥梁横坡调整空间坐标系示意图;
图10本发明优选实施例中的r-n3平面大样图示意图;
图11本发明优选实施例中的r-n3立面大样图示意图;
图12本发明优选实施例中的dynamo坐标值分解结果示意图;
图13本发明优选实施例中的三维坐标点创建示意图;
图14本发明优选实施例中的预应力管道族的创建示意图;
图15本发明优选实施例中的完成所有预应力管道族的创建示意图。
具体实施方式
以下结合附图1-15,进一步说明本发明一种采用dynamo创建桥梁预应力管道模型的方法的具体实施方式。本发明一种采用dynamo创建桥梁预应力管道模型的方法不限于以下实施例的描述。
实施例1:
本实施例给出一种采用dynamo创建桥梁预应力管道模型的方法的具体结构,如图1-4所示,包括以下步骤:
创建dynamo环境下的桥梁设计线;
基于设计线创建密集空间坐标系;
基于桥梁横坡调整空间坐标系;
创建预应力管道平面大样图revit族;
创建预应力管道立面大样图revit族;
dynamo执行分解,计算点x、y、z坐标值;
基于空间坐标系创建密集的三维空间点;
基于密集的三维空间点,创建预应力管道中心线;
基于预应力管道中心线创建预应力管道。
具体地,创建dynamo环境下的桥梁设计线包括:
在revit环境中,通过dynamo程序,读取数据或三维设计线元素,将其转换为dynamo环境中的空间曲线,其中转化的步骤是生成nurbscurve,再转换为polycurve,作为dynamo环境下的桥梁设计线,记录桥梁设计线的起点桩号。
具体地,基于设计线创建密集空间坐标系包括:
在dynamo环境中,将桥梁设计线向xy平面投影,形成桥梁平面设计线;
通过需要创建预应力管道模型所在的一联现浇梁的图纸信息,记录该联现浇梁中预应力管道的管道起始桩号、管道结束桩号,根据管道桩号差,确定要等分的数量,作为计算程序的数据输入端;
在管道起始桩号和管道结束桩号之间,基于等分数量进行划分,形成等差桩号列表,通过等差桩号列表中每一项桩号减去起点桩号,得到相对桩号列表,根据相对桩号列表在桥梁平面设计线上取对应桩号点,将桩号点沿竖直向上投影到桥梁设计线上,形成对应的三维空间点;
取三维空间点为原点,取三维空间点在桥梁设计线的切向量的相反向量为z轴,取垂直z轴且沿竖直向上方向的空间向量为y轴,建立一组dynamo环境下的密集空间坐标系列表,列表成员数量与等分数量一致。
具体地,基于桥梁横坡调整空间坐标系包括:
基于桥梁横坡调整空间坐标系包括:
通过桥梁设计图纸,记录桥面在管道起始桩号和管道结束桩号,以及管道起始桩号和管道结束桩号之间的横坡变坡点桩号及横坡值,通过计算得到相对桩号列表中每一处桩号对应的横坡值列表,将密集空间坐标系列表中每一项空间坐标系,绕本坐标系z轴,逆时针旋转atan(横坡值)角度,形成最终空间坐标系列表,列表成员数量与等分数量一致。
具体地,创建预应力管道平面大样图revit族包括:
以revit公制常规模型族样板新建族,基于参照标高平面,将中心(左/右)轴定义为管道起始桩号的基准线,向右方向为桩号递增方向,将中心(前/后)轴定义为对应现浇梁平面图中的设计中心线,竖直向上方向偏离值对应左偏距,竖直向下方向偏离值对应右偏距,基于模型线,自左向右连续绘制线段,使得模型线在任意桩号处相对于中心(前/后)轴的距离与该桩号处预应力管道中心的偏距一致,完成后保存为族,完成预应力管道平面大样图族文件的创建。
具体地,创建预应力管道立面大样图revit族包括:
以revit公制常规模型族样板新建族,基于参照标高平面,将中心(左/右)轴定义为管道起始桩号的基准线,向右方向为桩号递增方向,将中心(前/后)轴定义为对应现浇梁立面设计中心线,即设计高程基准,竖直向上方向偏离值对应超出桥面的高程差,竖直向下方向偏离值对应低于桥面的高程差,基于模型线,自左向右连续绘制线段,使得模型线在任意桩号处相对于中心(前/后)轴的距离与该桩号处预应力管道中心到设计高程的高程差一致,完成后保存为族,完成预应力管道立面大样图族文件的创建。
进一步的,dynamo执行分解,计算点x、y、z坐标值包括:
通过dynamo程序,基于对应关系,对预应力管道平面大样图进行分解,计算出在权利要求4的最终空间坐标系列表中每一项空间坐标系的xy平面上的点的x坐标值x1、x2、x3..xs;对预应力管道立面大样图进行分解,计算出在所有最终空间坐标系中xy平面上的点的y坐标值y1、y2、y3..ys;所有最终空间坐标系中xy平面上的点的z坐标值始终为0;
对应关系为:在最终空间坐标系上,px点的x坐标值xx与pm点x坐标值xm存在关系:xx=xm,px点的y坐标值yx与pn点y坐标值yn存在关系:yx=yn,px点的z坐标zx=0,其中px点为预应力管道中心线在最终空间坐标系中xy平面上的点,pm点为px点在最终空间坐标系中xz平面上的投影,pn点为px点在最终空间坐标系中yz平面上的投影。
进一步的,基于最终空间坐标系创建密集的三维空间点包括:
通过dynamo程序,基于最终空间坐标系,在每一项最终空间坐标系上输入对应x坐标值x1、x2、x3..xs,以及对应的y坐标值y1、y2、y3..ys,建立点(x1,y1,0)、(x2,y2,0)、(x3,y3,0)..(xs,ys,0),完成预应力管道中心线上密集的三维空间点的创建。
进一步的,基于密集的三维空间点,创建预应力管道中心线包括:
通过dynamo程序,基于密集的三维空间点,通过nurbscurve.bypoints节点生成空间曲线,再通过polycurve.byjoinedcurves节点将空间曲线转化为polycurve,完成预应力管道中心线的创建。
进一步的,基于预应力管道中心线创建预应力管道包括:
基于预应力管道中心线创建预应力管道包括:
编制dynamo程序,通过curve.planeatparameter节点为预应力管道中心线创建参数param为0的平面,在该平面上通过circle.byplaneradius节点创建半径为预应力管道半径的圆,通过curve.sweepassolid节点,使得该圆沿预应力管道中心线进行放样融合,生成预应力管道形状;
增加pythonscript节点,编写节点内python程序,调用revit的api接口函数,将dynamo中的预应力管道形状转化为revit环境下的族,选用常规模型族样板,对该revit族进行命名,完成最终桥梁预应力管道模型的创建。
通过采用上述技术方案:
首先,本发明提供了一种创新的方法,结合revit与dynamo,实现了现浇梁中预应力管道模型的快速、精准创建,为bim桥梁领域在预应力管道等空间线性异形结构模型的创建做了一次创新和突破;
其次,本发明将空间异形的预应力管道模型简化为预应力管道中心线平面大样图及预应力管道中心线立面大样图的创建,及基本工程识图的基本工作,降低了出错的概率,创建思路清晰,提高了预应力管道模型的创建速率,具备显著的高效性;
最后,本发明原创的dynamo编程成果及思路,广泛适用于各种类型现浇梁预应力管道模型的创建,通用于各版本的revit软件及dynamo插件,并且基于桥隧工程形体相似的特点,本发明具有很高的可拓展性,可推广性极强。
实施例2:
本实例为某工程f匝道桥梁第3联现浇箱梁内的预应力管道模型创建,现浇梁类型为一箱双室现浇箱梁,桥面加宽不均匀变化。左、中、右腹板各三道预应力管道,共计9道预应力管道,打开revit桥梁模型,为提高观察效果,将f匝道桥梁第3联现浇箱梁以外的模型进行隐藏,现浇箱梁平面图及现浇箱梁模型如图5所示。
步骤一、如图6所示,依据桥梁逐桩坐标表excel表格,编制dynamo程序,dynamo程序由excel文件路径、excel表格数据读取、桥梁设计线三部分组成,excel文件路径模块读取逐桩坐标表excel表格文件路径;excel表格数据读取则读取文件路径excel表格的数据;桥梁设计线为dynamo软件中的pythonscript节点,编写python程序创建桥梁设计线,桥梁设计线是dynamo环境中的polycurve空间曲线,桥梁设计线的起点桩号为232.09。
步骤二、创建密集空间坐标系:
如图7所示,在dynamo环境中,基于上述程序计算得到的桥梁设计线,编制dynamo空间坐标系创建程序,主要分为桥梁平面设计线、数据输入、平面设计线桩号点、三维空间点、coordinatesystem五部分。其中,桥梁平面设计线部分节点,将桥梁设计线投影到水平二维平面,形成桥梁平面设计线;数据输入则需填入该联现浇梁中预应力管道的起始桩号stationa、结束桩号stationb以及要等分的数量s,分别为481.174、601.654和100;平面设计线桩号点部分则将根据平面设计线及数据输入内的数据创建平面桩号点,平面桩号点,自桩号481.174至桩号601.654沿平面设计线均匀分布,共100个点;三维空间点实现将平面桩号点沿竖直向上方向投影到桥梁设计线上,形成三维空间点;最后coordinatesystem部分,在pythonscript节点内编程程序,以三维空间点为原点,以三维空间点在桥梁设计线上的切向量的相反向量为z轴,以垂直x轴且沿竖直向上方向的向量为y轴,建立空间坐标系,完成coordinatesystem的创建,结果如图8所示。
步骤三、查询图纸,获悉该联现浇梁所在区段内桥梁设计横坡均为2%,用codeblock代码框编写代码0.02..#100..0创建数列数量为100,即100项0.02组成的数列,在coordinatesystem的基础上,在pythonscript节点内,通过几何运算,计算横坡对应的角度值:atan(0.02),将coordinatesystem坐标系沿其z轴逆时针旋转atan(0.02)度,如图9所示,形成根据横坡进行调整的新坐标系newcoordinatesystem。
步骤四、新建revit族公制常规模型族,进入参照标高平面,为该联现浇梁右腹板n3预应力管道创建平面大样图,参照中心(左/右)轴为桩号480.174,向右递增,右腹板n3预应力管道在中心线右侧,则对应将其绘制在中心(前/后)轴下方,对照桥梁设计图纸,确保每一桩号处于中心(前/后)轴的距离与右偏距一致,如图10所示,保存该族,命名为平样r-n3,并载入到revit桥梁模型项目中。
步骤五、新建revit族公制常规模型族,进入参照标高平面,为联现浇梁右腹板n3预应力管道创建立面大样图,参照中心(左/右)轴为桩号480.174,向右递增,右腹板n3预应力管道在桥面高程以下,则对应将其绘制在中心(前/后)轴下方,对照桥梁设计图纸,确保每一桩号处于中心(前/后)轴的距离与设计高程差一致,如图11所示,保存改族,命名为立样r-n3,并载入到revit桥梁模型项目中。
步骤六、通过dynamo对平面、立面大样图执行分解,获取分向坐标值:编制程序,基于步骤四、步骤五中的平样r-n3、立样r-n3族类型,实现在revit项目的基点处创建族实例,再转化为dynamo环境下的曲线平样r-n3曲线、立样r-n3曲线,参考dynamo世界坐标系yz平面处作为480.174桩号平面,均匀向右移动99次,每次移动距离为(601.654-480.174)/99米的距离;将世界坐标系yz平面与移动产生的平面,一共100个平面,以该100个平面逐一去和平样r-n3曲线做布尔运算,获得几何交集,即100个交点,获取交点的y坐标值的相反数作为三维空间点的x坐标值;以该100个平面逐一去和立样r-n3曲线做布尔运算,获得几何交集,即100个交点,获取交点的y坐标值作为三维空间点的y坐标值;以0作为所有三维空间点的z坐标值,如图12所示。
步骤七、基于步骤三获得的新空间坐标系newcoordinatesystem上,通过三维空间点的x、y、z坐标值,使用point.bycartesiancoordinates节点创建三维空间点。
步骤八、基于三维空间点,通过nurbscurve.bypoints节点生成空间曲线,在通过polycurve.byjoinedcurves节点将空间曲线转化为polycurve,完成预应力管道中心线的创建。
步骤九、编制dynamo程序,如图14所示,通过curve.planeatparameter节点为预应力管道中心线创建参数param为0的平面,即在预应力管道中心线起点处的法平面,在该平面上通过circle.byplaneradius节点创建半径为预应力管道半径的圆,最后通过curve.sweepassolid节点,实现该圆沿预应力管道中心线进行放样融合,生成预应力管道形状。
最后,编写pythonscript程序,调用revit的api接口函数,基于预应力管道形状,引用revit自带的公制常规模型族样板文件路径,用codeblock输入字符预应力管道r-n3作为新建族的名称,完成联现浇箱梁右腹板n3预应力管道模型的创建。
应用同样的方法,为现浇箱梁创建左、中、右腹板剩余8到2预应力管道模型,生成最终模型,如图15所示。
工作原理:
首先,使用revit创建预应力管道中心线平面大样图和预应力管道中心线立面大样图的图形元素,然后,基于预应力管道中心线在基于桥梁设计线立面上的投影为预应力管道立面大样图revit族,预应力管道中心线在平面上的投影为预应力管道平面大样图revit族的原理,结合dynamo程序进行空间几何运算,将桥梁三维设计和预应力管道的平面、立面设计结合到一起,最后,完成空间异形预应力管道模型的创建。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。