ElementWorksetFilter Class


A filter used to match elements which reside in a given workset.

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 24.0.0.0 (24.0.0.0)
Since:  2012

Syntax

C#
public class ElementWorksetFilter : ElementQuickFilter
Visual Basic
Public Class ElementWorksetFilter _
	Inherits ElementQuickFilter
Visual C++
public ref class ElementWorksetFilter : public ElementQuickFilter

Remarks

This filter is a quick filter.

Examples

CopyC#
public void WorksetElements(Document doc, Workset workset)
{
    // filter all elements that belong to the given workset
    FilteredElementCollector elementCollector = new FilteredElementCollector(doc);
    ElementWorksetFilter elementWorksetFilter = new ElementWorksetFilter(workset.Id);
    ICollection<Element> worksetElemsfounds = elementCollector.WherePasses(elementWorksetFilter).ToElements();

    // how many elements were found?
    int elementsCount = worksetElemsfounds.Count;
    String message = "Element count : " + elementsCount;

    // Get name and/or Id of the elements that pass the given filter and show a few of them
    int count = 5;  // show info for 5 elements only
    foreach (Element ele in worksetElemsfounds)
    {
        if (null != ele)
        {
           message += "\nElementId : " + ele.Id;
           message += ", Element Name : " + ele.Name;

          if (0 == --count)
              break;
        }
    }

    Autodesk.Revit.UI.TaskDialog.Show("ElementsOfWorkset", message);
}
CopyVB.NET
Public Sub WorksetElements(doc As Document, workset As Workset)
    ' filter all elements that belong to the given workset
    Dim elementCollector As New FilteredElementCollector(doc)
    Dim elementWorksetFilter As New ElementWorksetFilter(workset.Id)
    Dim worksetElemsfounds As ICollection(Of Element) = elementCollector.WherePasses(elementWorksetFilter).ToElements()

    ' how many elements were found?
    Dim elementsCount As Integer = worksetElemsfounds.Count
    Dim message As [String] = "Element count : " + elementsCount

    ' Get name and/or Id of the elements that pass the given filter and show a few of them
    Dim count As Integer = 5
    ' show info for 5 elements only
    For Each ele As Element In worksetElemsfounds
        If ele IsNot Nothing Then
            message += vbLf & "ElementId : " + ele.Id.ToString
            message += ", Element Name : " + ele.Name

            If 0 = System.Threading.Interlocked.Decrement(count) Then
                Exit For
            End If
        End If
    Next

    Autodesk.Revit.UI.TaskDialog.Show("ElementsOfWorkset", message)
End Sub

Inheritance Hierarchy

SystemObject
  Autodesk.Revit.DBElementFilter
    Autodesk.Revit.DBElementQuickFilter
      Autodesk.Revit.DBElementWorksetFilter

See Also

ArchiLabs

Stop fighting Revit automation.

Build repeatable BIM design and documentation workflows with scripts, data, and AI in one place, without wrestling brittle one-off automations.

Try ArchiLabs →