4. Modul DGNIN - Bentley Microstation DGN lesen

4.1. Allgemeines

Mit dem Modul können Objekte direkt aus Microstation Designfiles gelesen werden.

[Anmerkung]

Das analoge Modul MSIN benötigt zum Lesen von Designfiles das Produkt Microstation.

Der Modul wird mit:

|INCL \script\dgnin.mod

in einer ICS RUN1-Konfiguration verfügbar gemacht.

4.2. Abhängigkeiten von anderen Modulen

Keine Abhängigkeiten vorhanden.

4.3. Parametermap DGNIN_PARAM

Folgende Parameter können in der Map DGNIN_PARAM für den Modul gesetzt werden:

Parameterreq/optBeschreibung
REFERENCEFILES_SCANoON oder OFF. Default OFF. Sollen die Elemente der Referenzfiles gelesen werden.
RSC_DIRoSTRING. Definiert den Pfad mit den Microstation-Resource-Files, wie zum Beispiel die Fonts. Wird benötigt um zusätzliche Informationen zu den Objekten verarbeiten zu können. Beispiel Fontname bei Texten.
DEBUGoON oder OFF. Default OFF. Debugmodus ein oder aus.
STATISTICSoON oder OFF. Default OFF. Statistik anzeigen.

4.4. Map für Textjustierung

Das Modul verfügt über eine Map, die die Abbildung der Microstation-Textjustification zur INTERLIS-Textjustierung - HALIGNMENT,VALIGNMENT beinhaltet. Diese Map sieht wie folgt aus.

MAP DGNIN_JUST_TO_ALI
   LT => 0,1
   LC => 0,2
   LB => 0,3
   CT => 1,1
   CC => 1,2
   CB => 1,3
   RT => 2,1
   RC => 2,2
   RB => 2,3
   DEFAULT => 1,2
END_MAP

Diese Map kann in einer Konfiguration wie folgt angewendet werden.

IN.JUST DGNIN_JUST_TO_ALI EXTRLS 
=> OUT.NamHAli
=> OUT.NamVAli

4.5. Objektmodell

Allgemeine Komponenten in jedem IN-Objekt
Komponentereq/optBeschreibung
IN.TYPE(i)rMicrostation Type des Objekts.
IN.LEVEL(i) r

Microstation Level-Nummer Objekts.

IN.LEVELNAME(s) r

Microstation Level-Name des Objekts.

IN.COLOR(i)rMicrostation Color des Objekts.
IN.WEIGHT(i)rMicrostation Weight des Objekts.
IN.STYLE(i)rMicrostation Style-Nummer des Objekts.
IN.STYLENAME(s)rMicrostation Style-Name des Objekts.
IN.GGROUP(i)rMicrostation Graphic Group-Nummer des Objekts.
IN.FILENR(i)rMicrostation Filenummer des Inputfiles des Objekts.
IN.FILEPOS(i)rMicrostation Fileposition des Objekts. (Nich nicht implementiert)
IN.DIR(s)rDirectory des Inputfiles des Objekts.
IN.FILE(s)rFilename des Inputfiles des Objekts.
Zusätzliche Komponententen für LINE (3), LINESTRING (4), CURVE (11), ARC (16), COMPLEX_LINESTRING (12)
Komponentereq/optBeschreibung
IN.GEOM(l)rLinien-Geometrie des Objekts.
Zusätzliche Komponenten für SHAPE (6), COMPLEX_SHAPE (14), ELLIPSE (15)
Komponentereq/optBeschreibung
IN.GEOM(a)rFlächen-Geometrie des Objekts.
Zusätzliche Komponenten für TEXT (17), SYMBOL (17)
Komponentereq/optBeschreibung
IN.GEOM(p)rPunkt-Geometrie des Objekts.
IN.TXT(s)rText des Objekts.
IN.TW(r)rTextbreite des Objekts. (Microstation: tw=).
IN.TH(r)rTexthöhe des Objekts. (Microstation: th=).
IN.ROT(r)rRotation des Objekts.
IN.FONT(i)rFont des Objekts. (Microstation: ft=).
IN.JUST(s)rTextjustierung des Objekts. (Horizontal: L: Left, C:Center, R:Right; Vertikal: T:Top, C:Center, B:Bottom; Beispiel LC).
IN.XGEOM(li)oListe von Geometrien des Objekts falls es ein Symbol ist, das heisst wenn der Font ein Symbolfont ist. (Noch nicht implementiert).
Zusätzliche Komponenten für TEXT_NODE (7)
Komponentereq/optBeschreibung
IN.GEOM(p)rPunkt-Geometrie des Objekts.
IN.TXT(s)rText 1. Zeile des Objekts.
IN.TXT2(s)0Text 2. Zeile des Objekts.
IN.TXT<n>(s)oText n. Zeile des Objekts.
IN.TW(r)rTextbreite des Objekts. (Microstation: tw=).
IN.TH(r)rTexthöhe des Objekts. (Microstation: th=).
IN.ROT(r)rRotation des Objekts.
IN.FONT(i)rFont des Objekts. (Microstation: ft=).
IN.JUST(s)rTextjustierung des Objekts. (Horizontal: L: Left, C:Center, R:Right; Vertikal: T:Top, C:Center, B:Bottom; Beispiel LC).
IN.LS(r)rLinespacing des Objekts. (Microstation: ls=).
Zusätzliche Komponenten für CELL (2), SHARED_CELL (35)
Komponentereq/optBeschreibung
IN.GEOM(p)rPunkt-Geometrie des Objekts.
IN.CELL(s)rZellname des Objekts.
IN.ROT(r)rRotation des Objekts.
IN.SCALE(r)rSkalierung des Objekts.
IN.XGEOM(li)rListe von Geometrien des Objekts.

4.6. Exportierte Prozeduren und Methoden

ProzedurDGNIN_OPEN ! [s input][]
BeschreibungÖffnet das Designfile <input> und initialisiert den Modul. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
'' DGNIN_OPEN
ProzedurDGNIN_READ_OBJECT ! [][b state]
Beschreibung

Liest das nächste IN-Objekt aus dem aktuellen Designfile. Falls kein Objekt mehr gelesen werden kann, wird der Status FALSE geliefert. Die Prozedur wird von RUN1 automatisch aufgerufen.

Beispiel
DGNIN_READ_OBJECT [TRUE]
ProzedurDGNIN_CLOSE ! [][]
BeschreibungSchliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen.
Beispiel
DGNIN_CLOSE

4.7. Skriptbeispiel

Beispiel ohne Datenbankanbindung.

! Diese ICS Konfiguration zeigt alle von dgnin.mod
! gelesenen Objekte in der .log Datei an.
! Eine eventuelle Datenbankanbindung wird nicht berücksichtigt.

|LICENSE \license\iltools.lic

MAP USER_INPUT1
   DIALOG => FILE
   MESSAGE => 'Enter .dgn Input File'
   FILE_FILTER => dgn
   FILE_EXISTS => TRUE
   OPT => input
END_MAP

MAP DGNIN_PARAM
   STATISTICS       => ON
END_MAP

MAP INPUT_SOURCES
   I1 => DGNIN,OPT.input
END_MAP

MAP INOUT
   I1 => DISPLAY_OBJECT1,IN
END_MAP

|INCL \script\dgnin.mod
|INCL \script\run1.prg