MicroStation MDL-Applikation  DGNDA.MA              2D                                                                    V7

 

Autor:  ©  Frank Tokarski
Stand:    11/2007


1. Kurzbeschreibung

Mit dem Programm DGNDA.MA kann eine ASCII-Ausgabe des Inhaltes von DGN-Dateien vorgenommen werden. Das Format ist eine erweiterte Variante des DA001-Formates. Durch die Erweiterung ist möglich, auch in umgekehrter Richtung zu konvertieren. ( DADGN.MA).

2. Voraussetzungen

Das Programm DGNDA.MA  befindet sich im MDL-Applikationsverzeichnis      
z.B. c:\Bentley\Program\MicroStation\mdlapps

3. Allgemeiner Arbeitsablauf

DA         1 – 3            Kennung 001
KK         4                Koordinatenkennung
PK         5                Punktkennung
PN         6-19             Punktnummer
PX         20-31            Rechtswert
PY         32-43            Hochwert
HK         44               Höhenkennung
PZ         45-52            Punkthöhe
LN         53-56            Liniennummer
LA         57               Linienart
LF         58               Linienform
LV         59               Linienverbindung
PF         60               Flächenzuordnung
PA         61               Punktart
PH         62               Horizont
PB         63-64            Punktbeschreibung
LB         65-66            Linienbeschreibung
XX         67-90            Spezielle Belegung für Rückkonvertierung

Unterstützt werden die unter 4. aufgeführten Elementtypen. Die Ausgabe ist im erweiterten Format der Datenart DA001 angelegt. Mit Hilfe einer Parameterdatei.(siehe 5.) wird die Auswahl der Elemente und die Belegung der formatspezifischen Spaltenwerte gesteuert. Die bisherigen Funktionalitäten der Vorgängerversion DAA.MA bleiben integriert und diesbezüglich sind auch 3D-Auswertungen möglich:Linestrings können mit der entsprechenden Punkt-Abstandswahl "verdünnt" werden. Die DA001-Dateien können auf identische Punkte geprüft werden. Darüber ist eine Protokollausgabe wählbar. Die Herstellung der Eindeutigkeit dieser Punkte kann auf zwei Arten vorgenommen werden. Entweder bekommen die identisch gefundenen Punkte die gleiche Punktnummer oder sie werden gelöscht. Ein vollständiges DA001-Format entsteht nur, wenn alle Ausgabespalten angewählt wurden.  Für die Prüfvorgänge sind mindestens die Spalten  PN, PX, PY und PZ (nur bei 3D-Files) auszugeben. Lines(Typ3) mit Null-Länge werden nur mit den Koordinaten des Startpunktes ausgegeben.
Die spezielle Erweiterung gegenüber der Vorgängerversion betrifft die umgekehrten
Konvertierungsvorraussetzungen: Von 80 Zeichen ist der Datensatz auf 90 Zeichen erweitert worden. Andererseits läßt sich durch einfaches Ausschneiden (Editor von CREMER z.B.) der 10 Zeichen sehr leicht das eigentliche DA001-Format (für Lieferung von Daten) wieder herstellen. Die Erweiterung betrifft bei Linien den Typ und die Ansichtsattribute sowie bei Zellen Typ, Level, Cellnamen, Skalierungsfaktor und Drehwinkel. Bögen und Kreise werden nur mit 3 Punkten(auf Rand liegend) akzeptiert. Die Linien-Nummerierung LNR dient nicht einer eineindeutigen Katalogisierung, sondern zeigt nur, wo eine neue Linie beginnt und wo sie endet. D.h. wenn die Nummer 9999 erreicht wird, beginnt die nächste wieder mit 0001. Der Schalter LNR muß in der Parameterdatei eingeschaltet sein (auf 1 gesetzt). Für das Zurückkonvertieren ist die Belegung LNR auch Vorraussetzung.

4.  Beschreibung der Parameterdatei

Die Parameterdatei besteht aus 16 Spalten (5 Eingabespalten/11 Ausgabespalten). Jede Spalte muß eine Eintragung haben. Ist kein Wert für eine Spalte vorgesehen, muß dafür ein * eingetragen sein.Ein Semikolon als 1. Zeichen in einer Zeile bedeutet Kommentar: Diese Zeile wird vom Programm nicht ausgewertet. Innerhalb einer Zeile sind die Spalteneinträge mit Tabulator oder Leerzeichen zu trennen.Die 5 Eingabespalten sind für die Selektion der MicroStation-Elemente bedeutsam. Wir unterscheiden zwei Varianten (Zellen und die anderen Elemente):

1.  Zellen:     Level   Typ   Cellname   *    *
2.  Elemente, die nicht Zelle sind (Line,Linestring,Shape,Circle,Bogen,Complex Shape,Complex Chain):
                Level   Typ   Color   Style   Weight
