Dynamo一键清理Revit中未放置的房间和多余的房间

今天我们来解决一个Revit中比较常见的小问题,就是清理未放置的房间和多余的房间。
 

首先,我们可以先做个测试样例,看看问题在哪里,如下图,我简单画了个模型,生成一个房间明细表,如下图:

我的目的是,利用Dynamo一次清除所有的未放置房间和多余房间。

这个很容易实现,我这里就不摆各种节点了,直接用代码搞定这次。

首先我们要获取所有的房间,首先想到的方法,就是FilteredElementCollector,通过Category来过滤收集元素。我们打开API手册,来查一下这个的用法:

如图,一下就能找到很多我们需要的信息。所以可以根据自己的需求,来收集所需的元素,那我我们这里收集房间的代码如下:

collector = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Rooms).GetElementIdIterator()

这里是分几个层级来获取房间元素的,首先是构造一个元素收集器,收集所有的元素FilteredElementCollector(doc),然后通过OfCategory方法来获取内置类别的元素,这里需要简单了解下BuiltInCategory Enumeration,API手册中列出了所有BuiltInCategory的枚举,根据需要选择就行。然后我们继续获取元素的ID可以,通过GetElementIdIterator方法。

到这里,我们可以运行一下,看可以得到什么,如下图:

这里我们得到的是Autodesk.Revit.DB.FilteredElementIdIterator子类,还不是我们要的房间元素。

接下来,我们只需要用一个for循环,来获得所有的房间图元,代码如下:


rooms = []
for a in collector:
  rooms.append(doc.GetElement(a))

我们遍历了一下上一步过滤到的元素,得到了对应的Element。
 

接下来我们可以翻到顶部,看下之前的房间明细表,我们可以看出,面积栏未放置和多余的房间位置,是没有面积值得。
 

回到代码上,我们理论上,可以通过判断房间的面积是否等于“0”,来过滤出未放置的房间和多余的房间,于是就有了下面的代码:


for room in rooms:
  if room.Area == 0:
    doc.Delete(room.Id)

到这里,我们的核心代码就完成了,如果单纯的把这几行代码复制过去,发现还是运行不了,所以我们需要对代码进行完善,这里需要对前面添加各种引用,可以百度Dynamo万能模板,把前面代码补全。
 

同时,最后这个删除房间的循环,需要放在以下代码之间,对元素进行解封:


TransactionManager.Instance.EnsureInTransaction(doc)

TransactionManager.Instance.TransactionTaskDone()

这样基本就能实现删除未放置房间和多余房间的功能了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【javaWeb 第三篇】Vue快速入门

VUE vue是一套前端框架,免除原生的js的DOM操作,简化书写 基于MVVM(model-view-viewmodel)思想,实现数据的双向绑定,将编程的关注放在数据上。 什么是框架: 框架相当于一个半成品,是一…

【Java程序设计】【C00391】基于(JavaWeb)Springboot的校园疫情防控信息管理系统(有论文)

基于(JavaWeb)Springboot的校园疫情防控信息管理系统(有论文) 项目简介项目获取开发环境项目技术运行截图 博主介绍:java高级开发,从事互联网行业六年,已经做了六年的毕业设计程序开发&#xff…

【SpringCloud微服务实战10】DevOps自动化部署微服务项目(Jenkins+Docker+K8s)

一、什么是 DevOps DevOps 是一种重视软件开发人员(Developer)和运维人员(Operations)之间沟通与协作的文化、运动或实践,目标在于快速交付高质量的软件产品和服务。DevOps 强调自动化流程、持续集成与交付&#xff08…

C语言二叉树和堆(个人笔记)

二叉树和堆 二叉树1二叉树的概念和结构1.1特殊的二叉树1.2二叉树的性质(规定根节点的层数为1)1.3二叉树的存储结构 2.二叉树的顺序结构和实现2.1二叉树的顺序结构2.2堆的概念和结构2.3堆的实现2.4堆的应用2.4.1堆排序 2.5TOP-K问题 3.二叉树的遍历4.二叉…

管理阿里云服务器ECS -- 网站选型和搭建

