delete可以用in批量删除吗_通过Dynamo删除Revit中族参数探究

本文介绍了如何在不打开Revit族的情况下,利用Dynamo和Orchid节点包批量删除族参数。通过导出族文件、后台打开、设置参数名称、使用Parameter.Delete节点删除,最后将修改后的族加载回项目,实现自动化操作。
摘要由CSDN通过智能技术生成

    起因是这样的,有位同事想在项目中直接删除revit族的参数,而不打开族,避免因为重载族,造成一些管件连接断开,于是就有了下面这些研究,当然是因为我没办法实现这个想法,所以这次可以分享下研究的过程。

    首先,我先翻了一下Dynamo的节点库,并没有找到直接删除Parameter的方法,于是就百度搜了下,群里问了下,然并卵,并没有关于这些的教程或者思路分享。

    于是,只能尝试写几行代码了。

    但是翻阅API手册以后,我发现这个事情基本就泡汤了。因为很明确,删除族参数,必须打开族才能实现,瞬间就没那么复杂了,只要打开族,删除选中的参数ID就行了:

9bdab78d2f77a155b6886af8640e66b1.png

或者用针对族文件的:

215f14a51a4e77c8e54ef40e6657dcf2.png

d734f24e80995c4d015172862206af47.png

当然,这里就怎么简单怎么来就行,然后就可以调用Python Script写代码了,如下:

# Copyright(c) 2019, 九哥BIMerimport clrclr.AddReference('RevitAPI')from Autodesk.Revit.DB import*import Autodeskclr.AddReference("RevitServices")import RevitServicesfrom RevitServices.Persistence import DocumentManagerfrom RevitServices.Transactions import TransactionManagerfrom Autodesk.Revit.DB import Transactiondoc=DocumentManager.Instance.CurrentDBDocumentparamNames=IN[0]paramToDel=[]for n in paramNames:  paramToDel.append(doc.FamilyManager.get_Parameter(n))TransactionManager.Instance.EnsureInTransaction(doc)  for p in paramToDel:  try:    doc.Delete(p.Id)  except:    pass  TransactionManager.Instance.TransactionTaskDone()OUT=paramToDel

运行效果如下:

792150480d5b6d1525460e38d99b9444.gif

    当然了,这里用RemoveParameter也是一样的,这里我就不附代码了,大家可以自己尝试。

    到这里基本功能就已经实现了,这时候我想起了前几次讲过的DateSharp了,于是就稍微处理了下,把要输入的参数,通过可视化界面来选择,效果如下:

0b10bf668854d77e80fd0d3ecbddd012.png

    这里纯属娱乐,没必要搞得这么复杂decc1e5662b275a56138e1ff76e20285.png

    但是通过这个,也想到一个问题,就是好多族,都要删除相同的参数,一个个批量操作,才是Dynamo的优势啊!

    而且很幸运,在尝试的时候,我在GitHub上搜到了一个节点包,“Orchid”,于是就下载了这个包,发现里面很很多关于参数的节点,不论是族参数还是项目参数。于是就测试了起来,这里省略一万字。。。

总之呢,就是我找到了一种批量删除族参数的方法:

首先,将需要删除参数的族,从项目中导出到一个指定文件夹中,通过Directory.Contents找到指定路径的所有族文件,之后再后台打开,如下图:

aa45a8c651c1748c080b55f9c1999094.png

然后设置要删除的参数名称,到Orchid里找到Parameter.Delete删除参数即可,然后在用Document.Close关掉打开的族即可,如下图:

13117e1129c7be0bc49c18162dbf3547.png

当然了,这里还不过瘾,我想在删除参数,保存族以后,也一并载入到项目中,其实Orchid也有所需的节点,只要在删除完参数,后面连一个Document.LoadFamily即可,如下图:

fa6c85f540938f444c7ee2a0bfbf19a9.png

    是不是很简单呢?

    篇幅有限,今天就写到这里了,我还想到了添加共享参数,删除项目参数等操作,大同小异,这里就不在赘述了。

公众号内回复Orchid获取下载地址,好了,今天先简单分享到这了,有时间我会继续分享的。


本公众号其他的相关DYNAMO文章还有:

一、学会这几个Dynamo数据处理技巧,效率翻倍提升

二、Dynamo也可以创建图形界面,使用起来超简单

三、在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

四、一键放置柱子护角,你get了吗?

五、Dynamo随机地形思路分享

六、Revit在弯曲面上的贴图调试

七、利用revit幕墙填充图案绘制钢架模型


喜欢的小伙伴,记得关注“BIM的乐趣”哦~~

6657e4592452658c30f676dc89cbaccc.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值