2. Beispielkonfigurationen

2.1. Einleitung

In diesem Kapitel sind einige typische ICS Konfigurationsbeispiele enthalten. Die Beispiele sollen die im letzten Kapitel vorgestellten Konzepte an einigen konkreten Problemstellungen veranschaulichen. Die Beispiele sind nach aufsteigender Komplexität geordnet und der Skriptcode ist jeweils vollständig und direkt mit ICS ausführbar.

2.2. Konfigurationen mit einem Inputmodul

Die einfachsten ICS Konfigurationen benutzen nur einen Inputmodul, sind also gar keine Schnittstellen (mit Input- und Outputmodul) im eigentlichen Sinn. Trotzdem können solche Konfigurationen sehr nützlich sein. Beispiele für Konfigurationen mit nur einem Inputmodul sind:

  • Anzeigekonfigurationen, welche alle Daten (oder einen Teil der Daten) eines Inputmoduls anzeigen.

  • Statistikkonfigurationen, welche eine Statistik aus den Daten des Inputmoduls erzeugen.

  • Checkerkonfigurationen, welche Fehler in dem Datensatz anzeigen.

2.2.1. Anzeigekonfiguration

Der nachfolgende Skript kann den Inhalt einer beliebigen INTERLIS 1 .itf Datei in der .log Datei ausgeben. Das kann z.B. nützlich sein, um zu verstehen, welche Objekte vom ILIN Modul von einem konkreten Datensatz geliefert werden.

\script\il2il\display.cfg
!============================================================================!
!                                                                            !
! INTERLIS 1 Display Configuration Vers. 1.5                                 !
!                                                                            !
!============================================================================!

!<1>
|LICENSE \license\iltoolspro.lic
|LICENSE \license\iltools.lic
|LICENSE \license\il2il.lic

!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! user input
!

!<2>
MAP USER_INPUT1
   DIALOG => FILE ! FILE | FILES | DIRECTORY | STRING | ODBC
   MESSAGE => 'select .itf input file'
   FILE_EXISTS => TRUE
   FILE_FILTER => itf
   OPT => input
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! parameter maps for intput modules
!

!<3>
MAP ILIN_PARAM
   INTERLIS_DEF  => '' ! will be set from .itf file
   LOG_TABLE     => OFF
   TRACE         => OFF
   DEBUG         => OFF
   ENUM_TO_TEXT  => ON
   STATISTICS    => ON
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! input sources
!

!<4>
MAP INPUT_SOURCES
   I1 => ILIN,OPT.input
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! classification
!

!<5>
MAP INOUT 
   I1 => DISPLAY_OBJECT1,IN
END_MAP

!<6>
|INCL \script\util.lib
|INCL \script\ilin.mod
|INCL \script\run1.prg

Erläuterungen zum Beispiel:

  1. Mit der Direktive |LICENSE werden die möglichen Lizenzdateien angegeben, mit welchen der Skript ausgeführt werden kann. Werden diese Einträge vergessen, wird der Skript zur Laufzeit mit einer entsprechenden Fehlermeldung abgebrochen (no license found for ...).

  2. Der Skript fragt vom Benutzer den Dateinamen der Inputdatei ab. Damit nur bestehende .itf Dateien ausgewählt werden können wird FILE_EXISTS => TRUE und FILE_FILTER => itf gesetzt. Der abgefragte Wert wird in OPT.input gespeichert (wegen OPT => input).

  3. Für das Lesen der .itf Datei wird der Modul ILIN benötigt. Dieser verlangt die Übergabe der notwendigen Parameter in der Map ILIN_PARAM. Mit der Angabe INTERLIS_DEF => '' wird z.B. verlangt, dass das INTERLIS 1 Modell aus der .itf Inputdatei bestimmt werden soll.

  4. In der Map INPUT_SOURCES werden die Inputquellen festgelegt. Im Fall der Anzeigekonfiguration gibt es nur eine Inputquelle I1 welche ihre Daten vom Inputmodul ILIN aus der Datei OPT.input bezieht.

  5. Der Verarbeitungsablauf wird schliesslich in der Map INOUT festgelegt. In diesem Beispiel werden alle von der Inputquelle I1 gelesenen Objekte über die Prozedur DISPLAY_OBJECT1 aus util.lib in die Logdatei (normalerweise \data\temp\ics.log) ausgegeben.

  6. Alle benutzten Module und Bibliotheken müssen über |INCL Direktiven eingebunden werden. In diesem Fall sind das \script\util.lib (wegen DISPLAY_OBJECT1), \script\ilin.mod (wegen INTERLIS 1 Input) und \script\run1.prg welches in jede RUN1 Konfiguration direkt oder indirekt eingebunden werden muss.

