# GH_ISerializable interface

Namespace: [GH_IO](https://developer.rhino3d.com/api/gh1/namespace/gh-io.md) · Assembly: [GH_IO](https://developer.rhino3d.com/api/gh1/assembly/gh-io.md)

```cs
public interface GH_ISerializable
```

Every object which needs to (de)serialize itself using GH_IO methodology must implement this interface.

**Derived types:** [GH_Author](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-author.md), [GH_ColourWheelState](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-colourwheelstate.md), [GH_ComponentParamServer](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-componentparamserver.md), [GH_CustomButton](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.gh-custombutton.md), [GH_Document](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-document.md), [GH_DocumentProperties](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-documentproperties.md), [GH_Gradient](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.gradient.gh-gradient.md), [GH_GraphContainer](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.graphs.gh-graphcontainer.md), [GH_Grip](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.gradient.gh-grip.md), [GH_IndexRange](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-indexrange.md), [GH_IndexRanges](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-indexranges.md), [GH_Layout](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.ribbon.gh-layout.md), [GH_LayoutItem](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.ribbon.gh-layoutitem.md), [GH_LayoutPanel](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.ribbon.gh-layoutpanel.md), [GH_LayoutTab](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.ribbon.gh-layouttab.md), [GH_MenuShortcut](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.gh-menushortcut.md), [GH_NamedView](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.canvas.gh-namedview.md), [GH_PanelProperties](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.special.gh-panelproperties.md), [GH_Path](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-path.md), [GH_PreviewBoundary](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-previewboundary.md), [GH_Revision](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-revision.md), [GH_SettingsServer](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-settingsserver.md), [GH_SineEquation](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.graphs.gh-sineequation.md), [GH_State](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-state.md), [GH_StateServer](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-stateserver.md), [GH_Structure<T>](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.data.gh-structure-1.md), [GH_Theme](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.theme.gh-theme.md), [GH_WireTopology](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-wiretopology.md), [GH_WireTopologyDiagram](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.gh-wiretopologydiagram.md), [IGH_Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-attributes.md), [IGH_FieldElement](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.igh-fieldelement.md), [IGH_Goo](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.igh-goo.md), [IGH_Graph](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.graphs.igh-graph.md), [IGH_IconObject](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.iconeditor.igh-iconobject.md), [IGH_InstanceDescription](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.igh-instancedescription.md), [IGH_UndoAction](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.undo.igh-undoaction.md), [ItemDisplayColor.Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.display.itemdisplaycolor.value.md), [ITransform](https://developer.rhino3d.com/api/gh1/type/grasshopper.kernel.types.transforms.itransform.md), [ModelHatchLine.Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.drafting.modelhatchline.attributes.md), [ModelTags](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.modeltags.md), [ModelTextureSlot.Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.render.modeltextureslot.attributes.md), [ModelUnitSystem.Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.modelunitsystem.value.md), [ModelUserText](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.modelusertext.md), [ObjectDisplay.Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.display.objectdisplay.attributes.md), [ObjectDisplayColor.Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.display.objectdisplaycolor.value.md), [ObjectDrafting.Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.drafting.objectdrafting.attributes.md), [ObjectDraftingColor.Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.drafting.objectdraftingcolor.value.md), [ObjectDraftingLinetype.Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.drafting.objectdraftinglinetype.value.md), [ObjectDraftingLineWidth.Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.drafting.objectdraftinglinewidth.value.md), [ObjectRender.Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.render.objectrender.attributes.md), [ObjectRenderMaterial.Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.render.objectrendermaterial.value.md), [ObjectSectionStyle.Value](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.drafting.objectsectionstyle.value.md), [ObjectVisibility.Attributes](https://developer.rhino3d.com/api/gh1/type/grasshopper.rhinoceros.display.objectvisibility.attributes.md), [RcpGroup](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.remotepanel.rcpgroup.md), [RcpLayout](https://developer.rhino3d.com/api/gh1/type/grasshopper.gui.remotepanel.rcplayout.md)

## Methods

- [Read](https://developer.rhino3d.com/api/gh1/type/gh-io.gh-iserializable/read.md): This method is called whenever the instance is required to deserialize itself.
- [Write](https://developer.rhino3d.com/api/gh1/type/gh-io.gh-iserializable/write.md): This method is called whenever the instance is required to serialize itself.
