Dynamo批量将房间名称转换为模型文字

今天呢,我们简单聊聊如何把房间名称,变成模型文字,好在三维中能够看到房间名称。

本来吧,我觉得批量创建模型文字应该是个很简单的事,但是我在Dynamo中搜了下ModelText,发现只有一个在族环境中创建模型文字的节点:
 

我这么多节点包,竟然没有直接创建模型文字的节点?难道还要去写Python代码?没办法,只好去查下API,不查还好,一查,觉得这个更是有意思了,竟然只能在族环境下才允许创建模型文字,这个事就有点扯了。。。

谁能告诉我,这是什么鬼,但是问题有了,总要想办法解决,好在这个问题还有能变通解决的,例如之前我做门窗详图那个例子,我们可以复制模型文字啊,所以“copy element”方法在这里使用正合适,我们可以再搜索下:

所在类为“ElementTransformUtil Class“,所以我们的基本语法为:

copied = ElementTransformUtils.CopyElement(doc,ElementId(elementId),i.ToXyz())

那么我们只要获取所有的房间,然后在房间中心点或者直接获取房间的location,把模型文字复制到这里就可以了,大家可以自己尝试下,我就直接贴出代码和节点了:

# Copyright(c) 2010, 九哥BIMer
import clr
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc =  DocumentManager.Instance.CurrentDBDocument
app =  DocumentManager.Instance.CurrentUIApplication.Application

elementId = IN[0].Id
Pts = UnwrapElement(IN[1])
new = []
copied = []

TransactionManager.Instance.EnsureInTransaction(doc)
for i in Pts:
  copied = ElementTransformUtils.CopyElement(doc,ElementId(elementId),i.ToXyz())
  new.append(doc.GetElement(copied[0]))
TransactionManager.Instance.TransactionTaskDone()

OUT = new

从上图可以看出,我复制完文字,将模型文字的值改成房间名称,最后又更新了下文字的位置,这是因为,这里复制模型文字,坐标是相对于你放置的那个模型文字的坐标,更新成房间坐标就可以了。
 

从这里我们也看出,这不是个好的解决办法,于是我又想,既然允许在族环境中创建模型文字,那么我们不如直接做个模型文字的族,直接放置族岂不是来的痛快。

于是我就做了一个模型文字族,添加需要的参数,文字采用中心对齐,如下图,载入项目中就可以用了:
 

那么这样来的更简单,只需要获取房间的location,然后用FamilyInstance.ByPoint放置模型文字族即可,然后将房间名称设置给对应的族即可,如下图:

这样我们就完成了,房间名称转换为模型文字的操作,可以在三维中看到房间名称了。

好了,今天的分享就到这里了,只是简单的试了下,分享一下,有不对的地方,请指正哈!

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

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

相关文章

实习日志30

概要 高拍仪硬件通信原理,WebSocket源码解析(JavaScript) WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据…

07 MyBatis之高级映射 + 懒加载(延迟加载)+缓存

1. 高级映射 例如有两张表, 分别为班级表和学生表 自然, 一个班级对应多个学生 像这种数据 , 应该如果如何映射到Java的实体类上呢? 这就是高级映射解决的问题 以班级和学生为例子 , 因为一个班级对应多个学生 , 因此学生表中必定有一个班级编号字段cid 但我们在学生的实体…

5G网络(接入网+承载网+核心网)

5G网络(接入网承载网核心网) 一、5G网络全网架构图 这张图分为左右两部分,右边为无线侧网络架构,左边为固定侧网络架构。 无线侧:手机或者集团客户通过基站接入到无线接入网,在接入网侧可以通过RTN或者IP…

【BUG】解决java.util.Date and java.lang.String

报错解析与解决方案:Java中处理Date类型与String比较引发的IllegalArgumentException 前言 在日常的开发过程中,我们可能会遇到各种类型转换和比较相关的异常。今天,我在调用接口时就遭遇了这样一个问题: 错误描述 在执行SQL查…

unity ui界面优化

优化一个比较复杂的界面,里面有多个rt和组件。 在初次打开这个界面的时候会发生1s多的卡顿,还是非常严重的。 分析 通过profiler分析 1.打开界面时卡顿。 分析:除了update和dotween相关逻辑,主要在于打开时的lua function调用…

《隐私计算简易速速上手小册》第7章:隐私计算与云计算/边缘计算(2024 最新版)

