Skip to content

GH_Component

Public Class

Inherit from this class if you wish to create a custom component. Note that you must provide a public, empty constructor which calls the base class constructor.

Inheritance Hierarchy

System.Object
Grasshopper.Kernel.GH_InstanceDescription
Grasshopper.Kernel.GH_DocumentObject
Grasshopper.Kernel.GH_ActiveObject
Grasshopper.Kernel.GH_Component
Grasshopper.Kernel.GH_TaskCapableComponent.T.

Namespace: Grasshopper.Kernel

Assembly: Grasshopper (in Grasshopper.dll)

Syntax

public abstract class GH_Component : GH_ActiveObject,
IGH_Component, IGH_RenderAwareObject

The GH_Component type exposes the following members.

Properties

Name

Description


Public Property

Gets or sets the attributes that are associated with this object. Only set custom attributes if you know what you are doing.

(Inherited from GH_DocumentObject.)


Public Property

Gets or sets the Category in which this object belongs. If HasCategory() returns false, this field has no meaning.

(Inherited from GH_InstanceDescription.)


Public Property

Gets the clipping box for all preview geometry drawn by this component and all associated parameters.


Public Property

Returns a consistent ID for this object type. Every object must supply a unique and unchanging ID that is used to identify objects of the same type.

(Inherited from GH_DocumentObject.)


Public Property

Gets or sets the description of the object. This field typically remains fixed during the lifetime of an object.

(Inherited from GH_InstanceDescription.)


Public Property

Gets the exposure of this object in the Graphical User Interface. The default is to expose everywhere.

(Inherited from GH_DocumentObject.)


Public Property

Gets whether or not the Category field has been set.

(Inherited from GH_InstanceDescription.)


Public Property

Gets whether or not the SubCategory field has been set.

(Inherited from GH_InstanceDescription.)


Protected property

Override this method if you want the help topic content to be more than the Component description.


Public Property

Gets or sets the hidden flag for this component. Does not affect Hidden flags on parameters associated with this component.


Protected property

Override this function to supply a custom icon (24x24 pixels). The result of this property is cached, so don’t worry if icon retrieval is not very fast.

(Inherited from GH_DocumentObject.)


Public Property

The icon associated with this object.

(Inherited from GH_DocumentObject.)


Public Property

The greyscale icon of this object.

(Inherited from GH_DocumentObject.)


Public Property

By default the NickName menu item supports the Icon Mode override toggle. If your UI is not capable of displaying icons, then override this property and return False.

(Inherited from GH_ActiveObject.)


Public Property

Gets the current display mode of the object.

(Inherited from GH_DocumentObject.)


Public Property

Gets the constructor flag for this instance. If InConstructor = True, it means the component is still registering parameters and the layout is not yet complete.


Public Property

(Overrides

.)


Public Property

Gets the ID of this runtime instance.

(Inherited from GH_InstanceDescription.)


Public Property

Public Property

Components are never Data providers. Only the output parameters can be considered to be providers.

(Overrides

.)


Public Property

If a single parameter is PreviewCapable, so is the component. Override this property if you need special Preview flags.


Public Property

Gets whether the MasterParameterIndex property identifies a valid parameter.


Public Property

Gets a list of additional keywords that describe the object. Typically this list is empty but you can override this property to aid in object searches.

(Inherited from GH_InstanceDescription.)


Public Property

Gets or sets the Locked state for this Component. This also sets locked states for all input and output parameters.

(Overrides

.)


Public Property

Gets or sets a custom message to be displayed underneath the component. This message is not serialized and should be assigned on every solution anew.


Public Property

Gets or sets a value that enables Nick name changes through the menu. The default is TRUE.

(Inherited from GH_ActiveObject.)


Public Property

Gets or sets the name of the object. This field typically remains fixed during the lifetime of an object.

(Inherited from GH_InstanceDescription.)


Public Property

Gets or sets the nickname of the object. This field can be changed by the user.

(Inherited from GH_InstanceDescription.)


Public Property

Gets whether this object is obsolete. Default implementation returns true if the class name contains the string “OBSOLETE” or if this class has been decorated with the ObsoleteAttribute. You are free to override this if you want, but I suggest adding the ObsoleteAttribute instead.

(Inherited from GH_DocumentObject.)


Public Property

Gets the parameter manager object for this component.


Public Property

Gets or sets the solution phase this object is currenly in.

(Inherited from GH_ActiveObject.)


Public Property

Gets or sets the principal parameter index override. Negative indices or indices larger than or equal to the input parameter count will be ignored and regular principal parameter detection will kick in.


Public Property

Gets the total processor time (profiler) spend by this component and all input parameters.

(Overrides

.)


Public Property

Gets a value indicating how many times the SolveInstance method was called on this component during the last solution. This property will return -1 if no valid runcount is available.


Public Property

Returns the worst case runtime warning level of me and all my parameters

(Overrides

.)


Public Property

