BIM软件如何批量修改名称?dynamo快速批量修改族名称方法
本次给大家介绍一种使用Dynamo快速批量修改族类型名称的方法,话不多说,上节点图和代码。
#前后缀添加
importclr
clr.AddReference('ProtoGeometry')
fromAutodesk.DesignScript.Geometryimport*
clr.AddReference('RevitAPI')
importAutodesk
fromAutodesk.Revit.DB.Eventsimport*
fromAutodesk.Revit.DBimport*
clr.AddReference('RevitServices')
importRevitServices
fromRevitServices.PersistenceimportDocumentManager
fromRevitServices.TransactionsimportTransactionManager
doc=DocumentManager.Instance.CurrentDBDocument
importre
famsymbols=UnwrapElement(IN[0])
prefix=IN[1]
suffix=IN[2]
#修改名称
defModifySymbolName(sym,prefix,suffix):
symbolname=Element.Name.GetValue(sym)
ifnotre.match(prefix,symbolname):
symbolname=prefix+symbolname
ifnotsymbolname.endswith(suffix):
symbolname=symbolname+suffix
sym.Name=symbolname
TransactionManager.Instance.EnsureInTransaction(doc)
forfamsymbolinfamsymbols:
ModifySymbolName(famsymbol,prefix,suffix)
TransactionManager.Instance.TransactionTaskDone()
#替换字符串
importclr
clr.AddReference('ProtoGeometry')
fromAutodesk.DesignScript.Geometryimport*
clr.AddReference('RevitAPI')
importAutodesk
fromAutodesk.Revit.DB.Eventsimport*
fromAutodesk.Revit.DBimport*
clr.AddReference('RevitServices')
importRevitServices
fromRevitServices.PersistenceimportDocumentManager
fromRevitServices.TransactionsimportTransactionManager
doc=DocumentManager.Instance.CurrentDBDocument
famsymbols=UnwrapElement(IN[0])
prefix=IN[1]
suffix=IN[2]
#替换名称
defModifySymbolName(sym,before,after):
symbolname=Element.Name.GetValue(sym)
symbolname=symbolname.replace(before,after)
sym.Name=symbolname
TransactionManager.Instance.EnsureInTransaction(doc)
forfamsymbolinfamsymbols:
ModifySymbolName(famsymbol,prefix,suffix)
TransactionManager.Instance.TransactionTaskDone()
字符串替换功能同时也可以当做字符串删除功能使用,只要给定的替换字符串为“”即可实现。
配合前后缀添加功能和字符串替换功能应该可以满足日常中百分之90以上的改名需求。
因为本改名方法直接修改族类型名称,速度要比某些插件快很多,例如“某山”的插件是通过复制族类型来修改的;此外,关于系统族类型名称的修改在本次分享中未作实现。
文章来源:知乎 吴所谓
个人页面:https://www.zhihu.com/people/wu-yao-qing-29
BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!
相关培训