# SkinDefinition class

Namespace: [Grasshopper2.UI.Skinning](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.ui.skinning.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public sealed class SkinDefinition : IStorable
```

The editable source of a [Skin](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skin.md). Every property of the skin is either set outright, inherited from another property through modifiers, or left unbound and taken from the built-in default. The Lit and Dim skins live in one definition and may inherit from each other; an unbound icon property does so on its own, following its twin in the other mode before it resorts to the built-in default. A definition compiles to a [Skin](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skin.md) with [SkinDefinition.ToSkin(PropertyId)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/toskin.md).

## Constructors

- [SkinDefinition](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/ctor.md): (2 overloads)

## Properties

- [Author](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/author.md): Who made this skin. Stored in the file header; empty when unknown.
- [BoundProperties](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/boundproperties.md)
- [Count](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/count.md)
- [Default](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/default.md): (static) The definition behind the built-in skins, read from the Default.ghskin resource. It is the inheritance-aware twin of [Skin.DefaultLit](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skin/defaultlit.md) and [Skin.DefaultDim](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skin/defaultdim.md), and the starting point for new skins. Each call returns a fresh copy.
- [Description](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/description.md): What this skin is about, possibly several lines. Stored in the file header, one line per header entry; empty when there is none.

## Indexers

- [this[]](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/item.md): Gets the binding of a property, or null if the property is not bound and therefore takes its built-in default.

## Methods

- [Bind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/bind.md): Bind a property. Replaces any existing binding.
- [CandidateSources](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/candidatesources.md): Gets the properties this property may inherit from: those of the same kind that would not create a cycle.
- [ChainOf](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/chainof.md): Gets the chain of sources behind a property, nearest first, ending at a property that is set outright or unbound.
- [Clear](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/clear.md)
- [DependentsOf](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/dependentsof.md): Gets the properties that directly depend on a property, either by inheriting from it or by mixing it in.
- [Duplicate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/duplicate.md)
- [Evaluate](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/evaluate.md)
- [Fallback](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/fallback.md): (static) Gets the built-in default value of a property, used when it is not bound.
- [Freeze](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/freeze.md): Replace an inherited binding by its current result, as a literal. The property stops following its source.
- [FromSkins](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/fromskins.md): (static) Gets a fresh copy of the default definition, which expresses the built-in skins as a small number of root colours and the relationships between them.
- [Inherit](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/inherit.md)
- [LoadFromFile](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/loadfromfile.md): (static)
- [Parse](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/parse.md): (static) Read a definition from its text form. Faulty lines are skipped and reported.
- [Resolve](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/resolve.md)
- [SaveToFile](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/savetofile.md)
- [Set](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/set.md): (5 overloads)
- [Store](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/store.md)
- [ToSkin](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/toskin.md): Compile this definition into a skin for the given mode.
- [ToText](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/totext.md)
- [Unbind](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/unbind.md): Remove the binding of a property, so it takes its built-in default.
- [WouldCycle](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.skinning.skindefinition/wouldcycle.md)
