# IPin interface

Namespace: [Grasshopper2.Parameters](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.parameters.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public interface IPin : IGuidAware
```

Interface exposing pin related functionality. This interface is implemented by the [Pin<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.pin-1.md) class, you should derive from that abstract class rather the implementing [IPin](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.ipin.md) yourself.

**Derived types:** [Pin<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.pin-1.md)

## Properties

- [Document](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.ipin/document.md): Gets the document this Pin object belongs to.
- [InstanceId](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.ipin/instanceid.md): Gets the instance identifier of the IDocumentObject this pin really is.
- [PinAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.ipin/pinattributes.md): Gets the pin attributes for this object.
- [PinningTarget](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.ipin/pinningtarget.md): Gets the instance id of the cushion this pin is stuck in to. Please don't set this value, the target object is responsible for setting and unsetting these relationships.
- [PinTypeId](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.ipin/pintypeid.md): Gets the kind identifier of this pin. A component may only contain a single instance of a specific kind. So even if two different pin objects have the same kind, only one of them can be attached to any one component.

## Inherited Members

- From [IGuidAware](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iguidaware.md): [ApplyIdMap](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.iguidaware/applyidmap.md)