Gets or sets the SubCategory in which this object belongs. If HasSubCategory() returns false, this field has no meaning.

(Inherited from GH_InstanceDescription.)


Methods

Name

Description


Public Method

Overrides the AddedToDocument method and delegates the call to all parameters.

(Overrides

.)


Public Method

Add a new message to this object. Valid message type flags are Warning and Error. If the Message string is empty or zero-length no message is added.

(Inherited from GH_ActiveObject.)


Protected method

Override this method if you want to be called after the last call to SolveInstance.


Protected method

Override this function if you want to insert some custom menu items in your derived Component class. Items will be added between List Matching items and parameter menus.


Public Method

Adds typical component type items to the context menu: 1. Data comparison types 2. Custom (overridden) items 3. Nested input parameter context menu items 4. Nested output parameter context menu items

(Overrides

.)


Public Method

This function is called when a context menu is about to be displayed. Override it to set custom items. GH_ActiveObject will already populate the menu with default items, if you merely wish to insert object-specific menu item, consider overriding AppendAdditionalMenuItems instead.

(Inherited from GH_ActiveObject.)


Protected method

Utility function for parsing and assigning init codes. This only works for standard parameter types.


Public Method

Public Method

Protected method

Override this method if you want to be called before the first call to SolveInstance.


Public Method

Clear the data inside this component and all output parameters.

(Overrides

.)


Public Method

Clears all runtime messages in me and my parameters

(Overrides

.)


Public Method

Calls CollectData on all input parameters and makes sure the Component and all associated parameters are left in a valid state.

(Overrides

.)


Public Method

Compute all data and fill out all output parameters.

(Overrides

.)


Public Method

Copy all fields (except the instance ID) from another instance description.

(Inherited from GH_InstanceDescription.)


Public Method
CreateAttributes

Create new attributes.

(Overrides

.)


Public Method

Returns True is any one of my input parameters depends on the source.

(Overrides

.)


Protected method

Call this method to erase the existing icon cache. You must call this if you want to change the display icon of an object.

(Inherited from GH_DocumentObject.)


Protected methodStatic Member

Gets the Angle tolerance (in radians) for the currently active Rhino document.


Public Method

Overrides the DocumentContextChanged method and delegates the call to all parameters.

(Overrides

.)


Protected methodStatic Member

Gets the Absolute tolerance for the currently active Rhino document.


Public Method

Draw preview meshes for this component and all associated parameters.


Public Method

Draw preview wires for this component and all associated parameters.


Protected method

Expire all objects that depend on any of the output parameters.

(Overrides

.)


Public Method

Call this function when you suspect that the preview has expired for this object. This will cause the display cache to be eradicated.

(Inherited from GH_DocumentObject.)


Public Method

Informs the document that owns this object that the solution has expired. The current object will be set to BLANK as a result. This method is recursive, it will also expire any and all objects which depend on this object. If you want a less destructive expiration, consider using ClearData(). If this object is already Blank, you should consider not expiring it.

(Inherited from GH_ActiveObject.)


Protected method

GenerateDefaultHTML

Creates the default component help topic, including all parameter lists.


Protected method

Create an HTML string that lists names and descriptions for input and output parameters.


Protected method

Generate HTML string for a single parameter.


Protected method

Get a boolean value from the component value table.

(Inherited from GH_DocumentObject.)


Protected method

Get a double value from the component value table.

(Inherited from GH_DocumentObject.)


Protected method

Get a color value from the component value table.

(Inherited from GH_DocumentObject.)


Protected method

Get an integer value from the component value table.

(Inherited from GH_DocumentObject.)


Protected method

Get a string value from the component value table.

(Inherited from GH_DocumentObject.)


Protected method

HtmlHelp_Source

Return a String which contains HTML formatted source for the help topic. If you want to pass a URL that points to a remote page, then prefix the URL with a GOTO: tag, like so: GOTO:http://www.YourWebAddressHere.com

(Overrides GH_DocumentObject.HtmlHelp_Source..)


Public Method

Sever the connections of all input and output parameters.

(Overrides

.)


Protected method

Append the default Bake menu item.

(Inherited from GH_ActiveObject.)


Protected method

Append the default Enable/Disable menu item.

(Inherited from GH_ActiveObject.)


Protected method

Appends the default object Help menu item.

(Inherited from GH_DocumentObject.)


Protected method

Appends the old-fashioned object name menu item. If you also want the Display mode toggle then use Menu_AppendObjectNameEx()

(Inherited from GH_DocumentObject.)


Protected method

Appends the default object name + display mode menu item.

(Inherited from GH_DocumentObject.)


Protected method

Append the default Show/Hide preview menu item.

(Inherited from GH_ActiveObject.)


Protected method

Appends the default item for publishing to RCP. This menu will only appear if the current class implement IRcpAwareObject

(Inherited from GH_DocumentObject.)


Protected method

Append the default warnings and errors menu items.

(Inherited from GH_ActiveObject.)


Public Method

