# Goal class

Namespace: [Grasshopper2.Types.Constraints.Goals](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.types.constraints.goals.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public abstract class Goal
```

Base class for all constraint goals.

**Derived types:** [AngularGoal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.angulargoal.md), [CoincidentGoal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.coincidentgoal.md), [EqualLengthGoal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.equallengthgoal.md), [GoalWithValue](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goalwithvalue.md), [HorizontalGoal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.horizontalgoal.md), [ParallelGoal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.parallelgoal.md), [PerpendicularGoal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.perpendiculargoal.md), [TangentGoal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.tangentgoal.md), [VerticalGoal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.verticalgoal.md)

## Constructors

- [Goal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/ctor.md)

## Fields

- [_edges](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/edges.md)

## Properties

- [EdgeCount](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/edgecount.md): Gets the number of edges this goal is associated with.
- [Icon](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/icon.md): Gets the icon of this goal.
- [Id](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/id.md): Gets the id of this goal.
- [Nomen](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/nomen.md): Gets the description of this goal.

## Methods

- [Apply](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/apply.md): Apply this constraint to a system.
- [DependsOnId](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/dependsonid.md): Test whether this goal depends on a specific node or scalar id.
- [Edge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/edge.md): Gets the referenced edge at the given index.
- [RemoveReferents](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/removereferents.md): Return a modified goal in response to the removal of node or edge referents. By default this method will return null if one of the referenced edges occurs in the map.
- [SolveAlign](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvealign.md): (2 overloads, static) Alignment solver for two nodes.
- [SolveArcArcTangent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvearcarctangent.md): (static) Align two arcs tangentially.
- [SolveArcCoincidence](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvearccoincidence.md): (static) Solve coincidence constraint between a point and an arc.
- [SolveArcLength](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvearclength.md): (static) Solve arc length constraint.
- [SolveArcRadius](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvearcradius.md): (static) Solve an arc radius constraint.
- [SolveCircleCircleTangent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvecirclecircletangent.md): (static) Align two circles tangentially.
- [SolveCircleCoincidence](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvecirclecoincidence.md): (static) Solve coincidence constraint between a point and a circle.
- [SolveCircumference](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvecircumference.md): (static) Solve circumference constraints on two circle nodes.
- [SolveCollinear](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvecollinear.md): (2 overloads, static) Solve collinearity between four nodes.
- [SolveDistance](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvedistance.md): (2 overloads, static) Separation solver for two nodes.
- [SolveHeight](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solveheight.md): (static) Solve (signed) vertical separation between two nodes.
- [SolveHorizontal](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvehorizontal.md): (static) Solve a horizontality constraint between two nodes.
- [SolveLineArcTangent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvelinearctangent.md): (static) Align a line and an arc tangentially.
- [SolveLineCircleTangent](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvelinecircletangent.md): (static) Align a line and a circle tangentially.
- [SolveLineCoincidence](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvelinecoincidence.md): (static) Solve coincidence constraint between a point and a line.
- [SolvePerpendicular](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solveperpendicular.md): (2 overloads, static) Align four points perpendicularly.
- [SolveVertical](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvevertical.md): (static) Solve a verticality constraint between two nodes.
- [SolveWidth](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.constraints.goals.goal/solvewidth.md): (static) Solve (signed) horizontal separation between two nodes.
