# SubDComponent class

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
[DebuggerDisplay("{ToString()}")]
public abstract class SubDComponent : IEquatable<SubDComponent>
```

A part of SubD geometry. Common base class for vertices, faces, and edges

**Derived types:** [SubDEdge](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdedge.md), [SubDFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdface.md), [SubDVertex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdvertex.md)

## Properties

- [ComponentDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/componentdirection.md): True when this component is referenced with the reverse of its natural orientation. This is always false for vertices, and for edges and faces obtained directly from the parent SubD; it is only set on components reached through an oriented reference, such as the face on a given side of an oriented edge.
- [Id](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/id.md): Unique id within the parent SubD for this item
- [IsDamaged](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/isdamaged.md): Returns true if the SubD component is damaged.
- [IsDeleted](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/isdeleted.md): Returns true if the SubD component is deleted.
- [IsHidden](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/ishidden.md): Returns true if the SubD component is hidden.
- [IsHighlighted](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/ishighlighted.md): Returns true if the SubD component is highlighted.
- [IsLocked](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/islocked.md): Returns true if the SubD component is locked.
- [IsSelected](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/isselected.md): Returns true if the SubD component is selected.
- [ParentSubD](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/parentsubd.md): SubD that this component belongs to

## Methods

- [Equals](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/equals.md): (2 overloads) Determines whether an object is a SubDComponent referring to the same component, with the same orientation, in the same SubD.
- [GetHashCode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/gethashcode.md): Gets a hash code for this component.
- [ReverseComponentDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/reversecomponentdirection.md): Flips [SubDComponent.ComponentDirection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/componentdirection.md) and returns this component, so it can be used inline where an oppositely oriented reference is wanted.
- [ToString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/tostring.md): Returns a string of the form "SubDEdge(+12)", naming the component type, the orientation it is referenced with, and its id.

## Operators

- [operator ==](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/op-equality.md): (static) Determines whether two components refer to the same component, with the same orientation, in the same SubD.
- [operator !=](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.subdcomponent/op-inequality.md): (static) Determines whether two components refer to different components, orientations, or SubDs.
