ElementWorksetFilter Class


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

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

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

ArchiLabs Desktop

Put AI to work inside Revit.

Give Desktop your instructions and project files to build Revit families, update model elements, and create views and schedules. Works directly in Revit and AutoCAD.

Explore Desktop →