Selection Class |
Contains the current user selection of elements within the project.
System
Object
Autodesk.Revit.UI.Selection Selection
Autodesk.Revit.UI.Selection Selection
Namespace: Autodesk.Revit.UI.Selection
Assembly: RevitAPIUI (in RevitAPIUI.dll) Version: 27.0.4.0 (27.0.4.0)
The Selection type exposes the following members.
| Name | Description | |
|---|---|---|
|
|
IsValidObject | Specifies whether the .NET object represents a valid Revit entity. |
| Name | Description | |
|---|---|---|
|
|
Dispose | Releases all resources used by the Selection |
|
|
Equals |
Determines whether the specified object is equal to the current object.
(Inherited from Object ) |
|
|
GetElementIds | Returns the ids of the elements that are currently selected within the project. The selection may not be complete. See GetReferences for more options. |
|
|
GetHashCode |
Serves as the default hash function.
(Inherited from Object ) |
|
|
GetReferences | Returns the references that are currently selected. |
|
|
GetType |
Gets the
Type
of the current instance.
(Inherited from Object ) |
|
|
PickBox(PickBoxStyle) | Invokes a general purpose two-click editor that lets the user to specify a rectangular area on the screen. |
|
|
PickBox(PickBoxStyle, String) | Invokes a general purpose two-click editor that lets the user to specify a rectangular area on the screen. |
|
|
PickElementsByRectangle | Prompts the user to select multiple elements by drawing a rectangle. |
|
|
PickElementsByRectangle(ISelectionFilter) | Prompts the user to select multiple elements by drawing a rectangle which pass a customer filter. |
|
|
PickElementsByRectangle(String) | Prompts the user to select multiple elements by drawing a rectangle while showing a custom status prompt string. |
|
|
PickElementsByRectangle(ISelectionFilter, String) | Prompts the user to select multiple elements by drawing a rectangle which pass a customer filter while showing a custom status prompt string. |
|
|
PickObject(ObjectType) | Prompts the user to select one object. |
|
|
PickObject(ObjectType, ISelectionFilter) | Prompts the user to select one object which passes a custom filter. |
|
|
PickObject(ObjectType, String) | Prompts the user to select one object while showing a custom status prompt string. |
|
|
PickObject(ObjectType, ISelectionFilter, String) | Prompts the user to select one object which passes a custom filter while showing a custom status prompt string. |
|
|
PickObjects(ObjectType) | Prompts the user to select multiple objects. |
|
|
PickObjects(ObjectType, ISelectionFilter) | Prompts the user to select multiple objects which pass a customer filter. |
|
|
PickObjects(ObjectType, String) | Prompts the user to select multiple objects while showing a custom status prompt string. |
|
|
PickObjects(ObjectType, ISelectionFilter, String) | Prompts the user to select multiple objects which pass a custom filter while showing a custom status prompt string. |
|
|
PickObjects(ObjectType, ISelectionFilter, String, IList Reference ) | Prompts the user to select multiple objects which pass a custom filter while showing a custom status prompt string. A preselected set of objects may be supplied and will be selected at the start of the selection. |
|
|
PickPoint | Prompts the user to pick a point on the active work plane. |
|
|
PickPoint(ObjectSnapTypes) | Prompts the user to pick a point on the active work plane using specified snap settings. |
|
|
PickPoint(String) | Prompts the user to pick a point on the active work plane while showing a custom status prompt string. |
|
|
PickPoint(ObjectSnapTypes, String) | Prompts the user to pick a point on the active work plane using specified snap settings while showing a custom status prompt string. |
|
|
SetElementIds | Selects the elements. |
|
|
SetReferences | Selects the references. The references can be an element or a subelement in the host or a linked document. |
|
|
ToString |
Returns a string that represents the current object.
(Inherited from Object ) |
The Selection object is used to retrieve the current user selected elements when an external API command is executed.
C#
[Autodesk.Revit.Attributes.Transaction(Autodesk.Revit.Attributes.TransactionMode.ReadOnly)]
public class Document_Selection : IExternalCommand
{
public Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData,
ref string message, ElementSet elements)
{
try
{
// Select some elements in Revit before invoking this command
// Get the handle of current document.
UIDocument uidoc = commandData.Application.ActiveUIDocument;
// Get the element selection of current document.
Selection selection = uidoc.Selection;
ICollection<ElementId> selectedIds = uidoc.Selection.GetElementIds();
if (0 == selectedIds.Count)
{
// If no elements selected.
TaskDialog.Show("Revit","You haven't selected any elements.");
}
else
{
String info = "Ids of selected elements in the document are: ";
foreach (ElementId id in selectedIds)
{
info += "\n\t" + id.ToString();
}
TaskDialog.Show("Revit",info);
}
}
catch (Exception e)
{
message = e.Message;
return Autodesk.Revit.UI.Result.Failed;
}
return Autodesk.Revit.UI.Result.Succeeded;
}
/// </ExampleMethod>
}
C#
private void ChangeSelection(UIDocument uidoc)
{
// Get selected elements from current document.
ICollection<ElementId> selectedIds = uidoc.Selection.GetElementIds();
// Display current number of selected elements
TaskDialog.Show("Revit", "Number of selected elements: " + selectedIds.Count.ToString());
// Go through the selected items and filter out walls only.
ICollection<ElementId> selectedWallIds = new List<ElementId>();
foreach (ElementId id in selectedIds)
{
Element elements = uidoc.Document.GetElement(id);
if (elements is Wall)
{
selectedWallIds.Add(id);
}
}
// Set the created element set as current select element set.
uidoc.Selection.SetElementIds(selectedWallIds);
// Give the user some information.
if (0 != selectedWallIds.Count)
{
TaskDialog.Show("Revit", selectedWallIds.Count.ToString() + " Walls are selected!");
}
else
{
TaskDialog.Show("Revit","No Walls have been selected!");
}
}