# Grasshopper2.Doc namespace

Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

## Interfaces

- [IAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iattributes.md): Provides the methods required for the UI interaction with document objects. Attributes are typically *not* deserialized, so all persistent properties ought to be part of the owner document object.
- [ICursorAwareAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.icursorawareattributes.md): Implement this interface in your [IDocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentobject.md) [IAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iattributes.md) class if you wish to modify the cursor.
- [IDocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentobject.md): Defines the rules and regulations for any object that wishes to be part of an IDocument.
- [IDocumentParent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentparent.md): Implement this interface in your [IDocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentobject.md) type in order to host another document inside it. For example [Chain](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.standard.chain.md) and [Cluster](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.standard.cluster.md) objects are document parents.
- [IGuidAware](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iguidaware.md): Implement this interface in your [IDocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentobject.md) if you wish to be notified about object instance id changes.
- [IInitCodeAware](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iinitcodeaware.md): Objects which can be initialised with user specified arguments may implement this interface.
- [ILockableObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.ilockableobject.md): Implement this interface in your IDocumentObject class if you wish to provide UI for locking certain properties of the object.
- [IMouseDwellAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.imousedwellattributes.md): Implement this interface in your `Attributes` class to inform the canvas that any mousemoves (even ones not coincident with the attributes) may invalidate the attributes. This is typically used for mouse-hover feedback.
- [IObjectConnectivity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iobjectconnectivity.md): Interface for read-only access to object connectivity data.
- [IParameterAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iparameterattributes.md): Parameter attributes. This interface extends IAttributes by providing Inlet and Outlet points.
- [IReferenceAware](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.ireferenceaware.md): Any [IDocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentobject.md) which wishes to be informed when Rhino objects change must implement this interface.
- [IRemovalAware](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iremovalaware.md): Implements this interface in your [IDocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentobject.md) to be notified when your object is about to be deleted by the user.
- [ISolutionPriority](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.isolutionpriority.md): Implement this interface on your active object if you wish it to be put at the front of the solve-order list.
- [IStateAwareObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.istateawareobject.md): Implement this interface in your IDocumentObject class if you wish to be included in state UI.

## Classes

