Dynamo | 统计房间面积

sampleRooms

在建筑设计中常常需要统计房间面积,Revit软件中有对应的房间图元可以自动计算每个房间的面积,并且在明细表中可以方便的进行统计。但是计算规则稍稍复杂一点的时候,明细表实现起来就不太优雅了:比如阳台面积算一半,入户花园有的城市算全面积,有的算一半。明细表实现起来需要添加额外的参数,而参数需要手动来同步,一旦有遗漏就会造成统计错误。在这样的场景中使用Dynamo来实现会非常省心。

统计房间面积

左边提取出来的房间和面积是单独的,需要进行归类统计,做到这一步以后,可以写一个Python脚本,来控制统计过程。比如阳台面积折半:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#Copyright (c) 2017, 刘博
#The Author's Blog http://autumnflavor.com
#This Script is for counting the area for rooms.

#该节点的输入内容将存储为 IN 变量中的一个列表。
dataEnteringNode = IN
names = IN[0]
vals = IN[1]

resultNames = []
resultVals = []
for i in range(len(names)):
name = names[i];
if name not in resultNames:
resultNames.append(name)
resultVals.append(0)
index = resultNames.index(name)
area = vals[i]
if name == "阳台":
area *=0.5
resultVals[index] += area

#将输出内容指定给 OUT 变量。
OUT = [resultNames, resultVals]

脚本结果

到这里房间面积已经统计出来了,此时可以将结果输出到Excel中,进行成果的保存。Dynamo 1.3自带了Excel.WriteToFile节点,在节点种将“OverWrite”参数设置成”true”,则Excel会根据值的调整自动覆盖写入,无需手动操作,有效地节约了时间,并且避免了修改频繁造成版本对不上的问题。

导出Excel

文章目录