RVTDocs.com

Selection.PickElementsByRectangle(String)

Method
Description:
Prompts the user to select multiple elements by drawing a rectangle while showing a custom status prompt string.
Remarks:

Revit users will be permitted to manipulate the Revit view (zooming, panning, and rotating the view), but will not be permitted to click other items in the Revit user interface. Users are not permitted to switch the active view, close the active document or Revit application in the pick session, otherwise an exception will be thrown.

The selection will not be automatically added to the active selection buffer.

Note: this method must not be called during dynamic update, otherwise ForbiddenForDynamicUpdateException will be thrown.

Syntax
public IList<Element> PickElementsByRectangle(
	string statusPrompt
)
Examples
// Use the rectangle picking tool to identify model elements to select.
IList<Element> pickedElements = uidoc.Selection.PickElementsByRectangle("Select by rectangle");
if (pickedElements.Count > 0)
{ 
    // Collect Ids of all picked elements
    IList<ElementId> idsToSelect = new List<ElementId>(pickedElements.Count);
    foreach (Element element in pickedElements)
    {
        idsToSelect.Add(element.Id);
    }

    // Update the current selection
    uidoc.Selection.SetElementIds(idsToSelect);
    TaskDialog.Show("Revit", string.Format("{0} elements added to Selection.", idsToSelect.Count));
}
Parameters
Parameter Type Description
statusPrompt String The message shown on the status bar.
Return Value
Type Description
IList A collection of elements selected by the user. Note: if the user cancels the operation (for example, through ESC), the method will throw an OperationCanceledException instance.
Exceptions
Exception Condition
ArgumentNullException Thrown when the statusPrompt is.
OperationCanceledException Thrown when the Revit user cancelled this operation. Thrown when the Revit user tried to switch the active view, close the active document or Revit application when responding to this mode.
ForbiddenForDynamicUpdateException Thrown if this method is called during dynamic update.