下载app免费领取会员
本文由网友 〃刪除、過去‖ 投稿分享
经过一段时间的Dynamo学习,在插件授权过期没有续上的时候,决定测试一下自己的学习成果,从土建建模个人觉得比较麻烦的过梁添加进行制作,下面就是应用到的节点详解,希望大家能够对整个布置提出建议,进行优化。
一. 数据处理
1.
在这里先对整体项目进行选中,从中对墙,门,窗进行划分,方便后面进行划分整理,由于墙体需要特殊的节点进行读取,所以对整个构件的族进行处理,同时应用String.AllIndicesOf,String.IndexOf节点进行选取选取。
2.
采用FamilyInstance.GetType节点,对窗体,门数据进行读取
3.
判断宽度,将规范宽度填入,与整个门宽数据进行判断,再利用List.AllIndicesOf与IF语句进行区分,整个逻辑顺序分为上图中进行梁高度H与梁宽度B的判断
4.
将门型号,门宽度和门高度提取,对门宽度和门高度进行数据处理,完成梁线,过梁型号选取的前期准备。
二、
采用数学公式对之前提取的数据进行处理,这一步骤的目的是为了获取梁中心线X,Y坐标与梁顶高度值。
使用Element.GetLocation节点,获取门类型的中心点位置,利用宽度进行两边拓展,利用高度加上过梁高度进行梁高度最终确认,中间使用Point.Add节点进行两侧点计算,之后使用Line.ByStartPointEndPoint进行连接,确定最终梁线。
三、过梁型号与梁线匹配
使用FamilyInstance.GetHost节点进行门归属墙选取,之后通过FamilyType.Name与WallType.ByName节点进行墙体选取和进入能够读取数据状态,通过Element.GetParamaterValueByName与List.AllIndicesOf节点进行分类,将不同墙体厚度进行区分,
这里对墙线向量进行选取是通过将数组拍平,通过List.AllIndicesOf节点进行重新排序,通过固定的排序将所有数据进行重新组织。
通过前面获取的梁线与墙线通过Vector.IsParallel进行判断是否需要进行旋转,
对处于不平行状态的梁线与墙位置进行选取,并通过Vector.angleAboutAxis节点对角度进行读取
再次使用索引命令,将梁线选取,在使用180-角度的方式计算改旋转角度,保证墙体再倾斜状态下能够与墙体保证平行。通过Geometry.Rotate节点进行旋转应用得到与墙体平行位置的梁线,到这一步所有的梁线处理完毕,下一步进行构件的匹配。
三、构件名称匹配
对墙体厚度进行读取按照之前确定的排序顺序,并进行字符串转化,并通过之前根据门宽度确定的梁高度进行归属
通过字符串的处理,得到构件名称(此处构件名称处理太过冗长,希望大家指正),得到构件名称之后,根据前面筛选的平行判断条件选出的梁线进行分别对应
再次使用List,GetItemIndex节点进行排序选取,使梁线对应的构件名称能够正确对应,标高通过Levels进行选择,最后通过StructuralFraming.BeamByCurve节点进行过梁的创建和放置。本次的讲解针对的其中一组数据,剩余的三组数据采用相同的方式进行归类整理,就可以通过Dynamo创建整个项目的门窗过梁。
使用上面方式创建的门过梁,能够在不使用插件的起提下提高自己的工作效率。
本文版权归腿腿教学网及原创作者所有,未经授权,谢绝转载。
下一篇:利用Dynamo进行桩基翻模