2.2.2. Statistikkonfiguration

Das folgende Script gibt eine Statistik über alle Layer einer .dxf Datei aus. Pro Layer werden die Anzahl Objekte gezählt und am Schluss der .log Datei ausgegeben.

\script\dxf2il\stat.cfg
!============================================================================!
!                                                                            !
! DXF Statistic Configuration Vers. 1.0                                      !
!                                                                            !
!============================================================================!

!<1>
|LICENSE \license\iltoolspro.lic
|LICENSE \license\iltools.lic
|LICENSE \license\dxf2il.lic

!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! user input
!

!<2>
MAP USER_INPUT1
   DIALOG => FILE ! FILE | FILES | DIRECTORY | STRING | ODBC
   MESSAGE => 'select .dxf input file'
   FILE_EXISTS => TRUE
   FILE_FILTER => dxf
   OPT => input
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! parameter maps for intput modules
!

!<3>
MAP DXFIN_PARAM
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! input sources
!

!<4>
MAP INPUT_SOURCES
   I1 => DXFIN,OPT.input
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! classification
!

!<5>
MAP INOUT 
   I1 => SAVE_LAYER0
END_MAP

!<6>
|INCL \script\util.lib
|INCL \script\dxfin.mod
|INCL \script\dxf2il\stat.out
|INCL \script\run1.prg
\script\dxf2il\stat.out
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! user defined procedures
!

MAP LAYER_OBJECTS
END_MAP

!<7>
PROCEDURE SAVE_LAYER0
   IF IN.LAYER LAYER_OBJECTS IS_NULL THEN
      &LAYER_OBJECTS IN.LAYER 1 MAPINS
   ELSE
      &LAYER_OBJECTS IN.LAYER IN.LAYER LAYER_OBJECTS INC MAPINS
   END_IF
END_PROCEDURE

!<8>
PROCEDURE PRE_SOURCE_I1
   0 SET_NULL => LAYER_OBJECTS.DEFAULT
END_PROCEDURE

!<9>
PROCEDURE POST_SOURCE_I1
   DISPLAY ''
   DISPLAY 'number of objects per layer'
   DISPLAY '==========================='
   DISPLAY ''
   &LAYER_OBJECTS MAPRESET
   WHILE &LAYER_OBJECTS MAPSCAN DO
      DISPLAY $,' ',$
   END_WHILE
END_PROCEDURE

