Revit uses a variety of curve types to represent curve geometry in a document. These include:
Curve type |
Revit API class |
Definition |
Notes |
Bound line |
Line |
A line segment defined by its endpoints. |
Obtain endpoints from Curve.GetEndpoint() |
Unbound line |
Line |
An infinite line defined by a location and direction |
Identify these with Curve.IsBound. Evaluate point and tangent vector at raw parameter= 0 to find the input parameters for the equation of the line. |
Arc |
Arc |
A bound circular arc |
Begin and end at a certain angle. These angles can be obtained by the raw parameter values at each end of the arc. |
Circle |
Arc |
An unbound circle |
Identify with Curve.IsBound. Use raw parameter for evaluation (from 0 to 2π) |
Cylindrical helix | CylindricalHelix | A helix wound around a cylinder making constant angle with the axis of the cylinder | Used only in specific applications in stairs and railings, and should not be used or encountered when accessing curves of other Revit elements and geometry. |
Elliptical arc |
Ellipse |
A bound elliptical segment |
|
Ellipse |
Ellipse |
An unbound ellipse |
Identify with Curve.IsBound. Use raw parameter for evaluation (from 0 to 2π) |
NURBS |
NurbSpline |
A non-uniform rational B-spline |
Used for splines sketched in various Revit tools, plus imported geometry |
Hermite |
HermiteSpline |
A spline interpolate between a set of points |
Used for tools like Curve by Points and flexible ducts/pipes, plus imported geometry |
Mathematical representations of all of the Revit curve types can be found here.