MicroStation MDL-Applikation  DKO.MA              2D/3D                                                                    V7

 

Autor:    Frank Tokarski
Stand:   11/2007


1. Kurzbeschreibung

Die Konvertierung von Daten aus ESRI ArcView nach Bentley MicroStation erfolgt in 2 Teilen:
In ArcView 3.x eingelesene Shapefiles (Auch aus ArcView GIS 8.x stammend) können mit Hilfe des Avenue-Script shp2kor.ave in ASCII-Dateien *.dko ausgelesen werden. Es werden die Shapefile-Elementtypen #FIELD_SHAPEPOINT, #FIELD_SHAPEMULTIPOINT, #FIELD_SHAPELINE und #FIELD_SHAPEPOLY unterstützt. Angehangene Tabelleninformationen (Sachdaten mit Attribute bzw. Objektbestandteile) werden mit ausgegeben.
Das MDL
DKO.MA realisiert den 2. Teil der Konvertierung, indem es die DKO-Dateien auswertet.
Diese DKO-Dateien haben pro Element eine einheitlich aufgebaute Attributzeile, aus der interaktiv Ansichtsattribute für die MicroStation-Elemente entnommen werden können. Es können Shapes, ComplexShapes, Cells(Shapes mit Holes), Linestrings und Cells übertragen werden. Texte werden zunächst nicht als grafische Elemente erzeugt. Sie sind in ArcView kein eigenständiger grafischer Elementtyp. Sie können als Point in der DKO-Datei ausgegeben werden. Der eigentliche Text wird dann als Attribut, einschliesslich Winkel, Schriftgröße usw. pro Point-Element übergeben.
Die Attributzeile eines Elementes kann auch vollständig in die entsprechende Tabelle der ACCESS-Datenbank DKO2.mdb übernommen werden. Voraussetzung  dafür ist, dass die zur DKO-Datei passende Tabelle mit Hilfe des VBA-Scriptes Formular Create_Tabelle innerhalb der ACCESS-Datenbank DKO2.mdb erzeugt worden ist.

2. Voraussetzungen

Das Programm DKO.MA  befindet sich im MDL-Applikationsverzeichnis      
z.B. c:\Bentley\Program\MicroStation\mdlapps
Zur Lizensierung muß das Verzeichnis „License“ unter dem Hauptverzeichnis angelegt sein. 
      z.B. c:\Bentley\Program\MicroStation\license
Eine gültige Lizenz dko.lic befindet sich in diesem Verzeichnis
Eine ASCII-Datei im DKO-Format liegt vor. Das DGN hat die passenden Einstellungen (GO, Arbeitseinheiten, Zellbibliothek) . In der Variante „Datenbank“ ist die ACCESS-Datenbank DKO2.mdb für die ODBC-Schnittstelle von MicroStation vorbereitet und die Tabelle(n) zur Einspeisung der Attribute vorbereitet.

3. Allgemeiner Arbeitsablauf

a) ohne Datenbank

Entscheidung GroupHole oder GroupNumber : In ArcView-Shapefile gibt es auch die Möglichkeit in einem ObjektPolygon mehrere Shapes  nebeneinander(!) aufzunehmen  In dem Fall nicht GroupHole sondern Groupnumber wählen. Nach Aufruf des MDL’s DKO.MA wird die ASCII-Datei im DKO-Format selektiert. Anschließend wird über den Knopf Refresh diese Datei auf den Strukturinhalt der Attributzeile untersucht und die Attributliste aktualisiert. Nun erfolgt über Einstellungen Attributauswahl der Aufruf der Box Attributzuordnung.

Es gibt die Elementarten Shape, Line und Point. Eine DKO-Datei enthält immer nur eine Elementeart. Für die Arten Shapes und Lines werden Linienattribute festgelegt, und für Points werden Attribute der Cells festgelegt. In unserem Beispiel ist die Elementart Shape vorgesehen. Deshalb werden jetzt die Linienattribute festgelegt. Die Festlegung der Ansichts-Attribute ist hierachisch  aufgebaut: 
               Mindestens sind die gerade aktiven Attribute (Primäre Funktion-Palette von MicroStation) gültig.
                Im Abschnitt Line default können andere Standardattribute festgelegt werden. 
               Höchste Priorität haben die in der Liste zugeordneten DKO-Attribute