文章目录 7.1 云计算中的隐私保护7.1.1 基础知识7.1.2 主要案例:使用 Python 实现云数据的安全上传和访问7.1.3 拓展案例 1:实现基于角色的访问控制7.1.4 拓展案例 2:使用 Python 保护 API 安全 7.2 边缘计算的隐私问题7.2.1 基础知识7.2.2 主…

RisingWave最佳实践-利用Dynamic filters 和 Temporal filters 实现监控告警

心得的体会 刚过了年刚开工,闲暇之余调研了分布式SQL流处理数据库–RisingWave,本人是Flink(包括FlinkSQL和Flink DataStream API)的资深用户,但接触到RisingWave令我眼前一亮,并且拿我们生产上的监控告警…

面试经典150题 -- 二叉树搜索树 (总结)

总的链接 : https://leetcode.cn/studyplan/top-interview-150/ 二叉搜索树相关概念 : 二叉搜索树是一个有序树。 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结…

PyTorch概述(六)---View

Tensor.view(*shape)-->Tensor 返回一个新的张量同之前的张量具有相同的数据,但是具有不同的形状;返回的张量同之前的张量共享相同的数据,必须具有相同数目的元素,可能具有不同的形状;对于经过view操作的张量&…

【Java程序设计】【C00286】基于Springboot的生鲜交易系统(有论文)

基于Springboot的生鲜交易系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的生鲜交易系统 本系统分为系统功能模块、管理员功能模块、用户功能模块以及商家功能模块。 系统功能模块:在系统首页可以…

[HTML]Web前端开发技术28(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页

希望你开心,希望你健康,希望你幸福,希望你点赞! 最后的最后,关注喵,关注喵,关注喵,佬佬会看到更多有趣的博客哦!!! 喵喵喵,你对我真的…

Linux-基础知识(黑马学习笔记)

硬件和软件 我们所熟知的计算机是由:硬件和软件组成。 硬件:计算机系统中电子,机械和光电元件等组成的各种物理装置的总称。 软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件与计算机进行交流。 而操作系统…

【前端素材】推荐优质后台管理系统PORTAL平台模板(附源码)

一、需求分析 后台管理系统是一种具有多层次结构的软件系统,用于管理网站、应用程序或系统的后台操作和管理。下面是对后台管理系统的分层次、详细分析: 第一层:用户界面层 登录界面:提供用户登录验证,确保只有经过授…

村镇医院医疗中心污废水如何处理达标

污废水处理是村镇医院医疗中心运营中不可忽视的重要环节。如何有效处理污废水,使其达到相关标准,是保障医疗中心环境卫生的关键之一。 首先,村镇医院医疗中心应建立科学的废水处理系统。该系统应包括预处理、初级处理、中级处理和高级处理等环…

二十七、图像的均值模糊操作

项目功能实现:对一张图片进行均值模糊操作 按照之前的博文结构来,这里就不在赘述了 更多的图像模糊操作原理可参考博文:七、模糊操作,里面有详细原理讲解,只不过代码是python写的。 一、头文件 blurtest.h #pragma…

网络存储技术

第4章 存储文件系统 1.元数据 文件系统中的数据分为数据和元数据,数据是指普通文件中的实际数据,而元数据是描述数据属性的信息。 在Linux操作系统下,使用文件状态信息stat命令,可以显示文件的元数据如下。 [rootgitlab ~]# s…

英国客户亲临育菁,考察桌面级CNC机床

育菁桌面级CNC机床生产车间 2024年2月22日,英国某机床服务公司Alston和Gary一行拜访考察育菁,在育菁总经理Jimyang和总工程师Alan及海外营销中心总监Akuma的陪同下,参观了育菁桌面小型数控机床生产装配车间,并对育菁牌桌面型数控机…

《TCP/IP详解 卷一》第2章 Internet地址结构

目录 2.1 引言 2.2 表示IP地址 2.3 基本的IP地址结构 单播地址 全球单播地址: 组播地址 任播地址 2.4 CIDR和聚合 2.5 特殊用途地址 2.6 分配机构 2.7 单播地址分配 2.8 与IP地址相关的攻击 2.9 总结 2.1 引言 2.2 表示IP地址 IPv4地址:3…

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二)

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二) 大家好 我是寸铁👊 金三银四,树、dfs、bfs、回溯、递归是必考的知识点✨ 快跟着寸铁刷起来!面试顺利上岸👋 喜欢的小伙伴可以点点关注 💝 上期回顾 感谢大家的支持&am…

Matlab/simulink基于vsg的风光储调频系统建模仿真(持续更新)

​ 1.Matlab/simulink基于vsg的风光储调频系统建模仿真(持续更新)