# Tube struct

Namespace: [Grasshopper2.Types.Shapes](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.types.shapes.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
[IoId("00000000-941c-408f-ab18-f79a802293da")]
public readonly struct Tube : IEquatable<Tube>, IComparable<Tube>
```

A conical shape with an optional wall thickness. Tubes can represent cylinders, cones, trucated-cones, all with and without wall thicknesses.

## Constructors

- [Tube](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/ctor.md): Create a new tube.

## Properties

- [Area](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/area.md): Gets the area of this tube.
- [Axis](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/axis.md): Gets the axis of this tube.
- [BoundingBox](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/boundingbox.md): Gets the bounding box of this tube.
- [BoundingSphere](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/boundingsphere.md): Gets the bounding sphere of this tube.
- [EffectiveWall](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/effectivewall.md): Gets the effective wall thickness. This is the minimal wall thickness which would still yield the same tube shape.
- [Height](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/height.md): Gets the height of the tube above the base plane.
- [Interior](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/interior.md): Gets the interior or gap inside this tube. If this tube [Tube.IsSolid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/issolid.md), the interior is empty.
- [IsConical](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/isconical.md): Gets whether this tube is conical, i.e. whether one of the radii equals zero.
- [IsCylindrical](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/iscylindrical.md): Gets whether this tube is cylindrical, i.e. whether the outside walls are perpendicular to the base plane.
- [IsShell](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/isshell.md): Gets whether this tube is a shell. I.e. whether the wall thickness equals zero.
- [IsSolid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/issolid.md): Gets whether this tube is solid. I.e. whether the wall thickness exceeds both of the radii.
- [IsTapered](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/istapered.md): Gets whether this tube is tapered. This is the opposite of [Tube.IsCylindrical](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/iscylindrical.md).
- [PerpendicularWall](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/perpendicularwall.md): Gets the true thickness of the wall, as measured perpendicularly between the inner and outer surfaces.
- [Plane](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/plane.md): Gets the base plane of the tube.
- [Profile](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/profile.md): Gets the profile of this tube at angle zero.
- [Radius1](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/radius1.md): Gets the radius of the tube coincident with the base plane.
- [Radius1Inner](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/radius1inner.md): Gets the radius of the inner circle at the base plane. If the [Tube.Wall](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/wall.md) thickness exceeds the [Tube.Radius1](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/radius1.md) value the inner radius will be zero.
- [Radius2](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/radius2.md): Gets the radius of the tube at the maximum height above the plane.
- [Radius2Inner](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/radius2inner.md): Gets the radius of the inner circle at the height. If the [Tube.Wall](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/wall.md) thickness exceeds the [Tube.Radius2](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/radius2.md) value the inner radius will be zero.
- [SlantHeight](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/slantheight.md): Gets the distance between the lower and upper circular edges.
- [Volume](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/volume.md): Gets the volume of this tube.
- [Wall](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/wall.md): Gets the thickness of the wall. If the thickness is zero, the tube shape is assumed to be just the outer surface. If the thickness equals [double.PositiveInfinity](https://learn.microsoft.com/dotnet/api/system.double.positiveinfinity) the tube is assumed to be completely solid. Negative wall thicknesses are not valid.

## Methods

- [AnnulusAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/annulusat.md): Gets the normalised parameter along the annulus at the given along parameter.
- [AsShell](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/asshell.md): Create a thin-shell tube without any wall thickness.
- [AsSolid](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/assolid.md): Create a solid tube with infinite wall thickness.
- [ClosestParameters](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/closestparameters.md): Gets the (around, along) parameters of the projection of the point onto the tube.
- [CompareTo](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/compareto.md)
- [CurvatureAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/curvatureat.md): Gets the curvature at the given parameters.
- [Edge](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/edge.md): Gets one of the four edges of this tube.
- [Equals](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/equals.md): (2 overloads)
- [FurthestParameters](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/furthestparameters.md): Gets the (around, along) parameters of the point on the tube furthest away from a point.
- [GetHashCode](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/gethashcode.md)
- [ModifyHeight](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/modifyheight.md): Modify the height of this tube without affecting the slope.
- [NormalAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/normalat.md): Gets the point at the given parameters.
- [Offset](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/offset.md): (2 overloads) Offset this tube.
- [PointAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/pointat.md): Gets the point at the given parameters.
- [TangentAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/tangentat.md): Gets the tangent plane at the given parameters.
- [ToBrep](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/tobrep.md): Convert this tube to a brep.
- [ToCanonicalForm](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/tocanonicalform.md): Return the canonical form of this tube. Basically, if the height is negative it reorders the properties to make the height positive.
- [ToMesh](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/tomesh.md): Convert this tube to a mesh.
- [ToString](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/tostring.md): (2 overloads)
- [ToWireframe](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/towireframe.md)
- [WithHeight](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/withheight.md): Modify the height of this tube.
- [WithPlane](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/withplane.md): Modify the plane of this tube.
- [WithRadii](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/withradii.md): Modify the radii of this tube.
- [WithWall](https://developer.rhino3d.com/api/gh2/type/grasshopper2.types.shapes.tube/withwall.md): Modify the wall thickness of this tube.