Level ... Ebenenangabe 1-63 (keine Namen)
Typ    ... Typnummer Cell=2, Line=3, Linestring=4, Shape=6, Circle=15, Bogen(16)
               Complex Shape und Complex Chain werden nur bezüglich dieser vorstehenden Komponenten ausgewertet!
Cellname ... Auf Großschreibung achten, bis zu 6 Zeichen
Color  ... Farbangabe 0-254 (keine Namen)
Style   ... Linienart 0-7 (auch Namen bis zu 15 Zeichen)
Weight ... Strichdicke 0-15

11  Ausgabespalten(DA001-spezifisch)  schließen sich nahtlos an die 5 Eingabespalten an:
PZ   LNR   LA   LF   LV   PF   PA   PH   PB   LB   XX

PZ    ... Höhenschalter             1 Stelle 0,1 oder *
LNR ... Liniennummerschalter      1 Stelle 0,1 oder *
LA    ... Linienart                 1 Stelle 0,1,2,3,4.5,6,9 oder *
LF     ... Linienform                1 Stelle 0,1,2 oder *
LV    ... Linienverbindung          1 Stelle 0,1,3,4,6,7 oder *
PF     ... Flächenzuordnung          1 Stelle 0,1 oder *
PA    ... Punktart                  1 Stelle 0,1,2,9 oder *
PH    ... Horizont                  1 Stelle 0,1,2,3 oder *
PB    ... Punktbeschreibung         2 Stellen  Eintrag n. nicht festgelegt, zumindest *
LB    ... Linienbeschreibung        2 Stellen  Eintrag n. nicht festgelegt, zumindest *
XX    ... belegt                   24 Stellen spezielle Festlegung, zumindest 2Sternchen **

Ab der 72 Spalte werden die Ansichtsattribute festgelegt:

 a) Linien
   72. bis 73. typ  
   74. bis 75. level
   76. bis 78. color
   79. bis 80. weight
   81. bis 95. style (auch benutzerdef.)
 b) Zellen
   72. bis 73. typ
   74. bis 75. level
   76. bis 81. Celname
 c) Nach wie vor: Keine Texte
   Der letzte Abschnitt XXXXXXXXXXXXXXXXXXXXXXXX muß als Block belegt sein.
D.h. man kann zwar, wenn die vorgesehene Breite unterschritten wird,
so einrücken(innerhalb des   definierten Platzes),
daß die Lesbarkeit verbessert ist.
Dann müssen man aber die Lücken zwischen den Attributen mit * aufgefüllt sein.

  Verwendete Typen:           Anmerkung:
   *2              Zelle     76. Byte mit dem 1.Zeichen des bis zu 6-stelligen Namen belegt, danach kein Zeichen !
   *3              Line       Mindestens 2 Punkte müssen nacheinander (bei gleicher LNR) kommen, sonst ignoriert
   *4              Linestring  --------------------- " ----------------------------- " ------------------------
   *6              Shape      mind. 3 Pkte, als 4. wird der Anf.-P genommen.
Normalerweise ist Anf-P gleich End-P (ab 4 Punkte).
  Bei mehr als 101 Punkten wird ein Complex Shape erzeugt.
   16              Bogen      3 Pkte(Anf.-P., Zwischen-P., End-P)
Nur 2 Pkte werden Line, 1 Pkt oder mehr als 3 werden ignoriert
15              Kreis      3 Pkte auf dem Kreis liegend; Alles andere wird ignoriert !
   Style ist bei den linienhaften Typen auch als Name(benutzerdefinierte Linienart) mit
                bis zu 15 Zeichen möglich, benutzerdefinierter Style beginnt genau mit dem 81. Byte
                nach Style darf nicht mit * aufgefüllt werden.

5.  Beispiel einer Parameterdatei

