Revit二次开发示例:DeleteObject
生活随笔
收集整理的这篇文章主要介绍了
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的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: LLVM language 参考手册 翻
- 下一篇: cascade