# ComponentStatus struct

Namespace: [Rhino.Geometry](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.geometry.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public struct ComponentStatus : IEquatable<ComponentStatus>
```

Provides information about selection, highlighting, visibility, editability and integrity states of a component.

This structure is immutable.

## Properties

- [AllSet](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/allset.md): (static) All flags are checked.
- [Clear](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/clear.md): (static) This is the default value and equal to undefined.
- [Damaged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/damaged.md): (static) The damaged flag is checked.
- [Hidden](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/hidden.md): (static) The hidden flag is checked.
- [Highlighted](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/highlighted.md): (static) The highlight selection flag is checked.
- [IsClear](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/isclear.md): True if every setting is 0 or false.
- [IsDamaged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/isdamaged.md): Returns false if component is not damaged. True otherwise.
- [IsHidden](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/ishidden.md): Returns true if hidden. False otherwise.
- [IsHighlighted](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/ishighlighted.md): Returns true if highlighted. False otherwise.
- [IsLocked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/islocked.md): Returns true if locked. False otherwise.
- [IsSelected](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/isselected.md): Returns true if selected or selected persistent. False otherwise.
- [IsSelectedPersistent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/isselectedpersistent.md): Returns true if selected persistent. False otherwise.
- [Locked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/locked.md): (static) The locked flag is checked.
- [Selected](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/selected.md): (static) The selection flag is checked.
- [SelectedPersistent](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/selectedpersistent.md): (static) The persistent selection flag is checked.

## Methods

- [Equals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/equals.md): (2 overloads) Determines if another ComponentStatus and this are equal.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/gethashcode.md): Serves as a special hash function. The inner value is used for the purpose.
- [HasAllEqualStates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/hasallequalstates.md): For the purposes of this test, Selected and SelectedPersistent are considered equal.
- [HasNoEqualStates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/hasnoequalstates.md): For the purposes of this test, Selected and SelectedPersistent are considered equal.
- [HasSomeEqualStates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/hassomeequalstates.md): For the purposes of this test, Selected and SelectedPersistent are considered equal.
- [ToString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/tostring.md): Provides a string representation of this ComponentStatus.
- [WithStates](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/withstates.md): Activates any information flag described in any of the two input component statuses and returns a new ComponentStatus with those flags checked.

## Operators

- [operator +](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/op-addition.md): (static) Sets flags from both component states and returns a new ComponentStatus.
- [operator ==](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/op-equality.md): (static) Determines if two ComponentStatus objects are equal.
- [operator !=](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.componentstatus/op-inequality.md): (static) Determines if two ComponentStatus objects differ.
