下载app免费领取会员
本文源自微信公众号:华筑建筑科学研究院 作者Bruce
之前有人提出过这样的需求,由于结构柱数量较多,可不可以给模型快速的添加上轴网的定位信息,而且必须在标记参数里面添加定位信息,比如:在轴网1和轴网A附近的柱子标记上“1-A”就行。这个问题用Dynamo可以很快实现!主要分为以下八步:
将横向轴网和纵向轴网分别利用Select Model Elements拾取,再利用Grid.Curve读为Dynamo中的line。分开读取方便利用横纵轴网求取交点。
利用Geometry.Intersect直接求取交点,一定要将连缀改为叉积,然后再用Flatten拍平列表层级,简化列表。
需要把所有结构柱都赋上轴网位置信息,所以直接通过类别选择就可以了,在根据类别把所有结构柱的族实例都读进Dynamo,可以直接通过Categories和All Elements of Category实现。再通过GetLocation把点位数读取出来。
此步骤为整个程序脚本的核心计算。给结构柱赋轴网的标记位置信息无非就是给标记参数添加信息而已,但是一定要添加上对应的信息,所以数据的对应是重中之重。依据结构柱的点数据和轴网交点,要计算出距离最近的一组点,这样才可以将结构柱点位在列表中重新排序。此步骤需要用带外部的节点包Clockwork。(用内置Geometry.ClosestPointTo也可以,个人习惯)
将外部节点包直接复制到图片中的路径中即可。
选用Geometry.ClosestTo直接阶段最近点。
上一步求出了结构柱点位到轴网交点最近位置的排序,再根据这个顺序,利用索引值,排列结构柱族实例的顺序。
利用Element.GetParameterValueByName获取轴网的名称参数信息。
获取轴网的名称参数信息为字符串,利用Code Block中的Design Script语言直接组合成轴网定位信息。要注意的是Code Block中是用Replication代替的连缀,可以分别在竖轴名称和横轴名称后面加上“<1>”,得到想要结果。
08结构柱赋轴网的标记位置信息
最后一步就很简单了,直接通过Element.SetParameterByName就完成定位信息赋值了。
转载请注明来源本文地址:https://www.tuituisoft/bim/26153.html
上一篇:没有了
下一篇:没有了