X
返回顶部
当前位置: 首页> BIM资讯> BIM技术

BIM软件如何批量修改名称?dynamo快速批量修改族名称方法

发布:中文网小编3号 浏览:6636人 分享
发布于:2020-05-18 10:57

    本次给大家介绍一种使用Dynamo快速批量修改族类型名称的方法,话不多说,上节点图和代码。

image.png

    #前后缀添加

    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应用!