Das Zuordnen der DKO-Attribute geht folgendermaßen:

Erst dann wird der Linienattributart-Schalter aktiv. Ihn stellt man auf eine der 4 möglichen Attributarten: Level, Color, Style oder Weight. Im Beispiel wurde er auf Level gestellt. Jetzt wählt man aus der Liste ein passendes DKO-Attribut mit Doppelklick aus. In unserem Beispiel gibt es das DKO-Attribut mit dem Namen Level, das hiermit dem Linienlevel zugeordnet wurde. Diese Zuordnung kann man auch für die restlichen Attribute durchführen, insofern passende DKO-Attribute vorhanden sind. Allein mit dieser Attribut-Zuordnung besteht die Möglichkeit, die Elemente mit unterschiedlichen Attributen zu belegen.
Sollte einmal dabei ein unsinniger nicht gültiger Wert erkannt werden, wird der Default-Wert genommen, bzw. wenn der nicht gewählt ist, der gerade aktiv gesetzte Wert der primären Funktionspalette. Nach Betätigen des Knopfes Start aus der Hauptbox werden die Elemente eingelesen.

Für jede DKO-Datei muß der Vorgang von vorn mit der Selektion dieser Datei beginnend wiederholt werden. Im 2. Beispiel wird eine Punktedatei eingelesen: Also in der Hauptbox wird wieder über Select die DKO-Datei ausgewählt. Refresh analysiert den 1. Attributsatz und aktualisiert die Attributliste. Über Einstellungen wird die Box für die Attributzuordnung geöffnet:

Jetzt wählt man aus der Liste ein passendes DKO-Attribut mit Doppelklick aus. In unserem Beispiel gibt es das DKO-Attribut mit dem Namen Layer, das hiermit dem Zellennamen zugeordnet wurde. Diese Zuordnung kann man auch für die restlichen Attribute durchführen, insofern passende DKO-Attribute vorhanden sind. Sollte man einmal eine Zuordnung zurücknehmen müssen, so gibt es in den Attributartschaltern die Option kein. Nach dieser Wahl und Doppelklick auf die Listenzeile, wird die Zuordnung gelöscht.
Sollte einmal das DKO-Attribut einen Zellennamen liefern, der nicht gültig ist, wird eine Warnung ausgegeben:

Bei Antwort mit OK , wird versucht die Default-Zelle zu platzieren. Wenn Abbrechen gewählt ist, wird dieses Element nicht platziert.
Normalerweise kann mit den Cellattributen Name, Scale und Angle hinreichend gearbeitet werden. Dann haben die Zellen das Aussehen, wie in der Zellbibliothek. Über Level und Color hat man eine zusätzliche Möglichkeit eine Unterscheidung vorzunehmen. Es ist durchaus verbreitet, keine Zellnamen mit zu übergeben, aber unterschiedliche Level- bzw. Color-Werte. Dann ist die Unterscheidung nur darüber möglich.

b) Mit Datenbank

1. Einrichten der ODBC-Schnittstelle

Die ACCESS-Datenbank DKO2.mdb muss für die ODBC-Schnittstelle von MicroStation vorbereitet sein:
Für die Datenbank DKO2.mdb wird ein Ordner festgelegt, indem sie abgespeichert wird. Dann wird die ODBC-Schnittstelle eingerichtet:
                Start Systemsteuerung Verwaltung Datenquellen(ODBC) 
Die folgende Box erscheint:

Hier wechselt man auf System-DSN (als Administrator!). Dann wird nach Drücken von Hinzufügen der Microsoft Access-Treiber ausgewählt und Fertig stellen gedrückt. Die folgende Box erscheint:

Mit Auswählen… wird jetzt der Ordner mit der Datenbank DKO2.mdb aufgesucht und DKO2.mdb ausgewählt. Unter Datenquellenname wird der Name eingetragen, der von MicroStation aus eingegeben werden muss, um die Datenbank mit dem DGN zu verbinden.(z.B. DKO2.mdb). Die Beschreibung kann noch optional eine Erläuterung dieser ODBC-Schnittstelle enthalten.
Die Einrichtung der ODBC-Schnittstelle ist damit abgeschlossen.

2. Aufbau der Datenbank DKO2.mdb

DKO2.mdb enthält zunächst mindestens die Tabellen mscatalog und FLAECHE1.
Mscatalog besitzt die folgenden Eintragungen:

Jede (voraussichtlich) benötigte Attribut-Tabelle und die Tabelle mscatalog selbst sind hier mit tablename und entitynum eindeutig definiert. Für das Funktionieren des VBA’s Create_Tabelle ist die leere Tabelle FLAECHE1 erforderlich. Sie enthält nur die Spalte mslink. Die Tabellen Point, Line und Shape werden aus dem VBA heraus immer aktuell passend zur Bearbeitungsdatei *.dko erzeugt.

3. Aktuelle Vorbereitung der Datenbank DKO2.mdb zur Datenaufnahme

DKO2.mdb wird mit Doppelklick geöffnet. Nun wählt man unter Objekte den Bereich Formulare an und findet das Formular Create_Tabelle. Mit Doppelklick öffnet sich die Box „Create_Tabelle: Formular“

Mit Select wählt man die DKO-Datei aus. Nach Start analysiert das VBA die DKO-Datei und erzeugt je nach Art der Daten automatisch eine Tabelle Point, Line oder Shape. Jedes vorkommende Attribut erhält eine Spalte in der Tabelle. Zusätzlich wird (wenn nicht bereits als Attribut enhalten) die Spalte mslink eingerichtet. In dieser Spalte werden später die eindeutigen Schlüssel zur Verbindung von Geometrie-Element und Sachdaten eingetragen.
Nach dieser Vorbereitung können die Daten der gleichen DKO-Datei mit dem MDL DKO.MA in der Variante „Datenbank“ einschliesslich Sachdaten konvertiert werden. Zusätzlich können wie unter a) ohne Datenbank beschrieben Ansichtsattribute der Geometriedaten aus den Attributen abgeleitet werden.
Anmerkung: Aus unerklärlichen Gründen wird ein Attribut mit dem Namen Level nicht unterstützt. Deshalb wird ein eventuell vorhandenes Attribut Level immer intern als ALevel behandelt.

Beispiel 1 einer DKO-Datei

 

; Konverter Shapefile ArcView 3.x nach DGN-Koordinaten-Format
;
; Export aus Punkte.shp
; 18-03-2003                                               12:57:05
ID=1 E=Point Layer=835283 Level=22 Color=175 Mslink_odb=86 Msctlg_odb=65
4474557.040 5782641.560
END
ID=2 E=Point Layer=520118 Level=22 Color=175 Mslink_odb=87 Msctlg_odb=65
4474554.079 5782641.453
END
ID=3 E=Point Layer=520119 Level=22 Color=175 Mslink_odb=88 Msctlg_odb=65
4474549.893 5782641.323
END
ID=4 E=Point Layer=835283 Level=22 Color=175 Mslink_odb=89 Msctlg_odb=65
4474545.710 5782641.188
END
END

Dieses Beispiel beinhaltet eine Punktdatei. Die ersten Zeilen mit einem ; als erstes Zeichen bedeuten Kommentar.
Ein Element beginnt immer mit ID= und endet mit END. Der Datei-Abschluß ist durch eine weitere END-Zeile gekennzeichnet. Die Zeile, die mit ID= beginnt, ist die Attributzeile des Elementes. Die einzelnen Attribute bestehen aus dem Attributnamen und dem Attributwert, verbunden mit dem Gleichheitszeichen. Zwischen jedem Attribut ist ein Leerzeichen. Die ersten beiden Attribute sind immer ID= und E= . Mit ID ist eine eindeutige Identifikationsnummer gegeben und mit E wird die Elementart zugewiesen: Shape, Line oder Point.
Bei Elementart Point folgt nur eine Koordinatenzeile mit 2 oder 3 Koordinaten (2D/3D).
In der Attributzeile können beliebig viele Sachdaten eingetragen sein. Innerhalb einer DKO-Datei ist die Struktur einer Attributzeile immer gleich.

