首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

dynamo小应用之批量修改房间名

没错,封面与内容严重不符。。。可是,关于dynamo实在找不到合适的好图,于是只好先这样了。二次元治愈系列,希望你们喜欢

revit中的房间功能一次只能对单个房间进行房名修改,那么在这种情况下工作量就会很大,而且都是重复性的工作,因此选用dy解决。

先放上本例最终的小程序(4不4很简单~~):

以下是做这个小程序的其中一种思路:

1、在本文中涉及到的是revit中的房间,它们属于revit中的构件,因此直接去revit菜单下找:

打开revit下拉菜单,二级菜单同样一目了然,单词不会的有道啥的翻译一下:

2、最终认为目标节点在“Elements”菜单下的几率比较大,因此点开它的下一级菜单,一直往下拉,发现有房间的英文名“room”一项,绝对是它了。

此处小补充:点开room的下拉菜单后,看到room下所有的节点,节点左边有三种符号:加号、闪电、问号——dy中的节点就分为这三大类,创建类,设置类以及查询类。创建类节点顾名思义就是新建某样东西,设置类节点就是对创建物的修改或设置,查询类提供一个获取创建物某些特定信息的途径。(表述可能不太专业,通过实际使用自行体会吧~)

3、在本例中,目的是修改房间名称,因此找到“闪电”对应的节点,只有三个,不确定可以一个一个查看节点说明,最终选择了“Room.SetName”节点,单击鼠标左键将节点添加到画布,可以查看更详细的输入端数据类型说明

4、接下来,给“Room.SetName”节点寻找合适的接入端节点

如下图所示,第一个输入端(room)需要我们给它接入revit中要被修改名称的房间,第二个输入端(value)则需要输入字符串类型的房间名称(也就是想要修改成的房间名),算得上很清晰的提示了:

5、让dy选择识别到revit中的构件图元等的节点去“selection”菜单下找,Selection译名选择,而现在正是要选择当前项目文档中的房间:

6、同样对节点不熟悉可以一个个去看说明,不会花费太多时间,也可以一个个去试,以选出最合适的节点。这里选用“Categories”节点选择房间类别,通过“All Elements of Category”节点得到项目中房间类别下的所有房间。

此处小补充:以下的节点组合可以作为一种组合模式,如,按“levels”,通过“All Elements at level”节点获取所有指定标高上的图元,可以看到,它们的输出口跟输入口的数据都是相对应的,其他节点均如此,数据类型不同则无法成功匹配:

8、同样的,“All Elements ofCategory”节点“elements”输出口的数据类型跟“Room.SetName”节点的“room”输入端数据类型一致,因此可以正常运行。

9、给“Room.SetName”节点的第二个输入口“value”连入相同数据类型的节点“string”:

运行结果——房间名称全按设置修改成“1”,写入string节点中的1不是数字,它已经被节点自动转换为了文本格式,即字符串:

由上图可知,虽然“Room.SetName”运行结果均显示空,但revit中的房间名称已按预期修改成功,所以不用太在意。(至于为啥这样我也不造..)

此处小补充,最后的“string”节点,之前在《dynamo正式开篇前的一点说明》一文中有提到过的“code block”节点同样可以替换它,只不过,在“code block”中写字符串需加引号,单引号双引号都行,且必须是在英文输入状态下键入。无引号的“1”是数字类型,与“Room.SetName”节点类型不符,程序将会报错(如以下右图所示):

最后一个补充

在本例中,待修改的房间类型只有一种且只要求所有房间名字改为一样,因此程序很简单,但一般情况下都是好多种房间类型,房间命名也各不相同的。这时就需要再进行各种数据过滤,觉得好麻烦好花时间吗?

不急,有大神早就做好了能较快解决这种情况的节点了,在下图所示的节点包中,节点包安装方式在→《dynamo初见篇(下)》中有提到。至于怎么用,姑娘课堂的案例篇(视频,免费)中有~感兴趣可以去看哦,姑娘课堂链接在《dynamo正式开篇前的一点说明》中有写:

因为对节点不熟悉,最开始总会多花点时间,但好在写好的dy程序是保存后可以反复使用的。花一次功夫节约了以后大把的时间,何乐而不为呢?

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180422G1DIGO00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券