DocumentGetUnusedElements Method |
Returns the list of element ids that are not used and can be deleted from the document.
Namespace: Autodesk.Revit.DBAssembly: RevitAPI (in RevitAPI.dll) Version: 25.0.0.0 (25.0.0.0)
Syntaxpublic 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
- categories ISetElementId
-
Collection of categories to check for unused elements.
Return Value
ISetElementId
Unused elements that can be deleted from the document.
Exceptions
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.
Examplepublic 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)
{
var allUnusedElementIds = document.GetUnusedElements(new HashSet<ElementId>());
var unusedElementIdsWithNoCategory = document.GetUnusedElements(new HashSet<ElementId>() { new ElementId(BuiltInCategory.INVALID) });
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)
Dim allUnusedElementIds = document.GetUnusedElements(New HashSet(Of ElementId)())
Dim unusedElementIdsWithNoCategory = document.GetUnusedElements(New HashSet(Of ElementId)() From {
New ElementId(BuiltInCategory.INVALID)
})
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