Mit dem Modul ILOUT können Objekte in eine INTERLIS 1 .itf Datei geschrieben werden. Der Modul liest auch die zugehörigen INTERLIS 1 Datenmodelle (.ili Dateien). Jedes Objekt wird vom Modul auf seine Konsistenz gegenüber den INTERLIS 1 Datenmodellen überprüft. Falls z.B. zwingende Attribute vergessen oder falsche Attributwerte gefunden werden, werden entsprechende Fehlermeldungen ausgegeben.
Der Modul wird mit:
|INCL \script\ilout.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map
      ILOUT_PARAM für den Modul gesetzt werden:
| Parameter | req/opt | Beschreibung | 
INTERLIS_DEF | r | Filename des INTERLIS Definitionsfiles. Die Angabe des Parameters ist obligatorisch | 
FORMAT | r | ITF oder XTF,
                  Default = ITF. Definiert das Output
                  Datenformat. | 
MATH_DEGREES | r | ON oder OFF,
                  Default = OFF. DEGREES
                  im mathematischen Sinn interpretieren, d.h.
                  0.0 = horizontal, Orientierung =
                  Gegenuhrzeigersinn. | 
DOUBLEPOINT_CHECK | r | ON oder OFF,
                  Default = OFF. Nacheinanderfolgende
                  dopplete Punkte in Linien testen. | 
DEBUG | r | ON oder OFF,
                  Default = OFF. Debugmodus ein oder
                  aus. | 
STATUS | r | Enthält nach dem Schreiben eines Objektes einen Fehlerstatus, falls ein Fehler aufgetreten ist. | 
STATISTICS | r | ON oder OFF,
                  Default = OFF. Statistik
                  anzeigen. | 
Der Modul verlangt pro OUT-Objekt folgende Systemkomponenten:
| Komponente | req/opt | Beschreibung | 
OUT.TOPIC(s)  | r | Topic des Objekts.  | 
OUT.TABLE(s)  | r | Table des Objekts.  | 
OUT.OBJID(s) | r | Transferidentifikation des Objekts . | 
Die restlichen Objektkomponenten sind abhängig von der
      dazughörigen INTERLIS Tabelle (s.a. OUT.TOPIC bzw.
      OUT.TABLE). Alle INTERLIS Attribute werden als
      Komponenten des OUT-Objekts mit dem gleichem Namen erwartet. Die ICS
      Datentypen werden wie folgt auf INTERLIS Datentypen abgebildet:
| INTERLIS Datentyp | ICS Datentyp | 
IRANGE | int | 
RRANGE | 
  | 
Text | string | 
GRADS | real | 
DEGREES | real | 
RADIANS | real | 
ENUMERATION  | 
  | 
COORD2 | point | 
COORD3 | point | 
POLYLINE | line | 
SURFACE | area | 
AREA | point (Zentroid) und
                  area (Fläche) | 
| Prozedur | ILOUT_OPEN ! [s input][] | 
| Beschreibung | Öffnet eine neue INTERLIS 1 Datei <input> und initialisiert den Modul. Die Prozedur wird von RUN1 automatisch aufgerufen. | 
| Beispiel |  | 
| Prozedur | ILOUT_WRITE_OBJECT ! [][] | 
| Beschreibung | Schreibt das nächste OUT-Objekt in die geöffnete INTERLIS 1 Datei.  | 
| Beispiel |  | 
| Prozedur | ILOUT_WRITE_SURFACE ! [s Surface-Table][] | 
| Beschreibung | Schreibt zu einem
                  Hauptobjekt die Surface in die geöffnete INTERLIS 1 Datei.
                  Muss nach   | 
| Beispiel |  | 
| Prozedur | ILOUT_WRITE_SURFACE_LINEATTR ! [s Surface-Table, s Line-Attribute-Name][] | 
| Beschreibung | Wie
                    | 
| Beispiel |  | 
| Prozedur | ILOUT_WRITE_COMMENT ! [s Comment][] | 
| Beschreibung | Schreibt eine
                  Kommentarzeile in den   | 
| Beispiel |  | 
| Prozedur | ILOUT_CLOSE ! [][] | 
| Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. | 
| Beispiel |  | 
! Diese ICS Konfiguration kopiert alle von ILIN
! gelesenen Objekte mit ILOUT in in eine .itf Datei.
|LICENSE \license\iltools.lic
MAP USER_INPUT1
   DIALOG => FILE ! FILE | STRING | ODBC
   MESSAGE => 'Enter .itf Input File'
   FILE_FILTER => itf
   FILE_EXISTS => TRUE
   OPT => input
END_MAP
MAP USER_INPUT2
   DIALOG => FILE ! FILE | STRING | ODBC
   MESSAGE => 'Enter .itf Output File'
   FILE_FILTER => itf
   FILE_EXISTS => FALSE
   OPT => output
END_MAP
MAP ILIN_PARAM
   INTERLIS_DEF    => \models\Grunddatensatz.ili
   STATISTICS      => ON
END_MAP
MAP ILOUT_PARAM
   INTERLIS_DEF    => \models\Grunddatensatz.ili
   STATISTICS      => ON
END_MAP
MAP INPUT_SOURCES
   I1 => ILIN,OPT.input
END_MAP
MAP INOUT
   I1 => COPY_INOUT0
END_MAP
|INCL \script\ilin.mod
|INCL \script\ilout.mod
PROCEDURE COPY_INOUT0
   &OUT MAPCLEAR
   &IN MAPRESET
   WHILE &IN MAPSCAN DO
      => VAR.ATTR
      => VAR.VALUE
      IF &VAR.VALUE GET_TYPE = 'ilink' THEN
         ! ilink in string umwandeln
         &VAR.VALUE ILIN.GET_ILINK_KEY => VAR.VALUE
      END_IF
      &OUT VAR.ATTR VAR.VALUE MAPINS
   END_WHILE
   ILOUT_WRITE_OBJECT
END_PROCEDURE
|INCL \script\run1.prg