2.5.10. Import

The Import menu collects every read-side of the app:

  • Import ▸ LandXML… — full LandXML 1.2 (horizontal + vertical + station equations).

  • Import ▸ GRD Points… — see GRDSurface.

  • Import ▸ PSYMO Horizontal (S01)… — Greek PSYMO horizontal PIs.

  • Import ▸ PSYMO Vertical (S02)… — Greek PSYMO vertical PVIs.

  • Import ▸ PSYMO Superelevations (S03)… — Greek PSYMO superelevation diagram (left + right side).

  • Import ▸ ASCII Horizontal / Vertical Elements… — the comma-delimited element lists described under Export.

  • Import ▸ ASCII Cross-Section Data ▸ … — one command per cross-section collection: Superelevation Left / Right, Horizontal / Vertical Offset, Superelevation Offset Left / Right, Widening Left / Right and Cant. All share the 4-column segment format (startSta, startVal, endSta, endVal).

  • (File ▸ Open) — native .alm (TCML 2.0).

Each import goes into the active alignment tab (after a confirmation when it would replace existing data), or into a new tab named after the file when no alignment is open.

2.5.10.1. PIs ➜ alignment

Inserting horizontal vertices in the alignment editor is the canonical entry point — see AlignmentEditor. Each PI can have a radius and one or two spirals (clothoid or cubic parabola).

../../../_images/Clothoid21.jpg

2.5.10.2. S01 — Greek PSIMO horizontal vertices

The historical S01 format is still supported on import. The PI list has one record per vertex with optional radius / spiral params:

0.000
367188.339  4304832.708  KA1_1
367304.993  4304970.841  300.000  0.000  2  0.000  2  KA1_2
367336.490  4305021.157  200.000  0.000  2  0.000  2  KA1_3
367476.337  4305174.290  500.000  0.000  2  0.000  2  KA1_4

Schema:

StartChainage
Pi_X    Pi_Y  Pi_Name
Pi_X    Pi_Y  Radius  SpiralInValue  SpiralInParam  SpiralOutValue  SpiralOutParam  Pi_Name
...
Pi_X    Pi_Y  Pi_Name

Spiral params:

1 — length L
2 — A parameter               (L = A² / R)
3 — Clothoid diversion ΔR     (L = √(24 · R · ΔR))
4 — Length of cubic parabola
5 — Cubic parabola diversion ΔR   (L = √(24 · R · ΔR))
6 — Length of tangent of cubic parabola  (not supported)

Note

Kodes 4 and 5 (cubic parabola) are implemented per the formulas above — kode 5 reuses the same ΔR → L relation as kode 3 — but neither has been validated against real PSYMO sample data: none of the sample projects under scr/testfiles/alignmentsolver/PSYMO exercise kode 4 or 5, and the kode 5 formula is an extrapolation from kode 3 rather than a value confirmed against a known-good PSYMO file. Treat cubic-parabola imports from real S01 files with care until real samples are available to confirm the formula.

2.5.10.3. S02 — Greek PSIMO vertical PVIs

  0.000   16.120
 26.684   16.024   1000.000
 52.954   15.257    800.000
184.024   15.651   1000.000
257.514   12.738   1000.000

Schema:

Station  Elevation  [Radius]

The third column of the intermediate PVIs is the vertical curve radius; the importer converts it to the internal curve length with L = R · |g_out − g_in| (and the exporter converts back).

2.5.10.4. S03 — Greek PSIMO superelevations

Two blocks of Station Value pairs — the left side first, then a 0 0 separator line, then the right side. Consecutive pairs become linear-interpolation segments (values in %):

0.054   -2.000
215.464 -2.000
228.464  2.000
273.054  2.000
 0  0
0.054    2.000
215.464  2.000
228.464 -2.000
273.054 -2.000

Reading stops at the first empty line (legacy PSYMO rule). The other PSYMO project files (S04, S06…S11 — widenings, templates, ground profiles, design parameters) are not imported: their structure is undocumented.

2.5.10.5. Calculate Horizontal / Vertical vertices

After importing PIs / PVIs, click the corresponding Calculate vertices button to clear the resolved elements and rebuild from the inserted vertex lists.

Warning

This is a destructive operation. The existing solved-elements geometry is discarded and replaced.

2.5.10.6. LandXML

Import ▸ LandXML… imports a LandXML 1.2 file into the active tab. The reader handles:

  • Horizontal alignment (lines, circular arcs, clothoid spirals, cubic-parabola spirals);

  • Vertical alignment (grades + parabolic / circular vertical curves);

  • Cross-section data;

  • <StaEquation staInternal="…" staBack="…" staAhead="…"/> station equations.

The horizontal arc handedness comes from LandXML’s rot attribute (cw / ccw), not from a radius sign — so files from any compliant authoring tool round-trip correctly.

Warning

Importing replaces the alignment definition in the active tab.

2.5.10.7. ASCII imports

Every ASCII exporter has a paired importer at the same fixed format (see Export for the canonical file layouts), so any exported file can be re-imported losslessly. The commands are:

Example — horizontal elements (1 line, 2 arc, 3 clothoid; see Horizontal alignment ASCII for the full schema):

1,  388882.396, 4207672.619,  388376.836, 4208460.705, 122900.000
3,  388376.836, 4208460.705,  363.6885, 123836.307, 123836.307, 400000.000, 200.00
2,  390006.940, 4209625.220,  366.8716, 124036.307,  95.5254, 2000.000

Example — vertical elements (1 grade, 2 curve):

1, 123614.760, 14.135, 123853.402, 13.540
2, 123853.402, 13.540,  -0.002,   79.997, -40000.000

Example — superelevation left (%; the same shape serves offsets in metres, widenings in metres and cant in millimetres):

300.000, -0.940, 320.740, -5.500
320.740, -5.500, 420.280, -5.500
420.280, -5.500, 445.290,  0.000

Example — horizontal offset (m):

0.000,  0.000, 125.000,  3.500
125.000, 3.500, 150.000,  3.500
150.000, 3.500, 175.000,  0.000

Each import replaces the corresponding data (after a confirmation when the collection is not empty).

2.5.10.8. ALM (native and legacy)

File ▸ Open with extension .alm reads the native TCML 2.0 format. The reader supports two structural variants:

  • Modern <Horizontal> / <Line> / <Arc> / <Clothoid> with explicit handedness flags and <StationEquations>;

  • Legacy <HorizontalAlignment> / <HElement> with signed Radius / RLValue.

The current release fixed both formats’ historical handedness ambiguities — arc and clothoid turn directions are derived from geometry (previous element’s end direction), not from the Radius / RLValue sign. Foreign exporters that use either sign convention round-trip correctly. Station equations are read from <StationEquations><StaEq rawStation back ahead/>; the reader ignores the stored rawStation and recomputes it from StationToRaw(back) so externally-edited files self-heal.