Revit 2025 API
DocumentGet |
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 )
Public Function GetUnusedElements ( categories As ISet(Of ElementId) ) As ISet(Of ElementId)
public: ISet<ElementId^>^ GetUnusedElements( ISet<ElementId^>^ categories )
member GetUnusedElements : categories : ISet<ElementId> -> ISet<ElementId>
Parameters
Return Value
ISetElementIdUnused elements that can be deleted from the document.
| Exception | Condition |
|---|---|
| ArgumentNullException | A non-optional argument was null |
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.
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); }
Public Sub DeleteAllUnused(ByVal document As Document) Using transaction As Transaction = New Transaction(document, "Delete unused elements") transaction.Start() Dim unusedElementIds As ISet(Of ElementId) = document.GetUnusedElements(New HashSet(Of ElementId)()) While unusedElementIds.Any() document.Delete(unusedElementIds) unusedElementIds = document.GetUnusedElements(New HashSet(Of ElementId)()) End While transaction.Commit() End Using End Sub Public Sub GetUnusedElements(ByVal document As Document) ' Get all unused elements in the document Dim allUnusedElementIds = document.GetUnusedElements(New HashSet(Of ElementId)()) ' Get unused elements without a category Dim unusedElementIdsWithNoCategory = document.GetUnusedElements(New HashSet(Of ElementId)() From { New ElementId(BuiltInCategory.INVALID) }) ' Get unused wall and floors types Dim categoriesToPurge As HashSet(Of ElementId) = New HashSet(Of ElementId) From { New ElementId(BuiltInCategory.OST_Walls), New ElementId(BuiltInCategory.OST_Floors) } Dim unusedElementIds = document.GetUnusedElements(categoriesToPurge) End Sub
No code example is currently available or this language may not be supported.
No code example is currently available or this language may not be supported.
See Also