当前位置: 首页 > news >正文

12. Revit 载入族(LoadFamily)

前言

最近测试一个功能时,遇到了个问题,使用代码创建了个族,然后发现族无法载入到项目中,依稀记得这个问题以前是处理过的,那么再确认一下,顺便写一写吧。

LoadFamily 使用

LoadFamily方法位于Document上,有5个重载,但其实就两类。

  • 用于项目文档
// projectDoc.LoadFamily(族文件路径, ...)Public method LoadFamily(String, IFamilyLoadOptions, out Family);
Public method LoadFamily(String, out Family);
Public method LoadFamily(String);
  • 用于族文档
// familyDoc.LoadFamily(projectDoc, ...)Public method LoadFamily(Document, IFamilyLoadOptions);
Public method LoadFamily(Document);

IFamilyLoadOptions

IFamilyLoadOptions 表示的是族载入到项目中,当项目中已存在 同名族同名共享族 时的处理策略。比如我们编辑项目中的族,又重新加载项目中时,就会弹出是否覆盖的提示框,IFamilyLoadOptions 就是做这事儿的。

这个接口需要实现两个方法:OnFamilyFound(..)OnSharedFamilyFound(..),很好理解,就不多写了。

问题与处理

经过测试,当使用族文档的 LoadFamily 方法时,如果项目中存在默认族名的族,则「可能」出现族加载失败的情况,且此时错误信息只有“族加载失败”。

触发条件与原因

创建好的族,加载到项目中时,族名称就是默认格式的,即“族+数字”,对应正则^族\d+$。一般来讲,这个数字是自增的,就是创建了一个族,默认族1,及时删除后再创建一个,后续也会是族2。

问题就在这儿,这个数字似乎不是存在项目文件中的,从别处拿来一个新文档,里面有默认族了,但你通过代码创建时,那可能就冲突了,而且这种冲突,没法通过设置 IFamilyLoadOptions 来处理。

处理方法

既然知道原因了,怎么处理就很明确了:避免载入时重名。那么进一步的有两种方案。

第一个方案,这个看着比较“抽象”,但确实好用

  1. 先修改默认族名(^族\d+$)。如 族1 -> xxx-族1
  2. 再加载新建族,给新建族重命名。新建族载入-> 族xx -> 自定义名
  3. 最后再将原来族名称改回去。 xxx-族1 -> 族1

第二个方案,就是给新建的族一个名字,这个方案有坑,且涉及文件读写,比较慢。

  1. 使用 SaveAs方法,将族保存起来,此时可以命名。
  2. 接着,采用familyDoc.LoadFamily(projectDoc) 或是 projectDoc.LoadFamily(path) 都可以,几乎一样的速度。建议用前面一个,因为后面的需要单开一个事务,多写几行代码。
  3. 关闭文件familyDoc.Close(),这一步非常重要!!

如果不关闭文档,这个文件就会一直被占用着,而且在 Revit 中是找不到对应族文档界面的。手动操作时,也只能找到文件的保存路径,打开它,再重新关闭一次才能释放。当然直接关闭整个 Revit 也是可以的。

在这里插入图片描述

结尾

不保存族文档直接加载非常快,涉及到保存就会慢很多,能明显看到 Revit 底部的读条。

第一种方案中,改族名也是个很快的操作,但要是每创建一个族都来回改一次就有点抽象了,最好抽离为单独的方法。

使用上,如果不需要将族保存为单独文件,那就用第一种。

http://www.dtcms.com/a/614754.html

相关文章:

  • 网站页面背景黑龙江专业网站建设
  • 最新网站推广哪家好辽宁网站建设的网络科技公司
  • 小说网站防盗做的好处网站放在服务器上
  • 【开题答辩实录分享】以《基于智能推荐算法的实物交换平台的设计与实现》为例进行答辩实录分享
  • Postman+Newman接口自动化测试:一键生成精美HTML测试报告完整教程
  • 【开题答辩过程】以《Javaweb的火花流浪动物救助系统设计与实现》为例,不会开题答辩的可以进来看看
  • 园林设计网站大全关于建设工程资质网站
  • MySQL窗口函数,看看认识几个
  • 淮安市建设工程初级职称申报网站表格制作教程从零开始
  • Linux学习笔记:十五、文件系统的简单操作
  • 鸿蒙开发TypeScript第五课:方法或者函数
  • 做网站宁波有什么的网络公司门户网站后台管理系统模板
  • 网站建设开发的条件平台网站做数据维护需要多久
  • TCL华星印刷OLED小尺寸突破,全产业技术创新布局
  • 甘肃机械化建设工程有限公司网站如何设置公司网站
  • 西安模板网站建设流浪动物网站开发
  • Educational Codeforces Round 184 (Rated for Div. 2)(A-D1)
  • 网站建设期间工作代理网址是什么意思
  • 树莓派连接 DS3231 时钟模块
  • 深入理解MySQL:体系结构与SQL语句执行流程
  • 【C/数据结构】单链表
  • 添加mysql备份工具Workbench
  • 外贸买家网站建设公司网站的步骤
  • 网站怎么做排查修复wordpress金融
  • Multi-clues adaptive learning for Cloth-Changing Person Re-Identification 解读
  • 【工具】内网渗透神器cs使用
  • 零样本学习(Zero-Shot Learning)详细说明
  • 厦门网站建设有哪些公司赣州星亚网络传媒有限公司
  • 建立网站项目深圳市中心在哪个位置
  • 数据治理进阶——解读数据治理基础知识培训【附全文阅读】