Skip to content

GetObject

Public Class

The GetObject class is the tool commands use to interactively select objects.

Inheritance Hierarchy

System.Object
Rhino.Input.Custom.GetBaseClass
Rhino.Input.Custom.GetObject

Namespace: Rhino.Input.Custom

Assembly: RhinoCommon (in RhinoCommon.dll)

Syntax

public class GetObject : GetBaseClass

The GetObject type exposes the following members.

Constructors

Name

Description


Public Method
Code Example

Initializes a new instance of the GetObject class


Properties

Name

Description


Public Property

Allow selecting objects that are already selected. By default, GetObjects() disallows selection of objects that are already selected to avoid putting the same object in the selection set more than once. Calling EnableAlreadySelectedObjectSelect = true overrides that restriction and allows selected objects to be selected and returned by GetObjects. This is useful because, coupled with the return immediately mode of GetObjects(1, -1), it is possible to select a selected object to deselect when the selected objects are being managed outside GetObjects() as in the case of CRhinoPolyEdge::GetEdge().


Public Property

By default, if a call to Input is permitted to select different parts of the same object, like a polysurface, a surface and an edge, then the top-most object is preferred. (polysurface beats face beats edge). If you want the bottom most object to be preferred, then call EnableBottomObjectPreference = true before calling GetObjects().


Public Property

By default, if a call to Input is permitted to select different parts of the same object, like a polysurface and an edge of that polysurface, then the top-most object is automatically selected. If you want the choose-one-object mechanism to include pop up in these cases, then call EnableChooseOneQuestion = true before calling GetObjects().


Public Property
Code Example

true if pre-selected input will be deselected before post-selection begins when no pre-selected input is valid.


Public Property
Code Example

The geometry attribute filter provides a secondary filter that can be used to restrict which objects can be selected. Control of the type of geometry (points, curves, surfaces, meshes, etc.) is provided by GetObject.SetGeometryFilter. The geometry attribute filter is used to require the selected geometry to have certain attributes (open, closed, etc.). The default attribute filter permits selection of all types of geometry.


Public Property
Code Example

The geometry type filter controls which types of geometry (points, curves, surfaces, meshes, etc.) can be selected. The default geometry type filter permits selection of all types of geometry. NOTE: the filter can be a bitwise combination of multiple ObjectTypes.


Public Property
Code Example

By default, groups are ignored in GetObject. If you want your call to GetObjects() to select every object in a group that has any objects selected, then enable group selection.


Public Property

By default, objects in inactive details are not permitted to be picked. In a few rare cases this is used (ex. picking circles during DimRadius)


Public Property

Gets the number of objects that were selected.


Public Property

Public Property
Code Example

In one-by-one post selection, the user is forced to select objects by post picking them one at a time.


Public Property

If a subd (or a subd component) cannot be selected, but a brep (or brep component) can be selected, then automatically create and use a proxy brep.


Public Property
Code Example

By default, reference objects can be selected. If you do not want to be able to select reference objects, then call EnableReferenceObjectSelect=false.


Public Property

Each instance of GetObject has a unique runtime serial number that is used to identify object selection events associated with that instance.


Public Property
Code Example

By default, GetObject.Input will permit a user to select sub-objects (like a curve in a b-rep or a curve in a group). If you only want the user to select “top” level objects, then call EnableSubObjectSelect = false.


Methods

Name

Description


Public Method

If you want to allow the user to be able to type in a color r,g,b or name during GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptColor(true) before calling GetPoint()/GetObject(). If the user chooses to type in a color, then the result code GetResult.Color is returned and you can use RhinoGet.Color() to get the value of the color. If the get accepts points, then the user will not be able to type in r,g,b colors but will be able to type color names.

(Inherited from GetBaseClass.)


Public Method

(Inherited from GetBaseClass.)


Public Method

There are instances of RhinoGet that prompt with “Press Enter when Done.” yet do not call AcceptNothing(). On the Mac, these instances need an additional call to AcceptEnterWhenDone() so the GetPointOptions dialog can correctly enable the Done button.

(Inherited from GetBaseClass.)


Public Method
Code Example

If you want to allow the user to be able to press enter in order to skip selecting a something in GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptNothing( true ) beforehand.

(Inherited from GetBaseClass.)


Public Method

If you want to allow the user to be able to type in a number during GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptNumber() beforehand. If the user chooses to type in a number, then the result code GetResult.Number is returned and you can use RhinoGet.Number() to get the value of the number. If you are using GetPoint and you want “0” to return (0,0,0) instead of the number zero, then set acceptZero = false.

(Inherited from GetBaseClass.)


Public Method

If you want to allow the user to be able to type in a point then call AcceptPoint(true) before calling GetPoint()/GetObject(). If the user chooses to type in a number, then the result code GetResult.Point is returned and you can use RhinoGet.Point() to get the value of the point.

(Inherited from GetBaseClass.)


Public Method