Erläuterungen zum Beispiel:

  1. Mit der Direktive |LICENSE werden die möglichen Lizenzdateien angegeben, mit welchen der Skript ausgeführt werden kann. Werden diese Einträge vergessen, wird der Skript zur Laufzeit mit einer entsprechenden Fehlermeldung abgebrochen (no license found for ...).

  2. Der Skript fragt vom Benutzer den Dateinamen der Inputdatei ab. Damit nur bestehenden .dxf Dateien ausgewählt werden können wird FILE_EXISTS => TRUE und FILE_FILTER => dxf gesetzt. Der abgefragte Wert wird in OPT.input abgelegt (wegen OPT => input).

  3. Für das Lesen der .dxf Datei wird der Modul DXFIN benötigt. Dieser verlangt die Übergabe der notwendigen Parameter in der Map DXFIN_PARAM. In diesem Beispiel müssen zwar keine konkreten Parameter gesetzt werden, die Map muss aber trotzdem vorhanden sein.

  4. In der Map INPUT_SOURCES werden die Inputquellen festgelegt. Im Fall der Checkerkonfiguration gibt es nur eine Inputquelle I1 welche ihre Daten vom Inputmodul DXFIN aus der Datei OPT.input bezieht.

  5. Der Verarbeitungsablauf wird schliesslich in der Map INOUT festgelegt. In diesem Beispiel werden alle von der Inputquelle I1 gelesenen Objekte über die Benutzerprozedur SAVE_LAYER0 aus stat.out in einer Benutzermap zwischengespeichert.

  6. Alle benutzten Module und Bibliotheken müssen über |INCL Direktiven eingebunden werden. In diesem Fall sind das \script\util.lib (wegen DISPLAY_OBJECT1), \script\dxfin.mod (wegen DXF Input), die Benutzerdefinierte .out Datei \script\dxf2il\stat.out (wegen der Benutzerprozedur SAVE_LAYER0) und \script\run1.prg welches in jede RUN1 Konfiguration direkt oder indirekt eingebunden werden muss.

  7. Die Prozedur SAVE_LAYER0 speichert die Anzahl Objekte pro Layer in der Map LAYER_OBJECTS.

  8. Die Map LAYER_OBJECTS wird durch die Triggerprozedur PRE_SOURCE_I1 am Anfang des Skripts initialisiert.

  9. Am Schluss des Skripts wird der Inhalt der Map LAYER_OBJECTS durch die Triggerprozedur POST_SOURCE_I1 in die .log Datei ausgegeben.

2.2.3. Checkerkonfiguration

Das folgende Beispiel prüft, ob in einer DXF Datei nur bestimmte Layer vorkommen. Layer welche nicht in der Map KNOWN_LAYERS eingetragen sind, werden als Fehler gemeldet. Nachfolgend ist die .cfg und die .out Datei dargestellt:

\script\dxf2il\check.cfg
!============================================================================!
!                                                                            !
! DXF Check Configuration Vers. 1.0                                          !
!                                                                            !
!============================================================================!

!<1>
|LICENSE \license\iltoolspro.lic
|LICENSE \license\iltools.lic
|LICENSE \license\dxf2il.lic

!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! user input
!

!<2>
MAP USER_INPUT1
   DIALOG => FILE ! FILE | FILES | DIRECTORY | STRING | ODBC
   MESSAGE => 'select .dxf input file'
   FILE_EXISTS => TRUE
   FILE_FILTER => dxf
   OPT => input
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! parameter maps for intput modules
!

!<3>
MAP DXFIN_PARAM
END_MAP

!<4>
MAP KNOWN_LAYERS
   ! layer => KNOWN | UNKNOWN
   01121 => KNOWN
   DEFAULT => UNKNOWN
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! input sources
!

!<5>
MAP INPUT_SOURCES
   I1 => DXFIN,OPT.input
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! classification
!

!<6>
MAP INOUT 
   I1 => CHECK_LAYER0
END_MAP

|INCL \script\dxfin.mod
|INCL \script\dxf2il\check.out
|INCL \script\run1.prg
\script\dxf2il\check.out
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! user defined procedures
!

!<7>
PROCEDURE CHECK_LAYER0
   IF IN.LAYER KNOWN_LAYERS = 'UNKNOWN' THEN
      ERROR 'unknown DXF layer ',IN.LAYER
   END_IF
END_PROCEDURE