Overrides the MovedBetweenDocuments method and delegates the call to all parameters.

(Overrides

.)


Public Method

Generate a new random instance GUID

(Inherited from GH_InstanceDescription.)


Public Method

Set the instance ID to be a specific GUID. This is very dangerous, only use this function if you’re 6”4’ and your first name is David.

(Inherited from GH_InstanceDescription.)


Public Method

Raises the AttributesChanged event on the toplevel object.

(Inherited from GH_DocumentObject.)


Public Method

Raises the DisplayExpired event on the toplevel object.

(Inherited from GH_DocumentObject.)


Public Method

(Inherited from GH_DocumentObject.)


Public Method

(Inherited from GH_DocumentObject.)


Public Method

(Inherited from GH_DocumentObject.)


Public Method

(Inherited from GH_DocumentObject.)


Public Method

(Inherited from GH_DocumentObject.)


Public Method

Raise the PingDocument Event on the toplevel object and try to find the document which owns this object.

(Inherited from GH_DocumentObject.)


Public Method

Raises the PreviewExpired event on the toplevel object.

(Inherited from GH_DocumentObject.)


Public Method

Raises the SolutionExpired event on the toplevel object. You probably want to call ExpireSolution() instead of this method directly.

(Inherited from GH_DocumentObject.)


Protected method

The PostConstructor is called from within each constructor. DO NOT OVERRIDE THIS unless you know what you are doing.


Public Method

Read all required data for deserialization from an IO archive.

(Overrides

.)


Public Method

GH_InstanceDescription does not by default serialize all fields. Use this function to read all fields from the archive. This method is compatible with the default Write()/Read() operations.

(Inherited from GH_InstanceDescription.)


Public Method

Record an entire undo record.

(Inherited from GH_DocumentObject.)


Public Method

Record a generic object change undo event.

(Inherited from GH_DocumentObject.)


Public Method

Record a specific object change undo event.

(Inherited from GH_DocumentObject.)


Protected method

Declare all your input parameters here.


Protected method

Declare all your output parameters here.


Public Method

Registers all my input parameters with the UUID_LookUpTable

(Overrides

.)


Public Method

Overrides the RemovedFromDocument method and delegates the call to all parameters.

(Overrides

.)


Public Method

Gets the list of cached runtime messages that were recorded during solver-time processes. For components, the set of runtime messages also includes input and output parameters.

(Overrides

.)


Public Method

Test whether this object is compliant with a given Rhino version.

(Inherited from GH_ActiveObject.)


Public Method

Set a new custom icon override for this object.

(Inherited from GH_DocumentObject.)


Protected method

Set a named value. This value will be serialized with the component.

(Inherited from GH_DocumentObject.)


Protected method

Set a named value. This value will be serialized with the component.

(Inherited from GH_DocumentObject.)


Protected method

Set a named value. This value will be serialized with the component.

(Inherited from GH_DocumentObject.)


Protected method

Set a named value. This value will be serialized with the component.

(Inherited from GH_DocumentObject.)


Protected method

Set a named value. This value will be serialized with the component.

(Inherited from GH_DocumentObject.)


Protected method

This function will be called (successively) from within the ComputeData method of this component.


Public Method

Triggers the AutoSave function on the owner document with the object_changed flag.

(Inherited from GH_DocumentObject.)


Public Method

Triggers the AutoSave function on the owner document with a custom flag.

(Inherited from GH_DocumentObject.)


Public Method

Triggers the AutoSave function on the owner document with the object_changed flag.

(Inherited from GH_DocumentObject.)


Public Method

Triggers the AutoSave function on the owner document with a custom flag.

(Inherited from GH_DocumentObject.)


Protected method

Override this method if you want to respond to changes to the value table. The base implementation is empty, so you don’t have to call it.

(Inherited from GH_DocumentObject.)


Public Method

Write all required data for deserialization to an IO archive.

(Overrides

.)


Public Method

GH_InstanceDescription does not by default serialize all fields. Use this function to write all fields to the archive. This method is compatible with the default Write()/Read() operations.

(Inherited from GH_InstanceDescription.)


Events

Name

Description


Public Event

Raised whenever the number or kind of attributes changes. This event is handled by GH_Documents who subsequently wipe their attribute caches.

(Inherited from GH_DocumentObject.)


Public Event

Raised whenever the display (on the Canvas) of a certain object becomes invalid.

(Inherited from GH_DocumentObject.)


Public Event

(Inherited from GH_DocumentObject.)


Public Event

Raised whenever an object needs to know which GH_Document it belongs to.

(Inherited from GH_DocumentObject.)


Public Event

Raised whenever the display (in the Rhino viewports) of a certain object becomes invalid.

(Inherited from GH_DocumentObject.)


Public Event

Raised whenever the solution of a certain object becomes invalid.

(Inherited from GH_DocumentObject.)


Fields

Name

Description


Protected field

m_attributes

(Inherited from GH_DocumentObject.)