ElementWorksetFilter Class


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

Namespace: Autodesk.Revit.DB
Assembly: RevitAPI (in RevitAPI.dll) Version: 17.0.0.0 (17.0.484.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

Copy C#
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);
}
Copy VB.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

See Also