# ComponentAttributes class

Namespace: [Grasshopper2.Doc.Attributes](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.doc.attributes.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
[IoId("00000000-7F8D-414D-A22A-A287C2E2073F")]
public class ComponentAttributes : Attributes<Component>, IResponsive
```

Class for all component attributes.

**Derived types:** [AiComponentAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.descriptive.aicomponentattributes.md), [ChainAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.standard.chainattributes.md), [ClusterAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.components.standard.clusterattributes.md), [ValueTrackerAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.parameters.special.valuetrackerattributes.md)

## Constructors

- [ComponentAttributes](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/ctor.md)

## Properties

- [CentralBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/centralbox.md): Gets the bounds of the components central box. This box contains the component icon and possibly other elements such as the display name.
- [ContentBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/contentbox.md): Gets the icon or name box.
- [LabelBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/labelbox.md): Gets or sets the label box.
- [Responder](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/responder.md): Gets the [Responses](https://developer.rhino3d.com/api/gh2/type/grasshopper2.ui.flex.responses.md) dispatcher for these attributes. Subclasses can subscribe to the hook events on the returned object to extend interaction behaviour without subclassing the responder itself.
- [ShowTentativeInputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/showtentativeinputs.md): Gets or sets whether the potential input grips are shown.
- [ShowTentativeOutputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/showtentativeoutputs.md): Gets or sets whether the potential input grips are shown.
- [TentativeInputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/tentativeinputs.md): Enumerate over all tentative input grips, provided they are being drawn.
- [TentativeOutputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/tentativeoutputs.md): Enumerate over all tentative output grips, provided they are being drawn.

## Methods

- [Draw](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/draw.md): Internal drawing method. Consider overriding this one instead of [Draw](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/draw.md).
- [DrawBackground](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawbackground.md): Draw the capsule background.
- [DrawContent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawcontent.md): The code which decides whether to draw the icon or the name. Override this method to always draw one or the other.
- [DrawForeground](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawforeground.md): Draw the capsule overlay and foreground.
- [DrawForegroundDecorations](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawforegrounddecorations.md): Override this method to draw capsule decorations immediately after the capsule foreground is drawn, but before the tentative grips and variable parameter zui is drawn.
- [DrawIcon](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawicon.md): Draw the component icon.
- [DrawInputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawinputs.md): Draw the input parameters.
- [DrawLabel](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawlabel.md): Draw the component label text.
- [DrawName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawname.md): Draw the component name.
- [DrawOutputs](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawoutputs.md): Draw the output parameters.
- [DrawUserName](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/drawusername.md): Draw the user name above or below the component capsule.
- [InvalidateLayout](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/invalidatelayout.md): Marks the layout as dirty so it gets recomputed on the next draw cycle. Subclasses typically flip an internal `_layoutValid` flag. Most callers should also raise [OnLayoutChanged](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.documentobject/onlayoutchanged.md) on the owner to actually trigger a canvas redraw.
- [Layout](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/layout.md)
- [LayoutBounds](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/layoutbounds.md): Layout the outer bounds of the component capsule and assign the result to the Bounds property. This is the last sub-layout method to be called during component layout.
- [LayoutCentralBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/layoutcentralbox.md): (2 overloads) Central box layout code with input/output parameter overrides.
- [LayoutInputParameters](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/layoutinputparameters.md): (2 overloads) Input parameter layout with parameter override.
- [LayoutOutputParameters](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/layoutoutputparameters.md): (2 overloads) Default output layout with parameter list override.
- [PivotMoved](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/pivotmoved.md)
- [PreDrawAddInputGrips](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/predrawaddinputgrips.md): Adds the left-hand grips to the input parameters.
- [PreDrawAddOutputGrips](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/predrawaddoutputgrips.md): Adds the right-hand grips to the output parameters.
- [ShowTooltipAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes.componentattributes/showtooltipat.md)

## Inherited Members

- From [Attributes<T>](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1.md): [AggregateBounds](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/aggregatebounds.md), [Bounds](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/bounds.md), [IntegerPivot](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/integerpivot.md), [Owner](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/owner.md), [Pivot](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/pivot.md), [Snappable](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/snappable.md), [Stack](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/stack.md), [DefaultTooltipContent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/defaulttooltipcontent.md), [Draw](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/draw.md), [HandleDoubleClick](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/handledoubleclick.md), [Intersects](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/intersects.md), [InvalidateDisplay](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/invalidatedisplay.md), [IsCoincident](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/iscoincident.md), [IsContained](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/iscontained.md), [Move](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/move.md), [TooltipDetails](https://developer.rhino3d.com/api/gh2/type/grasshopper2.doc.attributes-1/tooltipdetails.md)
