Document.GetUnusedElements
Public Class
ArgumentNullException
Returns the list of element ids that are not used and can be deleted from the document.
Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntax
public ISet<ElementId> GetUnusedElements( ISet<ElementId> categories)
Parameters
categoriesISet. ElementId.
Collection of categories to check for unused elements.
Return Value
ISet. ElementId.
Unused elements that can be deleted from the document.
Exceptions
Exception
Condition
ArgumentNullException
A non-optional argument was null
Remarks
This method returns unused element ids that are available in the Purge Unused window in the Revit. To get unused elements that do not have a category assigned add INVALID to the collection of categories. If the input categories collection is empty, the method returns all unused elements in the document.
Example
public void DeleteAllUnused(Autodesk.Revit.DB.Document document){ using (Transaction transaction = new Transaction(document, "Delete unused elements")) { transaction.Start();
ISet<ElementId> unusedElementIds = document.GetUnusedElements(new HashSet<ElementId>()); while (unusedElementIds.Any()) { document.Delete(unusedElementIds); unusedElementIds = document.GetUnusedElements(new HashSet<ElementId>()); }
transaction.Commit(); }}
public void GetUnusedElements(Autodesk.Revit.DB.Document document){ // Get all unused elements in the document var allUnusedElementIds = document.GetUnusedElements(new HashSet<ElementId>());
// Get unused elements without a category var unusedElementIdsWithNoCategory = document.GetUnusedElements(new HashSet<ElementId>() { new ElementId(BuiltInCategory.INVALID) });
// Get unused wall and floors types HashSet<ElementId> categoriesToPurge = new HashSet<ElementId> { new ElementId(BuiltInCategory.OST_Walls), new ElementId(BuiltInCategory.OST_Floors) };
var unusedElementIds = document.GetUnusedElements(categoriesToPurge);}