Revit二次开发示例:DeleteObject
在本例中,通过命令可以删除选中的元素。
需要注意的是要在代码中加入Transaction,否则的话会出现Modifying is forbidden because the document has no open transaction的错误。
#region Namespaces using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using Autodesk.Revit.ApplicationServices; using Autodesk.Revit.Attributes; using Autodesk.Revit.DB; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; #endregionnamespace DeleteObject {[Autodesk.Revit.Attributes.Transaction(TransactionMode.Manual)][Autodesk.Revit.Attributes.Regeneration(RegenerationOption.Manual)][Autodesk.Revit.Attributes.Journaling(JournalingMode.NoCommandData)]public class Command : IExternalCommand{public Result Execute(ExternalCommandData commandData,ref string message,ElementSet elements){UIApplication revit = commandData.Application;ElementSet collection = revit.ActiveUIDocument.Selection.Elements;if (collection.Size < 1){message = "Plase select object(s) before delete.";return Result.Cancelled;}bool error = true;try{error = true;IEnumerator e = collection.GetEnumerator();Transaction transactoin = new Transaction(commandData.Application.ActiveUIDocument.Document, "DeleteObject");transactoin.Start();bool MoreValue = e.MoveNext();while (MoreValue){Element component = e.Current as Element;revit.ActiveUIDocument.Document.Delete(component.Id);MoreValue = e.MoveNext();}transactoin.Commit();error = false;}catch (Exception){foreach (Element c in collection){elements.Insert(c);}message = "object(s) can't be deleted.";return Result.Failed;}finally{if (error){TaskDialog.Show("Error", "Delete failed.");}}return Result.Succeeded;}} }
转载于:https://www.cnblogs.com/xpvincent/p/3605574.html
Revit二次开发示例:DeleteObject相关推荐
- Revit二次开发示例:HelloRevit
本示例实现Revit和Revit打开的文件的相关信息. #region Namespaces using System; using System.Collections.Generic; using ...
- Revit二次开发示例:DeleteDimensions
在本例中,创建一个命令,实现删除所选中的尺寸标注. #region Namespaces using System; using System.Collections.Generic; using S ...
- Revit二次开发示例:APIAppStartup
下面介绍一个在Revit启动和关闭时调用外部程序的例子. Revit调用的dll主程序: using System; using System.Collections.Generic; using S ...
- Revit二次开发示例:AutoUpdate
在Revit打开文件时,修改文件信息.并记录状态,存到log文件中. #region Namespaces using System; using System.Collections.Generic ...
- Revit二次开发 获取模型截面线、截面轮廓
描述 获取Revit模型的截面线.横切面线.截面轮廓. 用途 用于获取模型的截面线.横切面线.截面轮廓. 实现方式 创建视图平面: 从视图平面获取轮廓线: 获取平面标高处的截面线. 效果 示例 /// ...
- Revit二次开发从入门到精通学习之路, (含Revit二次开发教程下载)
Revit二次开发从入门到精通学习之路 Autodesk Joe Ye叶雄进 2. 18 2014 yexiongjin@hotmail.com Revit在国内的应用越来越广泛, Revit ...
- 使用NSIS制作多版本Revit插件(Revit二次开发)
因为VisualStudio中微软官方的程序打包工具,无法实现Revit多版本插件的制作,所以我选择了NSIS来制作多版本插件. 一.使用NSIS向导创建脚本 1.1.打开NSIS的VNISEdit( ...
- Revit二次开发—参数的读取与写入
关注公众号及时获取文章更新 注:本文转自公众号:BIMCoder梁老师 一.前言 在Revit二次开发中,参数是非常重要的组成部分,那么我们该如何从构件获取参数并修改该参数. 二.方法 首先得到一个E ...
- Revit二次开发---关于CAD翻模第一步
2019年6月6日,南京,暴雨. 笔者改善以前关于翻模的一些想法,以减少对翻模图纸的初步处理. 以前使用使用直接链接CAD的方法生成各种三维模型.链接进来的CAD图纸需要处理,且文字读取较为困难,故使 ...
最新文章
- 「吃鸡」之父自立门户!研发新沙盒游戏连接元宇宙
- 如何对.NET远程处理框架相关知识简介
- 记录一下PyQt5界面导入Python(绕开pyqt5-tools安装失败问题)
- 你是一个合格的数据分析师吗?教你如何提升自己的product sense?
- Groovy与Java集成常见的坑
- 吴恩达机器学习3——逻辑回归、正则化
- Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
- 从0开始html前端页面开发_CSS设置图像圆角
- BUG(0):用某位表示特定属性
- opencv python 灰度化,opencv-python 图像灰度化
- 302重定向:302 Moved Temporarily
- Java编程入门基础知识合集
- Pokémon Army (easyversion) -每天一把CF - 20201007
- python 操作redis集群
- WebScoket 读取身份证号码
- java学习--装饰器设计模式
- 轮播图功能的全实现(自动播放、小点点、按住停止播放、放手后开始播放...)
- TOP 300 Freeware software!
- Java去掉文件中的逗号
- c语言第五章课后答案冯山,C语言 四川师范大学 信息与计算科学 冯山实验五.doc...
热门文章
- 从html导出带样式的excel,关于将HTML导出到Excel中时样式的问题
- 月薪5K的运维小白如何成为月薪5W的高级架构师?
- 100 个网络基础知识普及,看完成半个网络高手! 【厦门微思网络】
- Python中面向对象的讲解(3)
- linux如何使用vim显示行号语法高亮,(.vimrc简单使用)
- 计算机教学与课程论专业,东北师范大学专业介绍:计算机课程与教学论
- 小程序mysql+php测试,分享微信小程序的一些常见辅助测试功能:chance
- python画平行坐标图_Matplotlib中的平行坐标图
- win10组件服务计算机是红色的,KB4023057:Windows 10更新服务组件的更新
- ihtml2document能不能根据id获取dom_回到基础:什么是DOM及DOM操作?