Revit API文档类Document提供了删除一个或者多个元素的方法,方法是:
public ICollection<ElementId> Delete(ElementId elementId);
public ICollection<ElementId> Delete(ICollection<ElementId> elementIds);
从文档中,可以通过元素本身或者元素的ElementId来删除某个元素实例(或者完全依赖于这个特定元素的其他元素)。
public ICollection<ElementId> Delete(ElementId elementId);
public ICollection<ElementId> Delete(ICollection<ElementId> elementIds);
从文档中,可以通过元素本身或者元素的ElementId来删除某个元素实例(或者完全依赖于这个特定元素的其他元素)。
被删除成功的元素会以集合返回,用户可以通过ElementId来查询这些已经删除的元素。
代码:
void DeleteSingleElement(Autodesk.Revit.DB.Document projectDoc, Wall wall)
{
using (Transaction tran = new Transaction(projectDoc, "Delete the wall."))
{
tran.Start();
ICollection<ElementId> deletedElements = projectDoc.Delete(wall.Id);
tran.Commit();
}
}
void DeleteMultiElements(Autodesk.Revit.DB.Document projectDoc, List<Element> Elements)
{
List<ElementId> elementsToDelete = new List<ElementId>();
using (Transaction tran = new Transaction(projectDoc, "Delete the selected elements."))
{
tran.Start();
foreach (Element elem in Elements)
{
elementsToDelete.Add(elem.Id);
}
ICollection<ElementId> deletedElements = projectDoc.Delete(elementsToDelete);
tran.Commit();
}
}
注意:删除元素后,Revit document库已经删除了这些elements,所有任何对该元素的引用就会变成无效的。否则,会有异常抛出来提示用户。
=========【更多高级应用请关注公众号】========
===================================