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).
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 signedRadius/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.