小云:我已经学会了如何登录云服务器ECS了,但是要如何搭建网站呢? 老王:目前有很多的个人网站系统软件,其中 WordPress 是使用非常广泛的一款,而且也可以把 WordPress 当作一个内容管理系统(CMS…

Qt中QIcon图标设置(标题、菜单栏、工具栏、状态栏图标)

1 exe程序图标概述 在 Windows 操作系统中,程序图标一般会涉及三个地方; (1) 可执行程序(以及对应的快捷方式)的图标 (2) 程序界面标题栏图标 (3)程序在任务…

C语言什么是形参和实参?如何使⽤?

一、问题 在调⽤函数的时候,调⽤函数和被调⽤函数之间基本都会发⽣数据传递关系,这就要⽤到有参函数,⽽不传递数据的就需要⽆参函数。这样必然涉及形参和实参的概念,那么究竟什么是形参?什么又是实参呢?如何…

编译与链接

环境: 在ASCI C的任何一种实现中,存在两种不同的环境: 1.翻译环境,在这个环境中,源代码被转换为可执行的机器指令(二进制指令) 2.运行环境,用于实际执行代码。 流程:c文件->翻译…

(4)(4.3) Kogger Sonar

文章目录 前言 1 推荐硬件 2 配置回声探测仪模块 3 连接ArduPilot硬件 4 参数说明 前言 KOGGER 声纳(KOGGER Sonar)是一款结构紧凑、成本低廉的水下回声测深仪模块,带有 UART 接口,电源电压为 5-14v。 1 推荐硬件 CP210x USB->UART 转换器和安装…

脚本应使用项目的主要语言编写

原文:Joo Freitas - 2024.03.24 这是我长时间以来的一个深感赞同的观点。 我参与过的几乎所有项目,都有我们编写的用于自动化重复性过程的脚本。然而,大多数脚本在几周后变得过时且难以维护,因为我们要么不再需要它们&#xff0…

Towhee 小记

文章目录 关于 Towhee✨ 项目特点🎓 快速入门流水线预定义流水线自定义流水线 🚀 核心概念 关于 Towhee Towhee 是一个开源的 embedding 框架,包含丰富的数据处理算法与神经网络模型。通过 Towhee,能够轻松地处理非结构化数据&am…

31---JTAG电路设计

视频链接 JTAG电路设计(JLINK&XILINX&ALTERA)_哔哩哔哩_bilibili JTAG电路设计 1、JTAG简介 JTAG(Joint Test Action Group):联合测试工作组,是在名为标准测试访问端口和边界扫描结构的IEEE的标…

Python学习之-正则表达式

目录 前言:1.re.serach1.1例子: 2.re.match2.1示例1:2.2 示例2: 3.re.findall3.1 示例 4.re.fullmatch4.1 示例1:4.2 示例2: 5.re.split5.1 示例1:5.2 示例2:5.3 示例3: 6.re.sub6.1 示例&#…

2024年阿里云服务器价格30元、61元、99元、165元、199元报价

2024年阿里云服务器优惠价格表,一张表整理阿里云服务器最新报价,阿里云服务器网aliyunfuwuqi.com整理云服务器ECS和轻量应用服务器详细CPU内存、公网带宽和系统盘详细配置报价单,大家也可以直接移步到阿里云CLUB中心查看 aliyun.club 当前最新…

【详细讲解React 快速入门教程】

🔥博主:程序员不想YY啊🔥 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家💫 🤗点赞🎈收藏⭐再看💫养成习惯 🌈希望本文对您有所裨益,如有…

虚机无法进入系统一直轮转在内核启动页面处理

【问题现象】 在日常处理虚机过程中会出现,虚机无法进入系统,一直轮转在内核启动页面的情况 【处理办法】 【步骤一】登录原先内核系统,设置默认新内核启动 【步骤二】进入系统后设置 # grubby --set-default /boot/vmlinuz-3.10.0-957.ax…

Healix Protocol 的 HLX 通证预售:医疗领域的未来展望

Healix Protocol推出 HLX 通证预售,将带来医疗领域的重要变革。通过其区块链技术,Healix Protocol致力于重新定义医疗服务的可及性与负担性,成为医疗行业的希望之光。该项目旨在增强透明度、可及性和效率,推动医疗体系向更加公平和…

[计算机效率] 文件预览工具:QuickLook

3.9 文件预览工具:QuickLook Quicklook是一款强大的文件预览工具,可以帮助用户快速浏览文件夹中的文件内容,而无需打开每个文件。 功能特点: 快速预览:Quicklook能够快速预览文件夹中的文件内容,包括文本…

把本地文件上传到HDFS上操作步骤

因为条件有限,我这里以虚拟机centos为例 实验条件:我在虚拟机上创建了三台节点,部署了hadoop,把笔记本上的数据上传到hdfs中 数据打包上传到虚拟机节点上 采用的是rz命令,可以帮我们上传数据 没有的话可以使用命令安装…

虹科Pico汽车示波器 | 免拆诊断案例 | 2018款东风风神AX7车发动机怠速抖动、加速无力

一、故障现象 一辆2018款东风风神AX7车,搭载10UF01发动机,累计行驶里程约为5.3万km。该车因发动机怠速抖动、加速无力及发动机故障灯异常点亮而进厂维修,维修人员用故障检测仪检测,提示气缸3失火;与其他气缸对调点火线…