Dynamo For Revit:房间编号
前言
画一条线,然后沿着这条线来对房间进行编号。(前同事也做过类似的操作,好久不见,写个脚本做个纪念。)
房间编号效果
在这个例子里面采用了样条曲线,实际上多段线或者其它类型的线应该也是没有问题的。这个例子的关键点在于如何对房间从近到远进行排序,虽然从肉眼一下子就能看到房间的位置和顺序,但是对于计算机来说,它是不知道这些信息的,需要你来告诉它。
Dynamo 脚本逻辑
要完成这个功能:
- 选择一条线(需用户手绘)
- 对房间进行过滤(通过类别,楼层和面积)
- 输入曲线和房间的几何图形求交,然后按照距离由近到远进行排序
- 对房间由近到远进行编号
选择一条线
这条线需用户手绘。
对房间进行过滤
通过类别,楼层和面积来对房间进行过滤,将不可见的和不符合条件的房间过滤掉。
几何求交、排序
输入曲线和房间的几何图形求交,然后按照距离由近到远进行排序。
对房间由近到远进行编号
房间由近到远进行编号:0, 1, 2, 3, 4 …
总图
总结
这个例子的难点在于排序,使用节点List.SortIndexByValue
,它可以对一个 List 进行排序,然后得到他们的索引。再用这个索引做为节点 List.GetItemAtIndex
的输入即可得到排序后的 List。