If you want to allow the user to be able to type in a string during GetPoint.Get(), GetObject::GetObjects(), etc., then call AcceptString(true) before calling GetPoint()/GetObject(). If the user chooses to type in a string, then the result code GetResult.String is returned and you can use RhinoGet.String() to get the value of the string.

(Inherited from GetBaseClass.)


Public Method

If you want to allow the user to have an ‘undo’ option in GetPoint.Get(), GetObject.GetObjects(), etc., then call AcceptUndo(true) beforehand.

(Inherited from GetBaseClass.)


Public Method
Static Member

Get the currently running GetObject for a given document


Public Method

Adds a command line option.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line option.

(Inherited from GetBaseClass.)


Public Method

Adds a command line option.

(Inherited from GetBaseClass.)


Public Method

Adds a command line option.

(Inherited from GetBaseClass.)


Public Method

Adds a command line option.

(Inherited from GetBaseClass.)


Public Method

Adds a command line option.

(Inherited from GetBaseClass.)


Public Method

Add a command line option to get colors and automatically save the value.

(Inherited from GetBaseClass.)


Public Method

Add a command line option to get colors and automatically save the value.

(Inherited from GetBaseClass.)


Public Method

Add a command line option to get colors and automatically save the value.

(Inherited from GetBaseClass.)


Public Method

Add a command line option to get colors and automatically save the value.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line option to get numbers and automatically save the value.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line option to get numbers and automatically save the value.

(Inherited from GetBaseClass.)


Public Method

Adds a command line option to get numbers and automatically saves the value.

(Inherited from GetBaseClass.)


Public Method

Adds a command line option to get numbers and automatically save the value.

(Inherited from GetBaseClass.)


Public Method

Adds a choice of enumerated values as list option

(Inherited from GetBaseClass.)


Public Method

Adds a choice of enumerated values as list option. Allows to include only some enumerated values.

(Inherited from GetBaseClass.)


Public Method

Adds a list of enumerated values as option list. Use enumSelection[go.Option.CurrentListOptionIndex] to retrieve selection.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line option to get integers and automatically save the value.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line option to get integers and automatically save the value.

(Inherited from GetBaseClass.)


Public Method

Adds a command line option to get integers and automatically save the value.

(Inherited from GetBaseClass.)


Public Method

Adds a command line option to get integers and automatically save the value.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line list option.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line list option.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line option to toggle a setting.

(Inherited from GetBaseClass.)


Public Method
Code Example

Adds a command line option to toggle a setting.

(Inherited from GetBaseClass.)


Public Method

Public Method
Code Example

Clear all command options.

(Inherited from GetBaseClass.)


Public Method

Clears any defaults set using SetDefaultPoint, SetDefaultNumber, SetDefaultString, or SetCommandPromptDefault.

(Inherited from GetBaseClass.)


Public Method

Clear possible special object drawing


Public Method

Gets a color if Get*() returns GetResult.Color.

(Inherited from GetBaseClass.)


Public Method
Code Example

Helper method for getting command result value from getter results.

(Inherited from GetBaseClass.)


Public Method
CustomGeometryFilter

Checks geometry to see if it can be selected. Override to provide fancy filtering.


Public Method

(Inherited from GetBaseClass.)


Public Method

Public Method

(Inherited from GetBaseClass.)


Protected Method

(Inherited from GetBaseClass.)


Public Method

By default the picked object list is cleared when GetObject.GetObjects() is called. If you are reusing a GetObject class and do not want the existing object list cleared when you call Input, then call EnableClearObjectsOnEntry(false) before calling GetObjects().


Public Method

By default, any object post-pick selected by GetObjects() is highlighted. If you want to post-pick objects and not have them automatically highlight, then call EnableHighlight = false.


Public Method

By default, post selection will select objects with grips on. If you do not want to be able to post select objects with grips on, then call EnableIgnoreGrips = false. The ability to preselect an object with grips on is determined by the value returned by the virtual RhinoObject.IsSelectableWithGripsOn.


Public Method
EnablePostSelect

Control the availability of post selection in GetObjects.


Public Method
EnablePreSelect

Control the pre-selection behavior GetObjects.


Public Method

By default, when GetObject.GetObjects is called with minimumNumber > 0 and maximumNumber = 0, the command prompt automatically includes “Press Enter when done” after the user has selected at least minimumNumber of objects. If you want to prohibit the addition of the “Press Enter when done”, then call EnablePressEnterWhenDonePrompt = false;


Public Method

By default, any object selected during a command becomes part of the “previous selection set” and can be reselected by the SelPrev command. If you need to select objects but do not want them to be selected by a subsequent call to SelPrev, then call EnableSelPrev = false.


Public Method
EnableTransparentCommands

Control the availability of transparent commands during the get.

(Inherited from GetBaseClass.)


Public Method

By default any objects in the object list are unselected when GetObject.GetObjects() exits with any return code besides Object. If you want to leave the objects selected when non-object input is returned, then call EnableUnselectObjectsOnExit(false) before calling GetObjects().


Public Method

Equals

Determines whether the specified object is equal to the current object.

(Inherited from Object.)


Protected Method

(Inherited from GetBaseClass.)


