Dynamo For Revit:房间编号

前言

画一条线,然后沿着这条线来对房间进行编号。(前同事也做过类似的操作,好久不见,写个脚本做个纪念。)

房间编号效果

在这个例子里面采用了样条曲线,实际上多段线或者其它类型的线应该也是没有问题的。这个例子的关键点在于如何对房间从近到远进行排序,虽然从肉眼一下子就能看到房间的位置和顺序,但是对于计算机来说,它是不知道这些信息的,需要你来告诉它。
Dynamo For Revit:房间编号_第1张图片

Dynamo 脚本逻辑

要完成这个功能:

  1. 选择一条线(需用户手绘)
  2. 对房间进行过滤(通过类别,楼层和面积)
  3. 输入曲线和房间的几何图形求交,然后按照距离由近到远进行排序
  4. 对房间由近到远进行编号

选择一条线

这条线需用户手绘。
Dynamo For Revit:房间编号_第2张图片

对房间进行过滤

通过类别,楼层和面积来对房间进行过滤,将不可见的和不符合条件的房间过滤掉。
Dynamo For Revit:房间编号_第3张图片

几何求交、排序

输入曲线和房间的几何图形求交,然后按照距离由近到远进行排序。
Dynamo For Revit:房间编号_第4张图片

对房间由近到远进行编号

房间由近到远进行编号:0, 1, 2, 3, 4 …
Dynamo For Revit:房间编号_第5张图片

总图

Dynamo For Revit:房间编号_第6张图片

总结

这个例子的难点在于排序,使用节点List.SortIndexByValue,它可以对一个 List 进行排序,然后得到他们的索引。再用这个索引做为节点 List.GetItemAtIndex 的输入即可得到排序后的 List。

你可能感兴趣的:(Dynamo,For,Revit)