朋友问起如何通过Dynamo给车位编号,有一点时间,便将Dynamo车位编号的方法写一下。
编号其实有很多种方法,这里用的是线性编号,就是画一条线,根据线的走向,给车位进行编号。这种方法其实网上一些资料也多次提及,我这里的核心写法参考了台湾欧特克公司的技术经理田宏均先生的一次讲课资料,思路上就是获取Revit中的线,计算车位在线上的最近点,根据线上点的顺序给车位编号。
示例:
Dynamo节点:
要点解析:
1、获取对象——通过类别获得项目中所有停车场类别的族,然后与当前视图的元素进行交集运算,获得视图中的所有停车场类别的族;
2、转化线——将Revit中的样条曲线转换为多段线,直接通过样条曲线取最近点的话很容易出现错误,先转成多段线,通过多段线取最近点;
3、获取最近点——通过Geometry.ClosestPointTo节点计算点在线上的最近点,这里要注意的是要将节点的连缀改为最长;
4、元素排序——将线上的点转换为线上的位置参数,通过位置参数使用SortByKey完成元素排序,排序完后就可以直接输入设定的编号了。