# MetaData class

Namespace: [Grasshopper2.Data.Meta](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.data.meta.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
[IoId("00000000-3083-4573-b36e-50803b2b2e3f")]
public sealed class MetaData : IStorable
```

Represents an unbounded collection of meta data.

## Constructors

- [MetaData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/ctor.md): (2 overloads) Deserialization constructor.

## Properties

- [Count](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/count.md): Gets the number of items in this data.
- [Empty](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/empty.md): (static) Gets empty meta data.
- [TransformableCount](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/transformablecount.md): Gets the number of transformable entries in this meta data.

## Indexers

- [this[]](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/item.md): Gets the entry associated with the given name. We recommend using the type-safe generic Get() method instead.

## Methods

- [Add](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/add.md): (17 overloads) Add an angle value.
- [AddRhinoId](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/addrhinoid.md): (4 overloads) Add the 'Rhino.Id' to this meta data and harvest all values from attributes userstrings.
- [Compare](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/compare.md): (static) Perform sort comparison on two blobs of meta data.
- [ContainsName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/containsname.md): Determines whether this data contains an element with the specified name.
- [DebugData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/debugdata.md): (static) Create a meta data palette containing all supported data types. This is handy for debugging purposes.
- [DebugDataSmall](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/debugdatasmall.md): (static) Create a meta data palette containing only system types. This is handy for debugging purposes.
- [Equals](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/equals.md): (static) Compare two meta data values for equality.
- [FindCommonData](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/findcommondata.md): (5 overloads, static) Find all non-conflicting meta data in a collection.
- [Get<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/get.md): (2 overloads) Gets the value with the given or alternate name. This overload makes it easier to check for names which may have different spellings, such as Color/Colour, or Neighbor/Neighbour.
- [GetHashCode](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/gethashcode.md)
- [GetNamesAndValues](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/getnamesandvalues.md): (2 overloads) Get two string arrays describing both the names and the values.
- [Matches](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/matches.md): Tests whether any of the names matches any of the patterns.
- [Merge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/merge.md): (5 overloads) Merged multiple metas data collections into a single meta data.
- [Names](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/names.md): (2 overloads) Enumerate over all names in this data.
- [Remove](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/remove.md): (2 overloads) Remove entries with the specified names.
- [RemovePattern](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/removepattern.md): Remove all entries which match the specified wildcard pattern.
- [RemoveTransient](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/removetransient.md): Remove all transient values from this metadata.
- [Rename](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/rename.md): Rename one of the entries in this metadata. If there is already an entry with the 'replace' name, it will be overwritten.
- [Store](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/store.md): Serialise this meta data.
- [ToString](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/tostring.md): (2 overloads) Returns a string representing the meta data.
- [Transform](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/transform.md): (2 overloads) Deform this meta data. Note that this is much less well defined than linear transforms. We'll do the best we can, but sometimes meta data simply cannot be deformed correctly. Only points and planes can be deformed as they have a location in space.
- [TransformableNames](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/transformablenames.md): Gets all transformable names. These names represent items which will be affected when this data is transformed using a 4x4 matrix.
- [Validate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/validate.md): (static) Validate a bunch of meta data using the currently known rules. Plugins may supply their own rules so the behaviour of this method depends on the state of the loaded plugins. As a result, no action should be taken based on the return value of this method, it is meant purely to provide interface feedback, nothing more.

## Events

- [ValidationRequired](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/validationrequired.md): (static) A static event used for testing meta data validity. Handle this event if you wish to flag warnings when the wrong kind of data or the wrong kind of value is associated with a name you care about.

## Operators

- [operator +](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/op-addition.md): (2 overloads, static) Merge two metadata instances. This operator correctly handles null instances. In the case of conflicting entries, the left hand instance wins.
- [operator -](https://developer.rhino3d.com/api/gh2/type/grasshopper2.data.meta.metadata/op-subtraction.md): (static)
