# GrasshopperIO namespace

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

## Interfaces

- [ICustomIoId](https://developer.rhino3d.com/api/gh2/type/grasshopperio.icustomioid.md): Implement this interface in your class if you cannot attach an [IoIdAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopperio.ioidattribute.md) to your type. When the IoId of a specific type which implements this interface is required, it will be instantiated and interrogated once, and the id will be cached for future queries. This means your class must also provide a public constructor without any arguments.
- [IReader](https://developer.rhino3d.com/api/gh2/type/grasshopperio.ireader.md): Provides access to a subset of Node methods used for writing archives.
- [IStorable](https://developer.rhino3d.com/api/gh2/type/grasshopperio.istorable.md): Implement this interface if you wish to participate in GrasshopperIO serialization.
- [IWriter](https://developer.rhino3d.com/api/gh2/type/grasshopperio.iwriter.md): This interface is implemented by Node and provides ways to store the standard data types.

## Classes

- [AbsRelPaths](https://developer.rhino3d.com/api/gh2/type/grasshopperio.absrelpaths.md): A pair consisting of an absolute and relative path on a file system.
- [FileSystemPath](https://developer.rhino3d.com/api/gh2/type/grasshopperio.filesystempath.md): An absolute or relative path on a file system. This type re-implements some functionality normally provided by the [Uri](https://learn.microsoft.com/dotnet/api/system.uri) type, but it does so in a reliable, and cross-platform consistent way.
- [IO](https://developer.rhino3d.com/api/gh2/type/grasshopperio.io.md): Static methods for safe reading and writing to and from IStorable implementations.
- [IoIdAttribute](https://developer.rhino3d.com/api/gh2/type/grasshopperio.ioidattribute.md): An attribute which associates an ID with a serialised object. This is usually required for the deserialisation of derived types, where it isn't clear which exact type is required to parse a specific portion of a file stream.
- [LinkTypeEventArgs](https://developer.rhino3d.com/api/gh2/type/grasshopperio.linktypeeventargs.md): Event arguments used for type/identifier linking.
- [Name](https://developer.rhino3d.com/api/gh2/type/grasshopperio.name.md): A name is used to uniquely identify a specific item or node. It is a combination of a text label and an optional integer index.
- [Path](https://developer.rhino3d.com/api/gh2/type/grasshopperio.path.md): A sequence of names, identifying a node or item from the root of an archive.
- [StorableException](https://developer.rhino3d.com/api/gh2/type/grasshopperio.storableexception.md): Used for store/restore exceptions.