Erläuterungen zum Beispiel:

  1. Mit der Direktive |LICENSE werden die möglichen Lizenzdateien angegeben, mit welchen der Skript ausgeführt werden kann. Werden diese Einträge vergessen, wird der Skript zur Laufzeit mit einer entsprechenden Fehlermeldung abgebrochen (no license found for ...).

  2. Der Skript fragt vom Benutzer den Dateinamen der Inputdatei ab. Damit nur bestehende .dxf Dateien ausgewählt werden können wird FILE_EXISTS => TRUE und FILE_FILTER => dxf gesetzt. Der abgefragte Wert wird in OPT.input abgelegt (wegen OPT => input).

  3. Für das Lesen der .dxf Datei wird der Modul DXFIN benötigt. Dieser verlangt die Übergabe der notwendigen Parameter in der Map DXFIN_PARAM. In diesem Beispiel müssen zwar keine konkreten Parameter gesetzt werden, die Map muss aber trotzdem vorhanden sein.

  4. In der Map INPUT_SOURCES werden die Inputquellen festgelegt. Im Fall der Checkerkonfiguration gibt es nur eine Inputquelle I1 welche ihre Daten vom Inputmodul DXFIN aus der Datei OPT.input bezieht.

  5. Der Verarbeitungsablauf wird schliesslich in der Map INOUT festgelegt. In diesem Beispiel werden alle von der Inputquelle I1 gelesenen Objekte über die Benutzerprozedur CHECK_LAYER0 aus check.out in die Logdatei ausgegeben.

  6. Alle benutzten Module und Bibliotheken müssen über |INCL Direktiven eingebunden werden. In diesem Fall sind das \script\dxfin.lib (wegen DXF Input), \script\dxf2il\check.out (wegen Benutzerprozedur) und \script\run1.prg welches in jede RUN1 Konfiguration direkt oder indirekt eingebunden werden muss.

  7. Der eigentliche Layer-Test wird in der Benutzerprozedur CHECK_LAYER0 durchgeführt. Die Prozedur wir auf jedem von der Inputquelle I1 gelesenen DXF Objekt aufgerufen (wegen I1 => CHECK_LAYER0). Weil die Prozedur keine Argumente benötigt, endet der Name der Prozedur mit der Ziffer 0.

2.3. Konfiguration mit Input- und Outputmodul

ICS Konfigurationen mit einem Input- und einem Outputmodul sind die häufigsten ICS Konfigurationen und werden häufig einfach als Schnittstellen bezeichnet. Nachfolgend ist eine DXF => SHP Schnittstelle dargestellt, welche DXF-Block Objekte (DXF = AutoCAD DXF Format) in SHP-Point Objekte (SHP = ESRI Shape File Format) übersetzt:

\script\dxf2shp\dxf2shp.cfg
!============================================================================!
!                                                                            !
! DXF => SHP Configuration Vers. 1.0                                         !
!                                                                            !
!============================================================================!

!<1>
|LICENSE \license\iltoolspro.lic
|LICENSE \license\iltools.lic

!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! user input
!

!<2>
MAP USER_INPUT1
   DIALOG => FILE ! FILE | FILES | DIRECTORY | STRING | ODBC
   MESSAGE => 'select .dxf input file'
   FILE_EXISTS => TRUE
   FILE_FILTER => dxf
   OPT => input
END_MAP

!<3>
MAP USER_INPUT2
   DIALOG => DIRECTORY ! FILE | FILES | DIRECTORY | STRING | ODBC
   MESSAGE => 'select .shp output directory'
   OPT => output
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! parameter maps for intput modules
!

!<4>
MAP DXFIN_PARAM
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! parameter maps for output modules
!

!<5>
MAP SHPOUT_PARAM
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! input sources
!

!<6>
MAP INPUT_SOURCES
   I1 => DXFIN,OPT.input
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! classification
!

!<7>
MAP INOUT 
   I1 => IN.TYPE
   I1,BLOCK => SHPOUT_WRITE_POINT3,IN.GEOM,2D,point
   I1,* => OFF
END_MAP

!<8>
|INCL \script\dxfin.mod
|INCL \script\shpout.mod
|INCL \script\run1.prg