5. Beispiel 2 einerDKO-Datei

; Konverter Shapefile ArcView 3.x nach DGN-Koordinaten-Format
; Programm shp2kor.ave
; Export aus G2279.shp
; 05-03-2003                                               11:24:13
ID=1 E=Shape Level=1 Color=133 Mslink_odb=1 Msctlg_odb=2279 Land=15 Gemarkung=2279 Flur=1 Flst=143/7 Xkoord=4495125.140000 Ykoord=5686942.500000
4495124.588 5686942.299
4495124.667 5686942.817
4495125.864 5686942.397
4495124.588 5686942.299
END
ID=2 E=Shape Level=1 Color=133 Mslink_odb=2 Msctlg_odb=2279 Land=15 Gemarkung=2279 Flur=1 Flst=143/23 Xkoord=4495276.270000 Ykoord=5687019.450000
4495275.696 5687019.724
4495277.652 5687019.778
4495275.795 5687019.227
4495275.696 5687019.724
END
ID=1690 E=Shape Level=0 Color=0 Mslink_odb=1690 Msctlg_odb=2279 Land=15 Gemarkung=2279 Flur=1 Flst=124/41 Xkoord=4495044.830000 Ykoord=5686971.600000
4494961.725 5686933.197
4494968.747 5686968.097
4494968.859 5686972.392
4494967.241 5686977.189
4494965.959 5686980.815
4494965.712 5686983.371
4494990.762 5686986.723
4495038.063 5686998.482
4495051.434 5687004.390
4495059.918 5687009.977
4495079.442 5687020.647
4495086.047 5687024.193
4495097.861 5687030.316
4495116.334 5686970.138
4495097.070 5686953.542
4495087.349 5686945.077
4495083.222 5686942.769
4495076.508 5686940.460
4495066.018 5686936.542
4495039.801 5686928.006
4495037.024 5686928.344
4495023.951 5686927.057
4495014.182 5686928.205
4494995.419 5686928.340
4494979.298 5686930.305
4494964.532 5686933.151
4494961.725 5686933.197
END
4494982.874 5686964.951
4494987.826 5686966.218
4494988.171 5686965.239
4494992.835 5686966.852
4494995.253 5686958.155
4494984.083 5686955.390
4494982.874 5686964.951
END
4494970.035 5686961.899
4494970.092 5686965.009
4494971.186 5686970.480
4494974.525 5686972.842
4494980.513 5686975.376
4494982.874 5686964.951
4494970.035 5686961.899
END
4494980.513 5686975.376
4494984.486 5686976.758
4494989.726 5686978.774
4494994.562 5686967.716
4494992.835 5686966.852
4494988.171 5686965.239
4494987.826 5686966.218
4494982.874 5686964.951
4494980.513 5686975.376
END
4494967.616 5686951.301
4494970.035 5686961.899
4494982.874 5686964.951
4494984.083 5686955.390
4494967.616 5686951.301
END
END
 Dieses Beispiel beinhaltet eine Shapedatei. Sie beinhaltet eine Reihe von Sachdaten wie z.B. Mslink_odb , Flurstücksnummer, Schwerpunktskoordinaten Xkoord und Ykoord. An den Koordinatenzeilen erkennt man, das der Anfangspunkt immer identisch mit dem Endpunkt ist. (Geschlossene Flächen). Im letzten Element befinden sich nach einem langen geschlossenen Umring weitere kleinere Umringe innerhalb eines Elementes: Das wird als Cell (Shapes mit Holes) umgesetzt.