打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Dynamo修改族名称和族类型名称——群问题整理001

Dynamo案例百解累积更新(2021.04)介绍~

Dynamo PythonScript 代码速查手册By九哥

你好,这里是BIM的乐趣,我是九哥~

        近期给大家分享一些短平快的小教程,基本都是来自群里面常问的问题,不做过多的介绍了,直接截图和代码。

问题:001-改族名称和族类型名称

        隔三差五的,群里就会有人问这个问题,关于改族名称和族类型名称,ClockWork里有现成的节点Element.SetName,可以解决该问题:

        改族名称,就输入Family:

        改类型名称,就获取ElementType:

        当然,如果你没有安装ClockWork节点包,也可以直接复制下面的代码,放到PythonScript里使用。

        Element.SetName核心的代码:

import clrclr.AddReference('RevitAPI')from Autodesk.Revit.DB import *
clr.AddReference("RevitNodes")import Revitclr.ImportExtensions(Revit.Elements)
clr.AddReference("RevitServices")import RevitServicesfrom RevitServices.Persistence import DocumentManagerfrom RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocumentitems = 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()

好了,今天的分享就到这里,小伙伴们快去自己尝试吧~



九哥出品,必属精品

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Dynamo python调用revitAPI系列
关于Revit中添加两个相同标高名称的处理方法
revit2014,走起
Spring Test 整合 JUnit 4 使用总结
Revit教程|运用Revit创建墙体材料统计
Revit画完的风管系统分类错了还能改吗
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服