# PolyCurve 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
[Serializable]
public class PolyCurve : Curve
```

Represents a curve that is the result of joining several (possibly different) types of curves.

## Constructors

- [PolyCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/ctor.md): (2 overloads) Initializes a new, empty polycurve.

## Properties

- [HasGap](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/hasgap.md): This is a quick way to see if the curve has gaps between the sub curve segments.
- [IsNested](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/isnested.md): Gets a value indicating whether or not a PolyCurve contains nested PolyCurves.
- [SegmentCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/segmentcount.md): Gets the number of segments that make up this Polycurve.

## Methods

- [Append](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/append.md): (3 overloads) Appends and matches the start of the arc to the end of polycurve. This function will fail if the polycurve is closed or if SegmentCount > 0 and the arc is closed.
- [AppendSegment](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/appendsegment.md): Appends the curve to the polycurve without changing the new segment's geometry. This function will fail if the PolyCurve is closed or if SegmentCount > 0 and the new segment is closed.
- [CleanUp](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/cleanup.md): Removes any nesting of polycurves. If this polycurve has just a single segment, the segment is returned. If, after nest removal, there are adjacent segments which are polylines, they are combined into a single polyline. The new curve may have a different domain from this polycurve. If the start and end segments of a closed input are polylines, the result may have a different seam location since the start and end segments will be combined.
- [Duplicate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/duplicate.md): Duplicates this polycurve. When not overridden in a derived class, this calls [PolyCurve.DuplicatePolyCurve()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/duplicatepolycurve.md).
- [DuplicatePolyCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/duplicatepolycurve.md): Duplicates this polycurve. This is the same as [PolyCurve.Duplicate()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/duplicate.md).
- [Explode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/explode.md): Explodes this PolyCurve into a list of Curve segments. This will not explode nested polycurves. Call [PolyCurve.RemoveNesting()](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/removenesting.md) first if you need all individual segments.
- [PolyCurveParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/polycurveparameter.md): Converts a segment curve parameter to a polycurve parameter.
- [RemoveNesting](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/removenesting.md): Explodes nested polycurve segments and reconstructs this curve from the shattered remains. The result will have not have any PolyCurves as segments but it will have identical locus and parameterization.
- [SegmentCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/segmentcurve.md): Gets the segment curve at the given index.
- [SegmentCurveParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/segmentcurveparameter.md): Converts a polycurve parameter to a segment curve parameter.
- [SegmentDomain](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/segmentdomain.md): Returns the polycurve sub-domain assigned to a segment curve.
- [SegmentIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/segmentindex.md): Finds the segment used for evaluation at polycurve_parameter.
- [SegmentIndexes](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.polycurve/segmentindexes.md): Finds the segments that overlap the Polycurve sub domain.

## Inherited Members

- From [Curve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve.md): [Degree](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/degree.md), [Dimension](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/dimension.md), [Domain](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/domain.md), [IsClosed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/isclosed.md), [IsPeriodic](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/isperiodic.md), [IsSubDFriendly](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/issubdfriendly.md), [PointAtEnd](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/pointatend.md), [PointAtMid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/pointatmid.md), [PointAtStart](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/pointatstart.md), [SpanCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/spancount.md), [TangentAtEnd](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/tangentatend.md), [TangentAtStart](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/tangentatstart.md), [ChangeClosedCurveSeam](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/changeclosedcurveseam.md), [ChangeDimension](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/changedimension.md), [ClosedCurveOrientation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/closedcurveorientation.md), [ClosestPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/closestpoint.md), [ClosestPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/closestpoints.md), [CombineShortSegments](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/combineshortsegments.md), [Contains](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/contains.md), [ControlPolygon](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/controlpolygon.md), [CurvatureAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/curvatureat.md), [DerivativeAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/derivativeat.md), [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/dispose.md), [DivideAsContour](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/divideascontour.md), [DivideByCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/dividebycount.md), [DivideByLength](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/dividebylength.md), [DivideEquidistant](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/divideequidistant.md), [DuplicateCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/duplicatecurve.md), [DuplicateSegments](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/duplicatesegments.md), [Extend](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/extend.md), [ExtendByArc](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/extendbyarc.md), [ExtendByLine](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/extendbyline.md), [ExtendOnSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/extendonsurface.md), [ExtremeParameters](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/extremeparameters.md), [Fair](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/fair.md), [FilletSurfaceToCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/filletsurfacetocurve.md), [FilletSurfaceToRail](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/filletsurfacetorail.md), [FindLocalInflection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/findlocalinflection.md), [Fit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/fit.md), [FrameAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/frameat.md), [GetConicSectionType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getconicsectiontype.md), [GetCurveParameterFromNurbsFormParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getcurveparameterfromnurbsformparameter.md), [GetLength](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getlength.md), [GetLocalPerpPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getlocalperppoint.md), [GetLocalTangentPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getlocaltangentpoint.md), [GetNextDiscontinuity](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getnextdiscontinuity.md), [GetNurbsFormParameterFromCurveParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getnurbsformparameterfromcurveparameter.md), [GetPerpendicularFrames](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getperpendicularframes.md), [GetSubCurves](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/getsubcurves.md), [HasNurbsForm](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/hasnurbsform.md), [InflectionPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/inflectionpoints.md), [IsArc](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/isarc.md), [IsCircle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/iscircle.md), [IsClosable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/isclosable.md), [IsContinuous](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/iscontinuous.md), [IsEllipse](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/isellipse.md), [IsInPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/isinplane.md), [IsLinear](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/islinear.md), [IsPlanar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/isplanar.md), [IsPolyline](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/ispolyline.md), [IsShort](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/isshort.md), [LcoalClosestPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/lcoalclosestpoint.md), [LengthParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/lengthparameter.md), [LocalClosestPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/localclosestpoint.md), [MakeClosed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/makeclosed.md), [MaxCurvaturePoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/maxcurvaturepoints.md), [NonConstOperation](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/nonconstoperation.md), [NormalizedLengthParameter](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/normalizedlengthparameter.md), [NormalizedLengthParameters](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/normalizedlengthparameters.md), [Offset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/offset.md), [OffsetNormalToSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/offsetnormaltosurface.md), [OffsetOnSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/offsetonsurface.md), [OffsetTangentToSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/offsettangenttosurface.md), [PerpendicularFrameAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/perpendicularframeat.md), [PointAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/pointat.md), [PointAtLength](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/pointatlength.md), [PointAtNormalizedLength](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/pointatnormalizedlength.md), [PullToBrepFace](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/pulltobrepface.md), [PullToMesh](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/pulltomesh.md), [Rebuild](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/rebuild.md), [RebuildToMatchTemplateCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/rebuildtomatchtemplatecurve.md), [RemoveShortSegments](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/removeshortsegments.md), [Repair](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/repair.md), [Reparameterize](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/reparameterize.md), [Reverse](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/reverse.md), [RibbonOffset](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/ribbonoffset.md), [SetEndPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/setendpoint.md), [SetStartPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/setstartpoint.md), [Simplify](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/simplify.md), [SimplifyEnd](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/simplifyend.md), [Smooth](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/smooth.md), [SpanDomain](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/spandomain.md), [SpanVector](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/spanvector.md), [Split](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/split.md), [TangentAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/tangentat.md), [ToArcsAndLines](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/toarcsandlines.md), [ToNurbsCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/tonurbscurve.md), [ToPolyline](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/topolyline.md), [TorsionAt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/torsionat.md), [Trim](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/trim.md), [TrimInterval](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/triminterval.md), [TryGetArc](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/trygetarc.md), [TryGetCircle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/trygetcircle.md), [TryGetEllipse](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/trygetellipse.md), [TryGetPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/trygetplane.md), [TryGetPolyline](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.curve/trygetpolyline.md)
- From [GeometryBase](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase.md): [HasBrepForm](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/hasbrepform.md), [IsDeformable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isdeformable.md), [IsDocumentControlled](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isdocumentcontrolled.md), [IsShallowDuplicate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/isshallowduplicate.md), [ObjectType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/objecttype.md), [UserStringCount](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/userstringcount.md), [ComponentIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/componentindex.md), [DataCRC](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/datacrc.md), [DeleteAllUserStrings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/deletealluserstrings.md), [DeleteUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/deleteuserstring.md), [DuplicateShallow](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/duplicateshallow.md), [GetBoundingBox](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getboundingbox.md), [GetUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getuserstring.md), [GetUserStrings](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/getuserstrings.md), [MakeDeformable](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/makedeformable.md), [MemoryEstimate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/memoryestimate.md), [OnSwitchToNonConst](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/onswitchtononconst.md), [Rotate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/rotate.md), [Scale](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/scale.md), [SetUserString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/setuserstring.md), [Transform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/transform.md), [Translate](https://developer.rhino3d.com/api/rhinocommon/type/rhino.geometry.geometrybase/translate.md)
- From [CommonObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject.md): [Disposed](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/disposed.md), [HasUserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/hasuserdata.md), [IsValid](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isvalid.md), [UserData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/userdata.md), [UserDictionary](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/userdictionary.md), [ConstructConstObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/constructconstobject.md), [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/dispose.md), [EnsurePrivateCopy](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/ensureprivatecopy.md), [GetObjectData](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/getobjectdata.md), [IsValidWithLog](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/isvalidwithlog.md), [ToJSON](https://developer.rhino3d.com/api/rhinocommon/type/rhino.runtime.commonobject/tojson.md)
