dynamo小应用之批量修改族类型名

转眼2018年又过去三分之一了,时间只管自己哗啦哗啦的流逝,本人作为一个尚有许多东西要学的普通人多希望时间能慢点再慢点,不知各位有何感想?哈哈

其实本篇包括另外两篇dy相关文章(公众号每天只允许一条群发,可进入公众号相应模块查看)的主题在写小火车工具集相关文章时就已经定好了的,因工作上突然有一些事情要处理,因此耽搁了一些时间。很开心这回终于可以趁着小长假把它们写完了~~

好了开始今天的主题——批量修改族类型名

首先有一点想说明下:

在revit中,楼板类型的新建必须要实际画一块楼板。也就是说,如果只新建类型,确定保存后不画楼板的话之前创建的类型会全部消失。墙体之类的是支持的,但楼板不支持。

对于族名的修改本篇中提到以下几种方式(貌似实际也就涉及这么几种情况了。。):

1、为族名添加前缀或后缀

2、替换族名中关键字为其他字符

注意

本人的dynamo版本为1.3.0,版本差距过大程序运行时可能会出现一些问题

本案例涉及的节点需要手动安装一个节点包——WhiteHorse

还是先放上程序一览图,可能有些看不清,不过没关系,下文会有节点的大头照:

节点看起来挺多的,有两个原因:

1、很多节点是重复或效果相同的(“Floor Types”复制粘贴得到,“join”和“create”节点、“code block”和“string”节点在本例中的效果一样)

2、涉及到前后缀及关键字修改,会多出两三个节点

也就是说,它只是“虚胖”~而且“虚胖”的程序很多,一眼望过去密密麻麻其实很多重复的节点,所以保持冷静,不要先吓到自己

如果只修改其中一种的类型名称其实只需要以下4个节点:

修改多种其实也可以用以上程序,区别只在于一个一个变还是一起变。所以程序怎么写关键看咱们想怎么弄,这里用一起变的方式说说更多的节点

以下是大致思路

第一种——为族名添加前缀或后缀

第一步、要更改的是revit中楼板的类型名称,因此去到revit目录下找到“selection”下拉菜单中的“FloorTypes”节点,以让dy识别到咱们想要修改族名的楼板类型(目前没有发现能直接过滤出所有所需类型以用于族名修改的节点,各位若有方法求告知)

第二步、案例中待修改的楼板类型有5种,复制4个“Floor Types”并一一选好类型

第三步、用“List.Create”或“List.Join”将5个节点的结果组成一个列表,通过加减号增减输入口,此处有5个“Floor Types”,“List.Create”或“List.Join”也增加到5个

此处小补充

1、“List.Create”或“List.Join”在本例中效果一样,但在其他一些地方是有区别的,感兴趣可以自己试试效果

2、为啥用“List.Create”或“List.Join”呢,看下图,红框中的三个节点重复出现,5种类型则会重复12个节点,如此程序看起来会很大。而“List.Create”或“List.Join”节点能使程序极大的简化,做到5种类型共用同样的节点

第四步、用“+”为族名添加前缀或后缀(“codeblock”和“string”(字符串)节点效果一样,在code中写字符串加个引号即可)

第五步、最后一步,在WhiteHorse节点包中找到“WH_Family.ChangeName”节点并为其输入口接入数据

此处小补充

通过向右键单击画布空白处弹出的输入框中输入节点关键字可进行节点的快速查找

包括一些不知道某个节点是否存在,比如想要删除列表中的某一项却不想一个个找又不知道在哪可以找到时,只要知道英文,并在这里输入“删除”的英文“remove”也可能会找到想要的节点,下图中的两个输入口差不多的效果,可自行试验~

第二种——替换族名中关键字为其他字符

第一步、通过“Family.Name”节点得到楼板的类型名称(字符串(string)形式)

第二步、通过“String.Replace”节点将原名中的“(楼板)”改为无或者其他任意字符,进行连接后可以看到效果预览,后缀没有了。且如下图,code block一个节点跟两个string节点效果相同,起到的是简化程序的作用

第三步、同样的,用“WH_Family.ChangeName”节点作为程序的终结,族名再次根据设置发生了变化~

快去快去~~

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

扫码关注云+社区

领取腾讯云代金券