;Siehe Programmbeschreibung - Alle Spalten müssen mit einem Wert belegt sein !
;                             Die letzte Spalte mindestens mit zwei(!) Sternchen **
;---------------------------------------------------------------------------------------------
;                                                                     2 2 3  2 15
;Lv Typ Co/Ce   St  Wt     Z    LNr   LA  LF  LV  PF  PA  PH  PB  LB  tylvcolwtstyle**********
;                          0/1  0/1   X   X   X   X   X   X   XX  XX  XXXXXXXXXXXXXXXXXXXXXXXX
;---------------------------------------------------------------------------------------------
;KATASTER    
;              
;01/0233 Flurstuecksgrenze
1   3   33      0   4       1   1     0   0   *   *   0   *   *   1   *3*1*33*4*0 
1   4   33      0   4       1   1     0   0   *   *   0   *   *   1   *4*1*33*4*0 
1  15   33      0   4       1   1     0   0   *   *   0   *   *   1   15*1*33*4*0 
1  16   33      0   4       1   1     0   0   *   *   0   *   *   1   16*1*33*4*0 
;01/0235 Strittige Grenze
1   3   35    l6-1  4       1   1     0   0   *   *   0   *   *   1   *3*1*35*4l6-1 
1   4   35    l6-1  4       1   1     0   0   *   *   0   *   *   1   *4*1*35*4l6-1 
1  15   35    l6-1  4       1   1     0   0   *   *   0   *   *   1   15*1*35*4l6-1 
1  16   35    l6-1  4       1   1     0   0   *   *   0   *   *   1   16*1*35*4l6-1 
;01/0239 Flurstuecksgrenze in Verkehrswegen
1   3   39      0   4       1   1     0   0   *   *   0   *   *   1   *3*1*39*4*0 
1   4   39      0   4       1   1     0   0   *   *   0   *   *   1   *4*1*39*4*0   
1  15   39      0   4       1   1     0   0   *   *   0   *   *   1   15*1*39*4*0 
1  16   39      0   4       1   1     0   0   *   *   0   *   *   1   16*1*39*4*0 
;01/0245 Flurstuecksgrenze an kleiner Marksteinschutzflaeche
1   3   45      0   2       1   1     0   0   *   *   0   *   *   1   *3*1*45*2*0   
1   4   45      0   2       1   1     0   0   *   *   0   *   *   1   *4*1*45*2*0   
1  15   45      0   2       1   1     0   0   *   *   0   *   *   1   15*1*45*2*0   
1  16   45      0   2       1   1     0   0   *   *   0   *   *   1   16*1*45*2*0   
;01/0248 Flurstuecksgrenze als Mittelinie in Gewaessern
1   3   48    l2-1  4       1   1     0   0   *   *   0   *   *   1   *3*1*48*2l2-1 
1   4   48    l2-1  4       1   1     0   0   *   *   0   *   *   1   *4*1*48*2l2-1 
1  15   48    l2-1  4       1   1     0   0   *   *   0   *   *   1   15*1*48*2l2-1
1  16   48    l2-1  4       1   1     0   0   *   *   0   *   *   1   16*1*48*2l2-1
;01/0291 Zugehoerigkeitshaken
;1   2   010291  *  *       1   1     0   0   *   *   0   *   *   1   *2*1010291
;01/0292 Zuordnungspfeil
1   3   92   pfeil  2       1   1     0   0   *   *   0   *   *   1   *3*1*92*2pfeil 
1   4   92   pfeil  2       1   1     0   0   *   *   0   *   *   1   *4*1*92*2pfeil 
;02/0231 Gemarkungsgrenze
2   3   31   gemgr  5       1   1     0   0   *   *   0   *   *   1   *3*2*31*5gemgr  
2   4   31   gemgr  5       1   1     0   0   *   *   0   *   *   1   *4*2*31*5gemgr   
2  15   31   gemgr  5       1   1     0   0   *   *   0   *   *   1   15*2*31*5gemgr   
2  16   31   gemgr  5       1   1     0   0   *   *   0   *   *   1   16*2*31*5gemgr   
;02/0232 Flurgrenze, Fl
2   3   32  flurgr  5       1   1     0   0   *   *   0   *   *   1   *3*2*31*5flurgr 
2   4   32  flurgr  5       1   1     0   0   *   *   0   *   *   1   *4*2*31*5flurgr 
2  15   32  flurgr  5       1   1     0   0   *   *   0   *   *   1   15*2*31*5flurgr 
2  16   32  flurgr  5       1   1     0   0   *   *   0   *   *   1   16*2*31*5flurgr 
;
;52/0118 Abgemarkter Grenzpunkt
52  2   520118  *   *       1   1     0   0   *   *   0   *   *   1   *252520118 
;52/0119 Nicht abgemarkter Grenzpunkt
52  2   520119  *   *       1   1     0   0   *   *   0   *   *   1   *252520119  
;
;Voreinstellung Unbekannter Punkt
62  2   UPUNKT  *   *       1   1     0   0   *   *   0   *   *   1   *262UPUNKT
;
;
;
;66/3505 Straszensinkkasten
32  2   643505  *   *       1   1     0   0   *   *   0   *   *   1   *232643505
;                
;
;11/1013 Begrenzungslinie eines nichtoeffentl. Gebaeudes       
11  3   13      0   2       1   1     0   0   *   *   0   *   *   1   *311*13*2*0  
11  4   13      0   2       1   1     0   0   *   *   0   *   *   1   *411*13*2*0 
11  6   13      0   2       1   1     0   0   *   *   0   *   *   1   *611*13*2*0 
11 15   13      0   2       1   1     0   0   *   *   0   *   *   1   1511*13*2*0 
11 16   13      0   2       1   1     0   0   *   *   0   *   *   1   1611*13*2*0 
;
;21/6600 Heide
25  2   HEIDE   *   *       1   1     0   0   *   *   0   *   *   1   *225HEIDE