通过Dynamo删除Revit中族参数探究

news2024/11/24 11:44:01

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

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

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

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

或者用针对族文件的:

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

# Copyright(c) 2019-2024, 九哥BIMer
import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import*
import Autodesk

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
from Autodesk.Revit.DB import Transaction

doc=DocumentManager.Instance.CurrentDBDocument

paramNames=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

运行效果如下:
 

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

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

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


 

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

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

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

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

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

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

是不是很简单呢?
 


 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1445572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云带宽计费模式怎么选?如何收费的?

阿里云服务器带宽计费模式分为“按固定带宽”和“按使用流量”,有什么区别?按固定带宽是指直接购买多少M带宽,比如1M、5M、10M、100M等,阿里云直接分配用户所购买的带宽值,根据带宽大小先付费再使用;按使用…

电磁兼容故障整改-辐射发射超标

设备的辐射于扰发射超标有两种可能:一种是设备外壳的屏蔽性能不完善;另一种是射频干扰经由电源线和其他线缆逸出。判断方法是拔掉不必要的电线和电源插头,或者将电缆长度减小至最短,继续做试验,如果没有任何改善迹象,则应怀疑是设…

从github上拉取项目到pycharm中

有两种方法,方法一较为简单,方法二用到了git bash,推荐方法一 目录 有两种方法,方法一较为简单,方法二用到了git bash,推荐方法一方法一:方法二: 方法一: 在github上复制…

css的布局(BFC)

一、css中常规的定位方案 1、普通流 元素按照其在HTML中的先后位置自上而下布局。 行内元素水平排列,当行被占满后换行;块级元素则会被渲染为完整的一行。 所有元素默认都是普通流定位。 2、浮动 元素首先按照普通流的位置出现, 然后根据浮动…

车载电子电器架构 —— 网络拓扑开发概述

车载电子电器架构 —— 网络拓扑开发概述 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

【Java从入门到精通】Java变量类型

Java 变量类型 在 Java 语言中,所有的变量在使用前必须声明。 声明变量的基本格式如下: type identifier [ value][, identifier [ value] ...] ; 格式说明: type -- 数据类型。identifier -- 是变量名,可以使用逗号 , 隔开…

Github 2024-02-08 开源项目日报 Top9

根据Github Trendings的统计,今日(2024-02-08统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Ruby项目1HTML项目1Python项目1Scala项目1PLpgSQL项目1Rust项目1NASL项目1C项目1TypeScript项目1非开发语言项目…

AI:126-基于深度学习的人体情绪识别与分析

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

Java实现教学资源共享平台 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…

leetcode链表相关题目

文章目录 1.移除链表元素方法1:方法2 2.合并两个有序链表3.链表的中间节点方法1方法2 4.反转单链表方法1方法2 5.分割链表6.链表中的倒数第k个节点方法1:方法2: 7.环形链表的约瑟夫问题8.链表的回文结构9.相交链表方法1方法2: 10.环形链表11.…

JMM(Java内存模型)

Java内存模型(Java Memory Model,简称JMM)是Java语言规范中定义的一个抽象概念,它描述了程序中各个变量(包括实例字段、静态字段和构成数组对象的元素)在并发环境下的访问规则和一致性保证。JMM的主要目标是…

2024年低代码平台概览:国内主流平台一览

低代码开发是一项革命性的技术,主要目的是尽量避免程序研发的复杂性,让外行开发者也能加入到应用程序的搭建中。低代码平台的核心概念和构成部分通常包括用户界面和拖拽设计、预构件和模块、自动化工作内容与数据库集成和扩展应用,应用低代码…

73. 矩阵置零(Java)

目录 题目描述:输入:输出:代码实现: 题目描述: 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入: matrix [[1,1,1],[1,0,…

C语言学习记录

牛牛的第二个整数_牛客题霸_牛客网 (nowcoder.com) 注意输入的格式,%d空格%d空格%d

《统计学简易速速上手小册》第7章:时间序列分析(2024 最新版)

文章目录 7.1 时间序列数据的特点7.1.1 基础知识7.1.2 主要案例:股票市场分析7.1.3 拓展案例 1:电商销售预测7.1.4 拓展案例 2:能源消耗趋势分析 7.2 时间序列模型7.2.1 基础知识7.2.2 主要案例:股价预测7.2.3 拓展案例 1&#xf…

第72讲后台管理Container布局实现

新建layout目录 登录成功后&#xff0c;跳转layout布局容器页面 login页面&#xff1a; 导入router import router from "/router";登录成功&#xff0c;跳转后台管理页面 选用布局容器&#xff1a; <template><div class"common-layout">…

【Linux】基础命令 第二篇

目录 echo 输出重定向:(本质都是写入) 输入重定向cat more 指令 && less指令 head && tail && 管道初步使用 grep&#xff1a;行文本过滤工具&#xff08;文本按行搜索&#xff09; date&#xff1a;获取时间 date 命令用于 显示 或 设置系统的…

HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-中断管理

目录 一、中断基础概念二、中断管理使用说明三、中断管理模块接口四、代码分析&#xff08;待续...&#xff09; 一、中断基础概念 在程序运行过程中&#xff0c;出现需要由 CPU 立即处理的事务时&#xff0c;CPU 暂时中止当前程序的执行转而处理这个事务&#xff0c;这个过程…

【数学建模】【2024年】【第40届】【MCM/ICM】【F题 减少非法野生动物贸易】【解题思路】

一、题目 &#xff08;一&#xff09; 赛题原文 2024 ICM Problem F: Reducing Illegal Wildlife Trade Illegal wildlife trade negatively impacts our environment and threatens global biodiversity. It is estimated to involve up to 26.5 billion US dollars per y…

C#,卢卡斯数(Lucas Number)的算法与源代码

1 卢卡斯数&#xff08;Lucas Number&#xff09; 卢卡斯数&#xff08;Lucas Number&#xff09;是一个以数学家爱德华卢卡斯&#xff08;Edward Lucas&#xff09;命名的整数序列。爱德华卢卡斯既研究了这个数列&#xff0c;也研究了有密切关系的斐波那契数&#xff08;两个…