Public Method

Call to select a single object.


Public Method

GetHashCode

Serves as the default hash function.

(Inherited from Object.)


Public Method
Code Example

Call to select objects.


Public Method

Returns the selected enumerated value. Use this in combination with

.

This must be called directly after having called a Get method, and having obtained a Option value.

(Inherited from GetBaseClass.)


Public Method

Returns the selected enumerated value by looking at the list of values from which to select. Use this in combination with

(Inherited from GetBaseClass.)


Public Method

GetType

Gets the Type of the current instance.

(Inherited from Object.)


Public Method

Returns true if user pressed Enter to accept a default point, number, or string set using SetDefaultPoint, SetDefaultNumber, or SetDefaultString.

(Inherited from GetBaseClass.)


Public Method

Returns two points defining the location in the view window of the 2d line selected in GetPoint::Get2dLine().

(0,0) = upper left corner of window.

(Inherited from GetBaseClass.)


Protected Method

MemberwiseClone

Creates a shallow copy of the current Object.

(Inherited from Object.)


Public Method
Code Example

Gets a number if GetPoint.Get(), GetObject.GetObjects(), etc., returns GetResult.Number.

(Inherited from GetBaseClass.)


Public Method
Code Example

Public Method

Public Method

(Inherited from GetBaseClass.)


Public Method

(Inherited from GetBaseClass.)


Public Method

Checks geometry to see if it passes the basic GeometryAttributeFilter.


Public Method

If the get was a GetObjects() and the mouse was used to select the objects, then the returned rectangle has left < right and top < bottom. This rectangle is the Windows GDI screen coordinates of the picking rectangle. RhinoViewport.GetPickXform( pick_rect, pick_xform ) will calculate the picking transformation that was used. In all other cases, left=right=top=bottom=0;

(Inherited from GetBaseClass.)


Public Method
Code Example

Gets a point if Get*() returns GetResult.Point.

(Inherited from GetBaseClass.)


Public Method

Returns location in view of point in selected in GetPoint::Get() or GetPoint::Get2dPoint(). (0,0) = upper left corner of window.

(Inherited from GetBaseClass.)


Public Method

Returns the location in the view of the 2d rectangle selected in GetPoint::Get2dRectangle(). rect.left < rect.right and rect.top < rect.bottom (0,0) = upper left corner of window.

(Inherited from GetBaseClass.)


Public Method

Returns result of the Get*() call.

(Inherited from GetBaseClass.)


Public Method
Code Example

Sets prompt message that appears in the command prompt window.

(Inherited from GetBaseClass.)


Public Method
Code Example
SetCommandPromptDefault

Sets message that describes what default value will be used if the user presses enter. This description appears in angle brackets <> in the command prompt window. You do not need to provide a default value description unless you explicitly enable AcceptNothing.

(Inherited from GetBaseClass.)


Public Method
Code Example

Set filter callback function that will be called by the CustomGeometryFilter


Public Method
SetDefaultColor

Sets a color as default value that will be returned if the user presses ENTER key during the get.

(Inherited from GetBaseClass.)


Public Method
SetDefaultInteger

Sets a number as default value that will be returned if the user presses ENTER key during the get.

(Inherited from GetBaseClass.)


Public Method
SetDefaultNumber

Sets a number as default value that will be returned if the user presses ENTER key during the get.

(Inherited from GetBaseClass.)


Public Method
SetDefaultPoint

Sets a point as default value that will be returned if the user presses the ENTER key during the get.

(Inherited from GetBaseClass.)


Public Method
Code Example
SetDefaultString

Sets a string as default value that will be returned if the user presses ENTER key during the get.

(Inherited from GetBaseClass.)


Public Method

Sets a command line option value to print “Varies” instead of the regular value.

(Inherited from GetBaseClass.)


Public Method

The default prompt when EnablePressEnterWhenDonePrompt is enabled is “Press Enter when done”. Use this function to specify a different string to be appended.


Public Method

Sets the wait duration (in milliseconds) of the getter. If the duration passes without the user making a decision, the GetResult.Timeout code is returned.

(Inherited from GetBaseClass.)


Public Method
Code Example

Gets a string if GetPoint.Get(), GetObject.GetObjects(), etc., returns GetResult.String.

(Inherited from GetBaseClass.)


Public Method

ToString

Returns a string that represents the current object.

(Inherited from Object.)


Public Method

Gets a direction if Get*() returns GetResult.Point (Set by some digitizers, but in general it’s (0,0,0).

(Inherited from GetBaseClass.)


Public Method
Code Example

Gets a view the user clicked in during GetPoint.Get(), GetObject.GetObjects(), etc.

(Inherited from GetBaseClass.)


Examples

GetObject go = new GetObject(); go.GetObjects(1,0); if( go.CommandResult() != Command.Result.Success ) … use canceled or some other type of input was provided int object_count = go.ObjectCount(); for( int i=0; i<object_count; i++ ) { ObjectReference objref = go.Object(i); ON_Geometry geo = objref.Geometry(); … }