Erläuterungen zum Beispiel:

  1. Mit der Direktive |LICENSE werden die möglichen Lizenzdateien angegeben, mit welchen der Skript ausgeführt werden kann. Werden diese Einträge vergessen, wird der Skript zur Laufzeit mit einer entsprechenden Fehlermeldung abgebrochen (no license found for ...).

  2. Der Skript fragt vom Benutzer den Dateinamen der Inputdatei ab. Damit nur bestehenden .dxf Dateien ausgewählt werden können wird FILE_EXISTS => TRUE und FILE_FILTER => dxf gesetzt. Der abgefragte Wert wird in OPT.input abgelegt (wegen OPT => input).

  3. Der Skript fragt vom Benutzer das Outputverzeichnis ab. Der abgefragte Wert wird in OPT.output abgelegt (wegen OPT => output).

  4. Für das Lesen der .dxf Datei wird der Modul DXFIN benötigt. Dieser verlangt die Übergabe der notwendigen Parameter in der Map DXFIN_PARAM. Im Fall der DXF => SHP Schnittstelle müssen keine speziellen Parameter gesetzt werden, die Map DXFIN_PARAM muss aber trotzdem definiert werden.

  5. Für das Schreiben der .shp Datei wird der Modul SHPOUT benötigt. Dieser verlangt die Übergabe der notwendigen Parameter in der Map SHPOUT_PARAM. Im Fall der DXF => SHP Schnittstelle müssen keine speziellen Parameter gesetzt werden, die Map SHPOUT_PARAM muss aber trotzdem definiert werden.

  6. In der Map INPUT_SOURCES werden die Inputquellen festgelegt. Im Fall der SHP => DXF Schnittstelle gibt es nur eine Inputquelle I1 welche ihre Daten vom Inputmodul DXFIN aus der Datei OPT.input bezieht.

  7. Der Verarbeitungsablauf wird schliesslich in der Map INOUT festgelegt. In diesem Beispiel werden alle von der Inputquelle I1 gelesenen Objekte zunächst über die Komponente TYPE des IN Objekts klassifiziert. Objekte mit IN.TYPE = 'BLOCK' werden über die Prozedur SHPOUT_WRITE_POINT3 des SHPOUT Moduls in die SHP Punktdatei point geschrieben.

  8. Alle benutzten Module und Bibliotheken müssen über |INCL Direktiven eingebunden werden. Es sind dies: \script\dxfin.mod (wegen DXF Input), \script\shpout.mod (wegen SHP Output) und \script\run1.prg,welches in jede RUN1 Konfiguration direkt oder indirekt eingebunden werden muss.

2.4. Konfiguration mit Verarbeitungsmodul

Das nächste Konfigurationsbeispiel ist eine Erweiterung des Beispiels aus ???. In diesem Beispiel sind Flächen in der DXF Datei nur in Form von Begrenzungslinien aber nicht als geschlossene Polygone gespeichert. In der SHP Outputdatei sollen aber geschlossene Polygone ausgegeben werden. Es ist also eine Umrechnung der Begrenzungslinien in Polygone notwendig. Für diese Umrechung ist der Verarbeitungsmodul TOPO vorgesehen. Nachfolgend ist die vollständige Konfiguration inkl. Aufruf des Verarbeitungsmodul TOPO dargestellt:

\script\dxf2shp\dxf2shp_topo.cfg
!============================================================================!
!                                                                            !
! DXF => SHP Configuration Vers. 1.0                                         !
!                                                                            !
!============================================================================!

!<1>
|LICENSE \license\iltoolspro.lic
|LICENSE \license\iltools.lic

!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! user input
!

!<2>
MAP USER_INPUT1
   DIALOG => FILE ! FILE | FILES | DIRECTORY | STRING | ODBC
   MESSAGE => 'select .dxf input file'
   FILE_EXISTS => TRUE
   FILE_FILTER => dxf
   OPT => input
END_MAP

