# Grasshopper.Kernel.Data namespace

Assembly: [Grasshopper](https://developer.rhino3d.com/api/gh1/assembly/grasshopper.md)

## Interfaces

- [IGH_DataTree](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.igh-datatree.md): Utility interface for detection of DataTree generic instances.
- [IGH_IndexRule](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.igh-indexrule.md): Interface for index rules. An index rule is a way to determine whether a specific integer is considered valid, invalid or neutral. Index rules are used for selecting elements in DataTrees.
- [IGH_Rule](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.igh-rule.md): Interface for individual pattern elements.
- [IGH_Structure](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.igh-structure.md): Base interface for all GH_Structure types.
- [IGH_StructureEnumerator](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.igh-structureenumerator.md): Defines a minimum interface for iterating over all data in an IGH_Structure.

## Classes

- [GH_BracketMismatchException](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-bracketmismatchexception.md): Exception used during Rule Set parsing.
- [GH_DirtyCaster](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-dirtycaster.md)
- [GH_GraphicBranch](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-graphicbranch.md)
- [GH_GraphicTreeDisplayArgs](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-graphictreedisplayargs.md): A class that contains useful information used for drawing GH_GraphicTrees.
- [GH_IndexRanges](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-indexranges.md): Represents a sorted, non-colliding collection of index ranges.
- [GH_IndexRuleSet](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-indexruleset.md): A collection of index rules.
- [GH_Lexer](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-lexer.md): Represents a lexical mask for path operations.
- [GH_LexerCombo](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-lexercombo.md): Contains both a source and a target lexer object.
- [GH_Path](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-path.md): Describes the path in structure space of a data item or a list of items. A path consists of a series of integers, each one of which represents an index in a branch structure.
- [GH_Path.PathLengthComparer](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-path.pathlengthcomparer.md): Use this comparer to sort lists of paths using a topological approach. Shorter paths are favoured over longer paths. Equal length paths use the default comparer.
- [GH_PathOffset](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-pathoffset.md): Represents a relative offset within a data structure.
- [GH_RuleAnyNumber](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-ruleanynumber.md)
- [GH_RuleAnyNumbers](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-ruleanynumbers.md)
- [GH_RuleComplex](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-rulecomplex.md)
- [GH_RuleGroup](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-rulegroup.md)
- [GH_RuleNumber](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-rulenumber.md)
- [GH_RuleRange](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-rulerange.md)
- [GH_RuleSequence](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-rulesequence.md)
- [GH_StringMismatchException](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-stringmismatchexception.md): Exception used during Rule Set parsing.
- [GH_Structure<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-structure-1.md): Represents a data tree where each branch has a unique path
- [GH_TreeBuilder](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treebuilder.md)
- [GH_TreeFilter](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treefilter.md): Represents a collection of rules for validating DataTree paths and indices.
- [GH_TreeRules](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules.md): Represents an entire data tree rule set.

## Enums

- [GH_ExpandMode](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-expandmode.md): Enumerates the possible expansion modes for structure paths.
- [GH_GraftMode](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-graftmode.md): Enumerates all predefined grafting modes.
- [GH_RuleKind](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-rulekind.md): Represents all possible element types in a Path Pattern.
- [GH_RuleOperator](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-ruleoperator.md): Enumerate the possible ways rules can be strung together.
- [GH_RuleResult](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-ruleresult.md): Enumerates the possible opinions a rule can have.
- [GH_SimplificationMode](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-simplificationmode.md): Enumerates the possible data structure simplification modes.

## Structs

- [GH_IndexRange](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-indexrange.md): Represents a range of indices.
- [GH_TreeIndex](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treeindex.md): Represents a single unique location in a DataTree.

## Delegates

- [GH_Structure<T>.ConversionDelegate<Tfrom, Tto>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-structure-1.conversiondelegate-2.md): Represents a conversion between two types of IGH_Goo.
