TPC has great tools that let you work with horizontal curves, spirals, stations and offsets.
In TPC, you enter horizontal curves and spirals in traverses. The traverse point sequence defines the geometry of the horizontal alignment. Use direction and distance to create the tangents, use curve data like radius and arc length to create the horizontal curves and use incoming and outgoing spiral lengths along with other spiral data to create spirals.
TPC includes a special traverse point type called a PI. You can select any alignment point and change it from a regular control point to a PI. The advantage is that by simply entering the horizontal curve or spiral data you have, TPC will create the appropriate alignment points and compute their positions along the incoming and outgoing tangents of the PI point.
PI Points are unique in that they are not recomputed, even if they contain raw data from the prevous control point. See Recomputing Traverses.
Any traverse can be stationed just by including the Station column in the display sequence. You can also include an equation column, allowing you to manually enter station equations.
Once a traverse has computed its stationing, you can then use COGO tools like Station/Offset which creates a left or right offset at a given station along the alignment.
TPC computes offsets from an alignment based on a station along the alignment and the geometry of the alignment at that station. Offsets are always perpendicular to the alignment except at angle points where the bisect the angle. Because of this, you don't specify an offset direction in TPC. Instead you just specify a distance, negative for left and positive for right, and TPC computes the direction for you base on the alignment. This makes working with offsets very easy in TPC.
When you tag a traverse in a drawing, TPC uses the control point settings to draw the alignment. Traverse Drawing Settings give you options for adding station and elevation to the drawing, arc aligned or stacked curve data, line types and line labels.
TPC understands LandXML's alignments and exchanges alignments with LandXML via it's traverses.
When you import a LandXML alignment in TPC, it comes in as a traverse in the Alignments traverse group. That imported traverse contain all of the horizontal and vertical alignment information TPC exchanges with LandXML. So just tag the imported traverse and you'll see the LandXML alignment in the drawing.