# GH_TreeRules class

Namespace: [Grasshopper.Kernel.Data](https://developer.rhino3d.com/api/gh1/namespace/grasshopper.kernel.data.md) · Assembly: [Grasshopper](https://developer.rhino3d.com/api/gh1/assembly/grasshopper.md)

```cs
[DebuggerDisplay("{ToString()}")]
public sealed class GH_TreeRules
```

Represents an entire data tree rule set.

## Constructors

- [GH_TreeRules](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/ctor.md): Constructs a new rule set for testing data trees. Unless you know exactly what you are doing, use the FromString() static method instead.

## Fields

- [AllowedChars](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/allowedchars.md): (static)
- [AndOperator](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/andoperator.md): (static)
- [AnyNumbersSymbol](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/anynumberssymbol.md): (static)
- [AnyNumberSymbol](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/anynumbersymbol.md): (static)
- [ItemBrackets](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/itembrackets.md): (static)
- [ItemCloseBracket](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/itemclosebracket.md): (static)
- [ItemOpenBracket](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/itemopenbracket.md): (static)
- [NotOperator](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/notoperator.md): (static)
- [OrOperator](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/oroperator.md): (static)
- [PathBrackets](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/pathbrackets.md): (static)
- [PathCloseBracket](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/pathclosebracket.md): (static)
- [PathOpenBracket](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/pathopenbracket.md): (static)
- [PathSeparator](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/pathseparator.md): (static)
- [RangeSymbol](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/rangesymbol.md): (static)
- [RuleBrackets](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/rulebrackets.md): (static)
- [RuleCloseBracket](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/ruleclosebracket.md): (static)
- [RuleOpenBracket](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/ruleopenbracket.md): (static)
- [Separator](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/separator.md): (static)
- [SequenceCode](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/sequencecode.md): (static)
- [SequenceSymbol](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/sequencesymbol.md): (static)

## Properties

- [HasItemRule](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/hasitemrule.md): Gets whether this rule set has a defined index rule.
- [HasPathRules](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/haspathrules.md): Gets whether this rule set has any path rules.
- [PathRuleCount](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/pathrulecount.md): Gets the number of defined path rules.

## Methods

- [Apply](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/apply.md): (2 overloads) Apply all the local rules to a path+index combination.
- [FromString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/fromstring.md): (static) Attempt to parse a Pattern string.
- [ToString](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-treerules/tostring.md)