- [ActiveObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.activeobject.md): Abstract implementation of the IDocumentObject interface for objects that wish to participate in solutions.
- [AfterAddObjectEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.afteraddobjecteventargs.md): Event arguments used for Object Added event.
- [AfterRemoveObjectEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.afterremoveobjecteventargs.md): Event arguments used for Object Added event.
- [Attributes<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1.md): Base abstract implementation of IAttributes.
- [BeforeAddObjectEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.beforeaddobjecteventargs.md): Event arguments used for Object Added event.
- [BeforeRemoveObjectEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.beforeremoveobjecteventargs.md): Event arguments used for Object Removed event.
- [CallStack](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.callstack.md): Represents the stack of objects that form the invocation sequence to a specific [IDocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentobject.md). This is typically used to figure out whether an invocation sequence is in fact a loop (i.e. cyclical), but it may be useful for other purposes too.
- [CommonMessages](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.commonmessages.md): Exposes common standard message texts, infos and actions.
- [ConnectiveGroup](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.connectivegroup.md): Represents a single group in a document [Connectivity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.connectivity.md). Note that groups with attached pins can have inputs and outputs, which is why groups derive from objects.
- [ConnectiveObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.connectiveobject.md): Represents a single top-level object in a document [Connectivity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.connectivity.md). Any attached pins are considered to be part of the object itself and its inputs and outputs are included in the [ConnectiveObject.In](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.connectiveobject/in.md) and [ConnectiveObject.Out](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.connectiveobject/out.md) properties.
- [Connectivity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.connectivity.md): A readonly snapshot of the object connectivity within a document.
- [CyclicalDependencyException](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.cyclicaldependencyexception.md): Thrown when a loop in the dependency graph is found.
- [CyclicalGraphException](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.cyclicalgraphexception.md): Exception thrown whenever a cyclical graph is detected. This exception is thrown automatically when an object which is already part of a [CallStack](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.callstack.md) is pushed onto the same stack again: RH-68232
- [DataDifference](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.datadifference.md): A difference in persistent data of the same object between two documents.
- [DependencyData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.dependencydata.md): Represents the data in a resolved dependency.
- [DependencyGraph](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.dependencygraph.md): A graph representing the loaded portion of document dependencies.
- [DependencyGraph.Node](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.dependencygraph.node.md): A node in a dependency graph.
- [DependencyNotFoundException](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.dependencynotfoundexception.md): Thrown when a file does not contain the specified named data.
- [Difference](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.difference.md): Abstract base class for individual differences.
- [Differences](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.differences.md): A collection of differences between two documents.
- [Document](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.document.md): The Grasshopper document class. Documents contain all objects, undo record, solution and display logic.
- [DocumentDependencies](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentdependencies.md): A class for maintaining and harvesting data from document dependencies. For example when this document imports data from another document.
- [DocumentDisplay](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentdisplay.md)
- [DocumentEventArgs<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documenteventargs-1.md): Generic class for document events.
- [DocumentIO](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentio.md): Utility methods for saving and opening documents.
- [DocumentIO.ObjectNodeMatcher](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentio.objectnodematcher.md): Class for matching object nodes in a *.ghz archive. Objects may be stored in a different order in two files while being fundamentally the same object. This is particularly common when a Group is added, as groups are stored at the start of the object list, thus bumping all other objects up to a higher index. When comparing two files for differences, it is recommended to provide an instance of this NodeMatcher to the diff method.
- [DocumentMethods](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentmethods.md): This class exposes common operations that are performed on documents. Always consider using a method in this class instead of a more low-level one.
- [DocumentModifiedEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentmodifiedeventargs.md): Event arguments used in document state change events.
- [DocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject.md): Abstract implementation of the IDocumentObject interface for all objects.
- [DocumentStateEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentstateeventargs.md): Event arguments used in document state change events.
- [Examiner](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.examiner.md): A utility class for examining files written by the GrasshopperIO assembly.
- [FileUtility](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.fileutility.md): This class maintains all information and functionality regarding document files.
- [FleetingCustomData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.fleetingcustomdata.md): A threadsafe dictionary with strongly typed access for values which are never serialised.
- [GlobalServer](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.globalserver.md): Maintains a collection of global data sources within a document.
- [ImportantPropertyAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.importantpropertyattribute.md): Defines attributes to be assigned to properties on IDocumentObject classes.
- [KeyedValues](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.keyedvalues.md): A class for maintaining a mutable and overwritable set of named values to be used inside document objects.
- [KeyValueEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.keyvalueeventargs.md): Arguments used in the events raised by the [KeyedValues](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.keyedvalues.md) class.
- [LayoutDifference](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.layoutdifference.md): A difference of layout (position or size or both) between two objects with identical IDs.
- [Message](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.message.md): A message associated with an [IDocumentObject](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.idocumentobject.md), typically generated during solutions.
- [MessageAction](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.messageaction.md): A class wrapping around a [MessageDelegate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.messagedelegate.md).
- [MessageException](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.messageexception.md): Exception used in solution failures. Contains both a short form and long form message.
- [Messages](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.messages.md): A collection of zero or more [Message](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.message.md) instances.
- [ModifierDifference](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.modifierdifference.md): A difference of modifiers between two parameters with identical IDs.
- [NamedView](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.namedview.md): A single named view into a document.
- [NamedViews](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.namedviews.md): A collection of named views.
- [ObjectAutoSaveEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectautosaveeventargs.md): Event arguments for IDocumentObject autosave events.
- [ObjectConnectivity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectconnectivity.md): Implementation of IObjectConnectivity.
- [ObjectDifference](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectdifference.md): A difference of existence of an object between two documents.
- [ObjectDocumentEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectdocumenteventargs.md): Event arguments for IDocumentObject generic events.
- [ObjectEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objecteventargs.md): Event arguments for IDocumentObject events.
- [ObjectGuidEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectguideventargs.md): Event arguments for IDocumentObject name events.
- [ObjectList](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectlist.md): Represents the collection of all objects in a document.
- [ObjectNameEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectnameeventargs.md): Event arguments for IDocumentObject name events.
- [ObjectPhaseEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectphaseeventargs.md): Event arguments for IDocumentObject phase events.
- [ObjectSolutionState](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectsolutionstate.md): An immutable, thread-safe class aggregating all fields relevant to object solutions.
- [OCD](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.ocd.md): Static utility methods for document layouts.
- [ParameterAttributes<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.parameterattributes-1.md)
- [RecentFiles](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.recentfiles.md): Provides access to the list of recently opened files.
- [Recipients](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.recipients.md): This class provides methods for maintaining a collection of recipient objects.
- [ResolveGlobalEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.resolveglobaleventargs.md): Event arguments used with the GlobalServer.ResolveExternal event. Handle this even if you think you can provide a resolution to a global request which could not be handled intra-document.
- [SelectionResult](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.selectionresult.md): List of all (de)selected objects and wires during a picking or selection operation.
- [ServerState](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.serverstate.md)
- [SessionEntry](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.sessionentry.md): Records the state of a single open document at the time a session snapshot was written. One [SessionEntry](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.sessionentry.md) is created per open document and stored within a [SessionRecord](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.sessionrecord.md).
- [SessionFile](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.sessionfile.md): Static helpers for capturing, persisting and restoring a [SessionRecord](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.sessionrecord.md) on disk. The on-disk record lives in [Folders.LocalAppDataFolder](https://developer.rhino3d.com/api/gh2/type/grasshopper2.folders/localappdatafolder.md) and is written at shutdown; the next startup reads it and reinstates the documents that were open when the previous session ended.
- [SessionRecord](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.sessionrecord.md): A snapshot of all documents open in the editor at the moment a session ends. Designed to be written at shutdown (clean or otherwise) and read at startup to reinstate the editor in the state the user left it in.
- [Solution](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solution.md): Maintains a set of methods and properties which are used by IDocumentObjects while computing new solution data.
- [SolutionData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutiondata.md): Storage class for object solution results.
- [SolutionEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutioneventargs.md): Arguments used in document solution events.
- [SolutionExceptionEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutionexceptioneventargs.md): Arguments used in document solution exception events.
- [SolutionIdEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutionideventargs.md): Arguments used in the document tally event.
- [SolutionRecord](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutionrecord.md): Maintains very basic information about finished solutions.
- [SolutionServer](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutionserver.md): This class provides all methods and properties concerning past document solutions and how to start new ones.
- [StandardKeys](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.standardkeys.md): Exposes a set of standard keys used in various [KeyedValues](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.keyedvalues.md) instances throughout Grasshopper.
- [WireDifference](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.wiredifference.md): A difference of connecting wires between two documents.

## Enums

- [AutoSaveReason](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.autosavereason.md): Enumerates common reasons for autosaving.
- [AutoSaveResult](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.autosaveresult.md): Enumerates the possible outcomes of an autosave request.
- [BackupMethod](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.backupmethod.md): Enumerates the ways in which documents can be written to the disk during a save operation.
- [ClipboardKind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.clipboardkind.md): Enumerates the possible clipboards Grasshopper uses.
- [ComputeTaskKind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.computetaskkind.md): Enumerates the possible kind of tasks that the IDocumentObject.Compute() method can emit.
- [ContentFilter](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.contentfilter.md): Enumerates the possible types of document content.
- [DependencyGraph.NodeFileType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.dependencygraph.nodefiletype.md)
- [DiffType](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.difftype.md): Lists the various kinds of differences that can exist between two files.
- [DocumentState](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentstate.md): Enumerates the possible states in which a document can exist.
- [FileContents](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.filecontents.md): Enumerates the possible contents of a GHZ file.
- [GlobalAdditionResult](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.globaladditionresult.md): Enumerates the possible outcomes of adding a global object to a document.
- [GraphTopology](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.graphtopology.md): Enumerates the possible topologies of partial networks.
- [MessageLevel](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.messagelevel.md): Enumerates the severity of possible message levels.
- [ObjectActivity](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectactivity.md): Enumerates the defined object status (on/off/standby/etc.). In the future more values may be added to this enum to reflect more subtle states.
- [ObjectDisplay](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectdisplay.md): Enumerates the defined object display states. In the future more values may be added to this enum to reflect more subtle display states.
- [ObjectDisplayStyle](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectdisplaystyle.md): Enumerates the possible display styles of this object.
- [ObjectLevel](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectlevel.md): Enumerates the possible levels at which objects can occur.
- [ObjectRelevance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectrelevance.md): Enumerates the defined object relevance states. In the future more values may be added to this enum to reflect more subtle relevance states.
- [ObjectSelection](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.objectselection.md): Enumerates the defined object selection states. In the future more values may be added to this enum to reflect more subtle selection states.
- [OCD.Fixed](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.ocd.fixed.md)
- [PasteBehaviour](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.pastebehaviour.md): Enumerates the possible behaviours of the paste command.
- [Phase](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.phase.md): Enumerates the possible solution phases an object can attain.
- [Pick](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.pick.md): Enumerates the possible kinds of pick.
- [ProfilerCategory](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.profilercategory.md): Enumerates the different operations that are profiled.
- [RecentFiles.State](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.recentfiles.state.md)
- [SessionEntryKind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.sessionentrykind.md): Categorises the kind of document a [SessionEntry](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.sessionentry.md) describes.
- [SolutionCulmination](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutionculmination.md): Enumerates the possible ways in which solutions can terminate.
- [SolutionMode](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutionmode.md): Enumerates the various modes a solution can run in.
- [SolutionPhase](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutionphase.md): Enumerates the possible solution states in which a document can occur.
- [WhichDoc](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.whichdoc.md): Enumerates the possible document pointers.

## Delegates

- [MessageDelegate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.messagedelegate.md): A delegate for errors and warnings to invoke when they are clicked. Provide naming overrides and detailed information by attached the [UiNameAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.uinameattribute.md) and [UiInfoAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.uiinfoattribute.md) attributes to your method.

## Structs

- [RecentFiles.File](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.recentfiles.file.md)
- [SolutionId](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.solutionid.md): Provides an app-wide secure way to generate solution runtime ids.
- [WireData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.wiredata.md): Represents the instance ids of the parameters at either end of a wire, as well as the indices within the respective input and output arrays.
- [WireEnds](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.wireends.md): Represents the instance ids of the parameters at either end of a wire.
