Click or drag to resize

GetObject Class

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

Namespace:  Rhino.Input.Custom
Assembly:  RhinoCommon (in RhinoCommon.dll)
Syntax
public class GetObject : GetBaseClass

The GetObject type exposes the following members.

Constructors
  NameDescription
Public methodCode exampleGetObject
Initializes a new instance of the GetObject class
Top
Properties
  NameDescription
Public propertyAlreadySelectedObjectSelect
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 propertyBottomObjectPreference
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 propertyChooseOneQuestion
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 propertyCode exampleDeselectAllBeforePostSelect
true if pre-selected input will be deselected before post-selection begins when no pre-selected input is valid.
Public propertyCode exampleGeometryAttributeFilter
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 propertyCode exampleGeometryFilter
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 propertyCode exampleGroupSelect
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 propertyInactiveDetailPickEnabled
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 propertyObjectCount
Gets the number of objects that were selected.
Public propertyObjectsWerePreselected
Public propertyCode exampleOneByOnePostSelect
In one-by-one post selection, the user is forced to select objects by post picking them one at a time.
Public propertyProxyBrepFromSubD
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 propertyCode exampleReferenceObjectSelect
By default, reference objects can be selected. If you do not want to be able to select reference objects, then call EnableReferenceObjectSelect=false.
Public propertySerialNumber
Each instance of GetObject has a unique runtime serial number that is used to identify object selection events associated with that instance.
Public propertyCode exampleSubObjectSelect
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.
Top
Methods
  NameDescription
Public methodAcceptColor
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 methodAcceptCustomMessage (Inherited from GetBaseClass.)
Public methodAcceptEnterWhenDone
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 methodCode exampleAcceptNothing
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 methodAcceptNumber
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 methodAcceptPoint
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 methodAcceptString
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 methodAcceptUndo
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 methodStatic memberActiveGetObject
Get the currently running GetObject for a given document
Public methodAddOption(LocalizeStringPair)
Adds a command line option.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOption(String)
Adds a command line option.
(Inherited from GetBaseClass.)
Public methodAddOption(LocalizeStringPair, LocalizeStringPair)
Adds a command line option.
(Inherited from GetBaseClass.)
Public methodAddOption(String, String)
Adds a command line option.
(Inherited from GetBaseClass.)
Public methodAddOption(LocalizeStringPair, LocalizeStringPair, Boolean)
Adds a command line option.
(Inherited from GetBaseClass.)
Public methodAddOption(String, String, Boolean)
Adds a command line option.
(Inherited from GetBaseClass.)
Public methodAddOptionColor(LocalizeStringPair, OptionColor)
Add a command line option to get colors and automatically save the value.
(Inherited from GetBaseClass.)
Public methodAddOptionColor(String, OptionColor)
Add a command line option to get colors and automatically save the value.
(Inherited from GetBaseClass.)
Public methodAddOptionColor(LocalizeStringPair, OptionColor, String)
Add a command line option to get colors and automatically save the value.
(Inherited from GetBaseClass.)
Public methodAddOptionColor(String, OptionColor, String)
Add a command line option to get colors and automatically save the value.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOptionDouble(LocalizeStringPair, OptionDouble)
Adds a command line option to get numbers and automatically save the value.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOptionDouble(String, OptionDouble)
Adds a command line option to get numbers and automatically save the value.
(Inherited from GetBaseClass.)
Public methodAddOptionDouble(LocalizeStringPair, OptionDouble, String)
Adds a command line option to get numbers and automatically saves the value.
(Inherited from GetBaseClass.)
Public methodAddOptionDouble(String, OptionDouble, String)
Adds a command line option to get numbers and automatically save the value.
(Inherited from GetBaseClass.)
Public methodAddOptionEnumListT(String, T)
Adds a choice of enumerated values as list option
(Inherited from GetBaseClass.)
Public methodAddOptionEnumListT(String, T, T)
Adds a choice of enumerated values as list option. Allows to include only some enumerated values.
(Inherited from GetBaseClass.)
Public methodAddOptionEnumSelectionListT
Adds a list of enumerated values as option list. Use enumSelection[go.Option.CurrentListOptionIndex] to retrieve selection.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOptionInteger(LocalizeStringPair, OptionInteger)
Adds a command line option to get integers and automatically save the value.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOptionInteger(String, OptionInteger)
Adds a command line option to get integers and automatically save the value.
(Inherited from GetBaseClass.)
Public methodAddOptionInteger(LocalizeStringPair, OptionInteger, String)
Adds a command line option to get integers and automatically save the value.
(Inherited from GetBaseClass.)
Public methodAddOptionInteger(String, OptionInteger, String)
Adds a command line option to get integers and automatically save the value.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOptionList(LocalizeStringPair, IEnumerableLocalizeStringPair, Int32)
Adds a command line list option.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOptionList(String, IEnumerableString, Int32)
Adds a command line list option.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOptionToggle(LocalizeStringPair, OptionToggle)
Adds a command line option to toggle a setting.
(Inherited from GetBaseClass.)
Public methodCode exampleAddOptionToggle(String, OptionToggle)
Adds a command line option to toggle a setting.
(Inherited from GetBaseClass.)
Public methodAppendToPickList
Public methodCode exampleClearCommandOptions
Clear all command options.
(Inherited from GetBaseClass.)
Public methodClearDefault
Clears any defaults set using SetDefaultPoint, SetDefaultNumber, SetDefaultString, or SetCommandPromptDefault.
(Inherited from GetBaseClass.)
Public methodClearObjects
Clear possible special object drawing
Public methodColor
Gets a color if Get*() returns GetResult.Color.
(Inherited from GetBaseClass.)
Public methodCode exampleCommandResult
Helper method for getting command result value from getter results.
(Inherited from GetBaseClass.)
Public methodCustomGeometryFilter
Checks geometry to see if it can be selected. Override to provide fancy filtering.
Public methodCustomMessage (Inherited from GetBaseClass.)
Public methodDisablePreSelect
Public methodDispose (Inherited from GetBaseClass.)
Protected methodDispose(Boolean) (Inherited from GetBaseClass.)
Public methodEnableClearObjectsOnEntry
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 methodEnableHighlight
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 methodEnableIgnoreGrips
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 methodEnablePostSelect
Control the availability of post selection in GetObjects.
Public methodEnablePreSelect
Control the pre-selection behavior GetObjects.
Public methodEnablePressEnterWhenDonePrompt
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 methodEnableSelPrevious
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 methodEnableTransparentCommands
Control the availability of transparent commands during the get.
(Inherited from GetBaseClass.)
Public methodEnableUnselectObjectsOnExit
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 methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize (Inherited from GetBaseClass.)
Public methodGet
Call to select a single object.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodCode exampleGetMultiple
Call to select objects.
Public methodGetSelectedEnumValueT
Returns the selected enumerated value. Use this in combination with AddOptionEnumListT(String, T).

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

