首页 > 其他分享 >【Revit二次开发】Document.Regenerate方法(更新Revit文档中所有的图元)

【Revit二次开发】Document.Regenerate方法(更新Revit文档中所有的图元)

时间:2024-06-03 12:10:19浏览次数:14  
标签:Document Regenerate LocationPoint 文档 二次开发 new 图元 Revit

出处

https://www.revitapidocs.com/2015/22468e2c-9772-8478-0816-c9759aa43428.htm

功能

更新Revit文档中的图元以反映所有更改。

注意

使用此方法可以在一组更改后强制更新文档。请注意,当事务被提交时,会自动调用以重新生成文档。

用法

FamilyInstance instance = doc.Create.NewFamilyInstance(new XYZ(15, 20, 0), familySymbol, StructuralType.NonStructural);
FamilyInstance instance2 = doc.Create.NewFamilyInstance(new XYZ(25, 30, 0), familySymbol, StructuralType.NonStructural);
// faster to create multiple instances without calling Regenerate after each one

LocationPoint point = instance.Location as LocationPoint;
// this data is incorrect because the new geometry has not yet been regenerated

doc.Regenerate();
point = instance.Location as LocationPoint;
// now it is correct

异常

Autodesk.Revit.Exceptions RegenerationFailedException

操作失败时抛出:

  • 如果重新生成失败,则会发布严重性为DocumentCorruption的错误,该错误将在事务结束时传递给最终用户,解释具体发生了什么。

  • 若重新生成失败,说明文档已损坏,甚至读取文档也是非法的。

  • 调用重新生成并获得此异常的代码不应捕获并忽略它,相反,它只应进行内部清理,并将控制权返回给当前活动事务/子事务的所有者,这必须中止。

Autodesk.Revit.Exceptions InvalidOperationException

文件修改被禁止。通常,这是因为没有公开的事务;查阅关于Document.IsModified的文档。

标签:Document,Regenerate,LocationPoint,文档,二次开发,new,图元,Revit
From: https://www.cnblogs.com/redcode/p/18228550

相关文章

  • PDPS二次开发插件流程
    PDPS二次开发插件流程一.第一步通过C#创建插件dll1.在本地安装PDPS的安装目录下找到eMpower下的Tecnomatix.Engineering.dll,Tecnomatix.Engineering.Ui.dll2.在vs中新建winform窗体,引用以上目录下的两个dll文件3.新建一个类文件例如叫FristTestPlugin,继承Engineering下的TxBut......
  • shopify模板二次开发 增加购物车、立即购买功能
    <divclass="promotionDiscount"data-id="{{section.settings.promotionDiscount_id}}"><divclass="promotionDiscount_contercontainer"><divclass="promotionDiscount_title">{{section.se......
  • CATIA二次开发VBA入门(4)——进程外开发环境搭建,vb.net在Visual Studio中开发,创建圆柱曲
    目录引出vb.net和vb6.0进程外开发环境搭建vb.net开发环境搭建《CATIA二次开发技术基础》模板添加宏库引用vs开发环境初步vs中的立即窗口对象浏览器建立模板案例:创建一堆圆柱曲面第一步:录制宏第二步:代码精简第三步:for循环改造第四步:人机交互改造窗口模态设置导出窗口......
  • 基于Python与水星二代摄像头的二次开发
    第一章Videocapture的正确使用大家好!关于摄像头的基本调用,相信大家以及初步学会了。我们买来这个摄像头,本来就是想着自己使用,进行二次开发的。但是大家根据OpenCV的调用函数Videocapture(),发现根本无法调用,这是为什么?首先,判断外接摄像头能否调用,我们有两个非常简单的方法:方......
  • QGIS开发笔记(三):Windows安装版二次开发环境搭建(下):将QGis融入QtDemo,添加QGis并加载tif遥
    前言  使用QGis的目的是进行二次开发,或者说是融入我们的应用(无人车、无人船、无人机),本片描述搭建QGis二次基础开发环境,由于实在是太长了,进行了分篇:上半部分:主要是安装好后,使用QtCreator可以使用QGIs的apps下的Qt使用对应的编译器编译不带qgis的空工程。下半部分:在上半......
  • Excalidraw画板调研-二次开发
    最近刚入职一家公司,主管让我研究一下Excalidraw。有一个需求需要用到画板,Excalidraw是开源的,某些功能如果通过传参无法做到,就需要二次开发。目前遇到几个困难:1.如果通过传参来实现,Excalidraw是基于react的,而我们的项目是VUE框架,就无法直接使用基于react的Excalidraw。虽然后面......
  • SUMER UI3.0组件库,基于Uni-app前端框架!一端开发,多端运行!本组件库可快速二次开发各种类
    sumer-ui介绍基于uView微信小程序UI组件库,兼容vue3。本插件是SUMER组件库,只提供组件库源码下载(不包含模板源码),本组件库可快速二次开发各种类别各行业模板,包括:商城、视频、直播、聊天、支付、新闻、社区、地图、导航、出行、社区、博客、新闻、游戏、影视、订票、广告等,......
  • Cesium4Unreal - # 002 线图元绘制
    文章目录基础点绘制1思路2步骤2.1创建一个自定义组件2.2重写CreateSceneProxy方法2.3实现自定义的场景代理类2.4在场景代理类中实现绘制逻辑2.5使用自定义组件3代码实现3.1c++代码3.1.1自定义组件代码MyPrimitivePointComponent.hMyPri......
  • CATIA二次开发VB入门(1)——认识catia二次开发,宏的录制、回放和编辑
    目录引出认识CATIA二次开发刘瑞欣vb程序设计教程Excel中的vba开发catia中的vba开发宏的录制、回放和编辑宏代码精简画圆柱阵列宏Macro文件的3种类型宏的保存:文件夹,项目,catia文件宏加入到工具条中插曲:工具条的恢复总结发生肾么事了??鼠标中键旋转不了解决:特征树不显示......
  • CAD二次开发(1)- 初步和CAD进行通讯交互
    1.安装CAD和VS我这里CAD选择的是2022版本VisualStudioEnterprise2022(64位)2.在VS上创建项目2.1创建类库类型的项目这里要特别注意,我们选择的类库是需要最终生成.dll文件的,经过我的测试,只有上图的模板可以使用,具体原因我需要后面去探索。2.2引入CAD的相......