!<3>
MAP USER_INPUT2
   DIALOG => DIRECTORY ! FILE | FILES | DIRECTORY | STRING | ODBC
   MESSAGE => 'select .shp output directory'
   OPT => output
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! parameter maps for intput modules
!

!<4>
MAP DXFIN_PARAM
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! parameter maps for output modules
!

!<5>
MAP SHPOUT_PARAM
   STROKE_TOL => 0.01
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! parameter maps for processing modules
!

!<6>
MAP TOPO_PARAM
   RESOLUTION => 0.001
   OVERLAP => 0.2
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! input sources
!

!<7>
MAP INPUT_SOURCES
   I1 => DXFIN,OPT.input
   I2 => TOPO,AREA
END_MAP

!+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
!
! classification
!

!<8>
MAP INOUT 

   I1 => IN.TYPE
   I1,BLOCK => SHPOUT_WRITE_POINT3,IN.GEOM,2D,point
   I1,POLYLINE => TOPO_WRITE_BOUNDARY1,IN.GEOM
   I1,* => OFF

   I2 => SHPOUT_WRITE_POLYGON4,IN.GEOM,2D,0.01,polygon

END_MAP

!<9>
|INCL \script\util.lib
|INCL \script\topo.mod
|INCL \script\dxfin.mod
|INCL \script\shpout.mod
|INCL \script\run1.prg
  1. Mit der Direktive |LICENSE werden die möglichen Lizenzdateien angegeben, mit welchen der Skript ausgeführt werden kann. Werden diese Einträge vergessen, wird der Skript zur Laufzeit mit einer entsprechenden Fehlermeldung abgebrochen (no license found for ...).

  2. Der Skript fragt vom Benutzer den Dateinamen der Inputdatei ab. Damit nur bestehende .dxf Dateien ausgewählt werden können wird FILE_EXISTS => TRUE und FILE_FILTER => dxf gesetzt. Der abgefragte Wert wird in OPT.input abgelegt (wegen OPT => input).

  3. Der Skript fragt vom Benutzer das Outputverzeichnis ab. Der abgefragte Wert wird in OPT.output abgelegt (wegen OPT => output).

  4. Für das Lesen der .dxf Datei wird der Modul DXFIN benötigt. Dieser verlangt die Übergabe der notwendigen Parameter in der Map DXFIN_PARAM. Im Fall der DXF => SHP Schnittstelle müssen keine speziellen Parameter gesetzt werden, die Map DXFIN_PARAM muss aber trotzdem definiert werden.

  5. Für das Schreiben der .shp Datei wird der Modul SHPOUT benötigt. Dieser verlangt die Übergabe der notwendigen Parameter in der Map SHPOUT_PARAM.

  6. Für den Verarbeitungsmodul TOPO müssen die Parameter in der Map TOPO_PARAM gesetzt werden.

  7. In der Map INPUT_SOURCES werden die Inputquellen festgelegt. Im Fall der SHP => DXF Schnittstelle gibt es nun zwei Inputquellen I1 und I2:

    I1

    Liest die DXF-Objekte aus der Datei OPT.input.

    I2

    Liest die vom TOPO Modul aufbereiteten Polygone.

  8. Der Verarbeitungsablauf der INOUT Map gliedert sich in zwei Teile:

    Verarbeitung der Inputquelle I1

    Die Daten der Inputquelle I1 werden einerseits als SHP-Point Objekte ausgegeben andererseits werden Polylinien im Topologiemodul TOPO für die weitere Verarbeitung mit I2 gespeichert.

    Verarbeitung der Inputquelle I2

    Die vom Topologiemodul gelieferten geschlossenen Polygone werden als SHP-Polygon Objekte ausgegeben.

  9. Alle benutzten Module und Bibliotheken müssen über |INCL Direktiven eingebunden werden. \script\dxfin.mod (wegen DXF Input), \script\shpout.mod (wegen SHP Ouput) und \script\run1.prg, welches in jede RUN1 Konfiguration direkt oder indirekt eingebunden werden muss.