(Inherited from GetBaseClass.)
Public methodGetSelectedEnumValueFromSelectionListT (Inherited from GetBaseClass.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGotDefault
Returns true if user pressed Enter to accept a default point, number, or string set using SetDefaultPoint, SetDefaultNumber, or SetDefaultString.
(Inherited from GetBaseClass.)
Public methodLine2d
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 methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodCode exampleNumber
Gets a number if GetPoint.Get(), GetObject.GetObjects(), etc., returns GetResult.Number.
(Inherited from GetBaseClass.)
Public methodCode exampleObject
Public methodObjects
Public methodOption (Inherited from GetBaseClass.)
Public methodOptionIndex (Inherited from GetBaseClass.)
Public methodPassesGeometryAttributeFilter
Checks geometry to see if it passes the basic GeometryAttributeFilter.
Public methodPickRectangle
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 methodCode examplePoint
Gets a point if Get*() returns GetResult.Point.
(Inherited from GetBaseClass.)
Public methodPoint2d
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 methodRectangle2d
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 methodResult
Returns result of the Get*() call.
(Inherited from GetBaseClass.)
Public methodCode exampleSetCommandPrompt
Sets prompt message that appears in the command prompt window.
(Inherited from GetBaseClass.)
Public methodCode exampleSetCommandPromptDefault
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 methodCode exampleSetCustomGeometryFilter
Set filter callback function that will be called by the CustomGeometryFilter
Public methodSetDefaultColor
Sets a color as default value that will be returned if the user presses ENTER key during the get.
(Inherited from GetBaseClass.)
Public methodSetDefaultInteger
Sets a number as default value that will be returned if the user presses ENTER key during the get.
(Inherited from GetBaseClass.)
Public methodSetDefaultNumber
Sets a number as default value that will be returned if the user presses ENTER key during the get.
(Inherited from GetBaseClass.)
Public methodSetDefaultPoint
Sets a point as default value that will be returned if the user presses the ENTER key during the get.
(Inherited from GetBaseClass.)
Public methodCode exampleSetDefaultString
Sets a string as default value that will be returned if the user presses ENTER key during the get.
(Inherited from GetBaseClass.)
Public methodSetOptionVaries
Sets a command line option value to print "Varies" instead of the regular value.
(Inherited from GetBaseClass.)
Public methodSetPressEnterWhenDonePrompt
The default prompt when EnablePressEnterWhenDonePrompt is enabled is "Press Enter when done". Use this function to specify a different string to be appended.
Public methodSetWaitDuration
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 methodCode exampleStringResult
Gets a string if GetPoint.Get(), GetObject.GetObjects(), etc., returns GetResult.String.
(Inherited from GetBaseClass.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodVector
Gets a direction if Get*() returns GetResult.Point (Set by some digitizers, but in general it's (0,0,0).
(Inherited from GetBaseClass.)
Public methodCode exampleView
Gets a view the user clicked in during GetPoint.Get(), GetObject.GetObjects(), etc.
(Inherited from GetBaseClass.)
Top
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(); ... }
See Also