你好,这里是 BIM 的乐趣,我是九哥~
近期给大家分享一些短平快的小教程,基本都是来自群里面常问的问题,不做过多的介绍了,直接上截图和代码。
问题:001 - 改族名称和族类型名称
隔三差五的,群里就会有人问这个问题,关于改族名称和族类型名称,ClockWork 里有现成的节点 Element.SetName,可以解决该问题:
改族名称,就输入 Family:
改类型名称,就获取 ElementType:
当然,如果你没有安装 ClockWork 节点包,也可以直接复制下面的代码,放到 PythonScript 里使用。
Element.SetName 核心的代码:
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
items = UnwrapElement(IN[0])
names = IN[1]
def SetElementName(item, name):
if item.GetType().ToString() == "Autodesk.Revit.DB.FamilyParameter":
try:
doc.FamilyManager.RenameParameter(item, name)
return True
except: return False
else:
try:
item.Name = name
return True
except: return False
TransactionManager.Instance.EnsureInTransaction(doc)
if isinstance(IN[0], list):
if isinstance(names, list): OUT = [SetElementName(x, y) for x, y in zip(items, names)]
else: OUT = [SetElementName(x, names) for x in items]
else:
if isinstance(names, list): OUT = SetElementName(items, names[0])
else: OUT = SetElementName(items, names)
TransactionManager.Instance.TransactionTaskDone()
好了,今天的分享就到这里,小伙伴们快去自己尝试吧~文章来源:https://www.toymoban.com/news/detail-829353.html
九哥出品,必属精品文章来源地址https://www.toymoban.com/news/detail-829353.html
到了这里,关于Dynamo修改族名称和族类型名称——群问题整理001的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!