基于Revit和Dynamo的参数化楼梯自动设计方法及存储介质与流程

文档序号:33621758发布日期:2023-03-25 12:19阅读:143来源:国知局
基于Revit和Dynamo的参数化楼梯自动设计方法及存储介质与流程
基于revit和dynamo的参数化楼梯自动设计方法及存储介质
技术领域
1.本发明属于建筑信息模型技术领域,具体涉及一种基于revit和dynamo的参数化楼梯自动设计方法及存储介质。


背景技术:

2.目前,随着对bim(building information modeling,建筑信息模型)技术的推广,bim技术得到了快速发展,其中autodesk revit是最主要的建模软件和设计协同平台,可以帮助设计师完成能效更高的建筑设计。
3.传统的楼梯的设计需要根据建筑二维图纸进行平面功能设计,再反馈给多专业进行复核,进行深化设计,整个设计过程繁琐且重复工作量大,设计协同效率低,修改不便。
4.基于revit和dynamo的参数化楼梯自动设计方法是基于revit的可视化编程平台dynamo进行二次开发,通过参数化的形式来对楼梯进行自动设计并完成bim模型创建,且能一定程度实现规范符合性验证。dynamo是基于revit的可视化编程平台,让工程师通过定义程序流程,来探索参数化的方案设计和自动化建模与模型检查工作流。


技术实现要素:

5.本发明的目的在于,提供一种基于revit和dynamo的参数化楼梯自动设计方法及存储介质,用于对楼梯进行高效高质量设计和创建,解决传统的楼梯的设计过程繁琐且重复工作的问题。
6.为实现上述目的,本发明提供了一种基于revit和dynamo的参数化楼梯自动设计方法,包括以下步骤:
7.s1、以楼梯洞口的楼板边缘或者墙、梁边缘作为生成控制线的参数,获取楼梯起步边界、终端边界、起步侧边和终端侧边,定义梯井宽度、平台厚度、楼梯阶数、梯板厚度和梯梁梯柱类型;
8.s2、在dynamo中,根据楼梯起步边界和终端边界确定休息平台和楼层平台的位置及平台长度,再根据梯井宽度确定楼梯梯段宽度,进而确定休息平台和楼层平台的平台宽度,最后结合平台厚度创建实体平台模型;
9.s3、在dynamo中,根据楼梯阶数确定踏步长度和高度,踏步长度和高度不满足要求则重新定义楼梯阶数;根据起步侧边和终端侧边确定楼梯上楼的方向,再根据踏步长度和高度以及梯板厚度生成实体梯段模型;
10.s4、在dynamo中,根据梯梁梯柱类型调用梁、柱族,结合平台位置生成梯梁和梯柱模型;
11.s5、定义创建的dynamo实体模型的类、材质和名字,并导入至revit中完成楼梯的创建。
12.进一步的,利用dynamo中的select edge节点获取楼梯起步边界、终端边界、起步侧边和终端侧边。
13.进一步的,步骤s2具体包括:
14.s201、根据楼梯起步边界和终端边界确定楼梯整体模型的长度、宽度和高度信息;
15.s202、根据整体模型的宽度信息确定休息平台和楼层平台的平台长度,再根据定义的梯井宽度,确定楼梯梯段宽度;根据楼梯梯段宽度确定休息平台和楼层平台的平台宽度;
16.s203、根据楼梯起步边界和终端边界确定楼层平台的位置,根据整体模型的高度信息确定休息平台的位置;将起步边界或终端边界平移至休息平台和楼层平台的位置,采用curve.extrude节点拉伸相应的平台宽度生成平台面,再采用surface.thicken节点根据平台厚度拉伸平台面生成平台。
17.进一步的,判断梯段宽度是否大于1200mm,若是则休息平台和楼层平台的平台宽度取梯段宽度,否则休息平台和楼层平台的平台宽度取1200mm。
18.进一步的,步骤s3具体包括:
19.s301、根据楼梯整体模型的长度以及休息平台和楼层平台的平台宽度确定梯段长度,根据起步侧边和终端侧边确定楼梯上楼的方向,再结合梯段宽度、平台宽度和楼梯起步边界、起步侧边,确定出楼梯下梯段和上梯段的起步线与终端线;
20.s302、确定梯段高度;根据楼梯阶数确定台阶踏步长度和高度,台阶踏步长度和高度不满足要求则重新定义楼梯阶数;采用atan节点得出楼梯坡度命名为θ;
21.s303、根据梯段长度,确定梯段中线;具体为:采用dynamo中的curve.pointatparameter节点创建下梯段起步线中点,再用geometry.translate节点向上楼方向的水平方向平移一个梯段的长度,再采用line.bystartpointendpoint连成线,命名为下梯段中线;用同样的方法创建上梯段中线;
22.s304、根据楼梯阶数和踏步长度创建踏步线;具体为:采用curve.pointatparameter按楼梯宽度和数量分割梯段中线,生成分割点,再用vector.bytwopoints节点创建从下梯段起步线中点到每个分割点的向量,用dynamo的geometry.translate节点平移下梯段起步线,创建出踏步线;
23.s305、采用surface.byloft生成每个踏步面;具体为:采用vector.scale创建每个台阶的高度向量,用curve.extrudeassolid将踏步面向上拉伸创建踏步体;
24.s306、判断梯板厚度h是否满足承载力要求,不满足则重新设置;
25.s307、根据梯板厚度创建梯段下表面;
26.s308、用dynamo中的geometry.split节点用梯段下表面切割踏步体,留下上部阶梯部分,梯段创建完成。
27.进一步的,步骤s301具体为:
28.采用dynamo中的curve.pointatparameter节点生成楼梯起步边界和起步侧边的交点,采用geometry.translate节点将该点向梯井方向平移一个梯段宽度的距离,采用line.bystartpointendpoint.连成线,将该线向上楼方向的水平方向平移一个楼层平台宽度的距离,将平移后得到的线命名为下梯段起步线;用geometry.translate节点将下梯段起步线向休息平台处平移一个梯段长度的距离和特定比例高度(按楼梯类型确定),命名为下梯段终端线;用同样的方法生成上梯段起步线和终端线。
29.进一步的,步骤s307具体为:
30.采用dynamo中的curve.pointatparameter节点创建下梯段终端线中点,用geometry.translate节点将下梯段终端线中点向下平移h/cosθ的长度;用geometry.translate节点将下梯段起步线中点向上楼方向平移h/sinθ的长度,用line.bystartpointendpoint连成线,再将平移得到的两点连成线,采用list create节点将两段线合在一个列表里,采用polycurve.byjoinedcurves将多根线物件组合成一根二维平面多段线,命名为下梯段下表面中线;采用同样的方法创建上梯段下表面中线;
31.再用surface.bysweep将下梯段起步线沿下梯段下表面中线创建下梯段下表面;采用同样的方法创建上梯段下表面。
32.进一步的,步骤s4具体为:
33.s401、采用dynamo中的surface.perimetercurves节点获取平台面的轮廓线,采用polycurve.byjoinedcurves节点将多根线物件组合成一根封闭二维平面多段线,采用dynamo的curve.offset节点将平台轮廓线向外偏移一半梯梁宽度的距离,命名为梯梁中线,再采用dynamo中的structuralframing.beambycurve调用梁族,沿线生成梯梁;
34.s402、采用dynamo中的curve.startpoint和curve.endpoint获取平台面角点,向下平移平台高度的距离,采用line.bystartpointendpoint连成线,命名为梯柱中线,再采用structuralframing.columnbycurve调用定义的柱族,生成梯柱。
35.进一步的,通过dynanmo软件的创建自定义节点功能在dynamo软件中实现步骤s1至s4的所有节点整合成具有输入输出端的自定义节点;将节点放入dynamo软件节点包路径下,构成常用楼梯自动创建和设计节点包。
36.一种计算机可读存储介质,计算机可读存储介质中存储有程序代码,其中,在程序代码运行时执行上述的基于revit和dynamo的参数化楼梯自动设计方法。
37.本发明与现有技术相比,具有以下优点及有益效果:
38.1、本发明是基于revit和dynamo的参数化楼梯自动设计方法,通过对revit和dynamo进行二次开发创建模型,准备楼梯洞口的起步边界、终端边界、起步侧边和终端侧边,设置楼梯梯井宽度、平台厚度、楼梯阶数、梯梁梯柱类型和梯板厚度几项数据数值与基础平面线,实现了对参数化楼梯进行高效设计和创建。
39.2、本发明在revit与可视化编程软件dynamo上操作,具有良好的可视化效果,修改方便,提高了工作效率。
40.3、本发明创建的参数化楼梯模型实现了对每个细节参数精确可控,模型类型、材质等参数读取、修改便捷,为后续设计、施工提供了良好的bim信息模型。
附图说明
41.图1是本发明实施例的楼梯自动设计方法流程图;
42.图2是本发明实施例的楼梯边缘线示意图;
43.图3是本发明实施例的楼梯及平台示意图;
44.图4是本发明实施例的dynamo生成的模型控制线;
45.图5是本发明实施例的dynamo流程图;
46.图6是本发明实施例的dynamo+revit创建的楼梯模型示意图。
47.图中:11-起步边界,12-终端边界,13-起步侧边,14-终端侧边。
具体实施方式
48.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互组合。
49.本发明的基于revit和dynamo的参数化楼梯自动设计方法,包括以下步骤:
50.s1:以楼梯洞口的楼板边缘或者墙、梁边缘作为生成控制线的参数,拾取楼梯起步边界、终端边界、起步侧边和终端侧边,定义梯井宽度、平台厚度、楼梯阶数、梯梁梯柱类型和梯板厚度;
51.s2:在dynamo中,根据楼梯起步边界和终端边界确定休息平台和楼层平台的位置,确定楼梯梯段宽度,确定平台宽度,设计并创建实体平台模型;
52.s3:在dynamo中,根据楼梯起步边界和终端边界确定楼梯上楼方向,已确定平台位置和尺寸,可以确定楼梯梯段跨度,根据定义的踏步数,可以得出踏步长度和高度,踏步高度和长度需满足规范要求,不满足可重新设置阶数,板厚需满足承载力要求,不满足可重新设置,根据踏步长度和宽度以及梯板厚度可完成梯段的设计,并生成实体梯段模型;
53.s4:在dynamo中,根据平台位置调用梁、柱族,进行梯梁和梯柱设计;
54.s5:定义创建的dynamo实体模型的类、材质和名字,并导入至revit中完成楼梯的创建。
55.参见图1,本实施例层高为4.5m,适合采用双跑楼梯。本发明实施例的基于revit和dynamo的参数化楼梯自动设计方法,包括以下步骤:
56.s1:以楼梯洞口的楼板边缘或者墙、梁边缘作为生成控制线的参数,参见图2。用dynamo中的select edge节点获取楼梯边缘线的楼梯起步边界11、终端边界12、起步侧边13和终端侧边14。梯井宽度、平台厚度、楼梯阶数和梯板厚度四项数据为根据楼梯边缘线生成其他控制线提供参数控制。梯梁、梯柱类型可根据工程实际情况选择。
57.s2:在dynamo中,根据楼梯起步边界和终端边界确定休息平台和楼层平台的位置,确定楼梯梯段宽度,确定平台宽度,设计并创建实体平台模型。具体步骤为:
58.s201:根据起步边界和终端边界,通过dynamo中的curve.length可以确定楼梯整体模型的长度、宽度和高度信息,根据起步侧边13和终端侧边14,通过vector.bytwopoints确定楼梯上楼的方向。
59.s202:根据拾取的起步边界和定义的梯井宽度,可以确定楼梯的梯段宽度。根据规范《楼梯栏杆栏板(一)》j403-1-2015[s]规定,楼梯平台的宽度不小于1200mm,且不小于梯段宽度。具体步骤为:采用dynamo中的if节点,判断梯段宽度是否大于1200mm,如果大于则楼梯平台取梯段宽度,如果不大于则平台宽度取1200mm。如图3所示,平台长度即为起步边界和终端边界的长度。
[0060]
s203:根据s202计算的平台宽度创建平台。具体步骤为:楼梯起步边界和终端边界之间的高差可以确定楼梯高度,采用dynamo中的geometry.translate节点将起步侧边线平移到终端边界下休息平台的位置,本项目为楼梯高度一半的位置,采用curve.extrude节点拉伸相应的平台宽度生成休息平台面,再采用surface.thicken节点拉伸之前定义的平台厚度生成休息平台。将起步边界向上平移到终端边界的高度,重复以上步骤生成楼梯的楼
层平台。
[0061]
s3:在dynamo中,根据楼梯起步边界和终端边界确定楼梯上楼方向,已确定平台位置和尺寸,可以确定楼梯梯段跨度,根据定义的踏步数,可以得出踏步长度和高度,踏步高度和长度需满足规范要求,不满足可重新设置阶数,板厚需满足承载力要求,不满足可重新设置,根据踏步长度和宽度以及梯板厚度可完成梯段的设计,并生成实体梯段模型。具体步骤为:
[0062]
s301:根据梯段宽度、平台宽度和楼梯起步边界、起步侧边,可以确定出楼梯下梯段和上梯段的起步、终端线。具体步骤为:采用dynamo中的curve.pointatparameter节点生成楼梯起步边界和起步侧边的交点,用geometry.translate节点将该点向梯井方向平移一个梯段的距离,用line.bystartpointendpoint.连成线,将该线向上楼方向的水平方向平移一个楼层平台宽度的距离,将平移后得到的线命名为下梯段起步线,参见图4的控制线1,用geometry.translate节点将下梯段起步线向休息平台处平移一个梯段长度的距离和楼梯高度的一半,命名为下梯段终端线,见图4的控制线2。用同样的方法生成上梯段起步线和终端线,分别参见图4的控制线3和控制线4。
[0063]
s302:已知梯段高度,自定义楼梯阶数,可得楼梯踏步高度和长度,台阶踏步高度和长度和楼梯坡度需满足《民用建筑设计统一标准》gb 50352-2019[s].2019.的6.8.10条要求,不满足可重新设置台阶阶数。采用atan节点可以得出楼梯坡度命名为θ。
[0064]
s303:根据梯段长度,即可确定梯段中线。具体步骤为:采用dynamo中的curve.pointatparameter节点创建下梯段起步线中点,再用geometry.translate节点向上楼方向的水平投影平移一个梯段的长度,再采用line.bystartpointendpoint连成线,命名为下梯段中线,参见图4的控制线5,用同样的方法创建上梯段中线,参见图4的控制线6。
[0065]
s304:已知楼梯阶数和踏步长度,可根据阶数创建踏步线。具体步骤为:采用curve.pointatparameter按楼梯宽度和数量分割梯段中线,生成分割点,再用vector.bytwopoints节点创建从下梯段起步线中点到每个分割点的向量,用dynamo的geometry.translate节点平移下梯段起步线,创建出踏步线。
[0066]
s305:采用surface.byloft生成每个踏步面。用vector.scale创建每个台阶的高度向量,用curve.extrudeassolid将踏步面向上拉伸创建踏步体。
[0067]
s306:自定义梯板厚度h,梯板厚度需满足承载力要求,不满足可重新设置。
[0068]
s307:根据梯板厚度可以创建梯段下表面。具体步骤为:采用dynamo中的curve.pointatparameter节点创建下梯段终端线中点,用geometry.translate节点将下梯段终端线中点向下平移h/cosθ的长度。用geometry.translate节点将下梯段起步线中点向上楼方向平移h/sinθ的长度,用line.bystartpointendpoint连成线,再将平移得到的两点连成线,采用list create节点将两段线合在一个列表里,采用polycurve.byjoinedcurves将多根线物件组合成一根二维平面多段线,命名为下梯段下表面中线,参见图4控制线7,采用同样的方法创建上梯段下表面中线,参见图4控制线8。再用surface.bysweep将下梯段起步线沿下梯段下表面中线创建下梯段下表面。采用同样的方法创建上梯段下表面。
[0069]
s308:用dynamo中的geometry.split节点用梯段下表面切割踏步体,留下上部阶梯部分,梯段创建完成。
[0070]
s4:在dynamo中,根据平台位置调用梁、柱族,进行梯梁和梯柱设计。具体步骤为:
[0071]
s401:用dynamo中的surface.perimetercurves节点获取平台面的轮廓线,采用polycurve.byjoinedcurves节点将多根线物件组合成一根封闭二维平面多段线,采用dynamo的curve.offset节点将平台轮廓线向外偏移一半梯梁宽度的距离,命名为梯梁中线,再采用dynamo中的structuralframing.beambycurve调用梁族,沿线生成梯梁;
[0072]
s402:dynamo中的curve.startpoint和curve.endpoint获取平台面角点,向下平移一半楼梯高度的距离,采用line.bystartpointendpoint连成线,命名为梯柱中线,再采用structuralframing.columnbycurve调用定义的柱族,生成梯柱。dynamo部分的脚本编写完成,参见图5。
[0073]
s5:通过dynanmo软件的“创建自定义节点”功能在dynamo软件中实现s1至s4的所有节点整合成具有输入输出端的自定义节点。将节点放入dynamo软件节点包路径下,即可构成常用楼梯自动创建和设计节点包。
[0074]
s6:利用dynamo中springs.familyinstance.bygeometry定义创建的dynamo实体模型的类、材质和名字,并导入至revit中完成楼梯的创建,完成楼梯的创建,参见图6。
[0075]
本发明还提供一种计算机可读存储介质,计算机可读存储介质中存储有程序代码,其中,在程序代码运行时执行上述的基于revit和dynamo的参数化楼梯自动设计方法。
[0076]
综上所述,本发明提供了基于revit和dynamo的参数化楼梯自动设计方法及存储介质,按照楼梯的设计逻辑进行dynamo脚本编写,拾取楼板边界(墙、梁边界)为楼梯起步边界、终端边界、起步侧边和终端侧边,可自行调整梯井宽度、平台厚度、楼梯阶数、梯梁梯柱类型和梯板厚度,实现了楼梯结构高效自动设计和建模的功能。本发明在revit与可视化编程软件dynamo上操作,具有良好的可视化效果,修改方便,提高了工作效率。本发明创建的参数化楼梯结构模型实现了细节参数精确可控,为后续设计提供了良好的bim信息模型。
[0077]
需要指出,根据实施的需要,可将本技术中描述的各个步骤/部件拆分为更多步骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件,以实现本发明的目的。
[0078]
本领域的技术人员容易理解,以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1