Grafika i bazy danych - ćwiczenia z MicroStation

Wstęp
Kopiujemy pliki cd10.dgn i cd09.dgn z katalogu examples Microstation (lub z dostrczonej dyskietki), do katalogu D:\Win32app\Bentley\Workspace\Projects\Untitled\Dgn . Pliki zachowujemy pod własną nazwą. Zapisujemy tutaj swoje nazwy plików
.
cd09.dgn ..... cd10.dgn .........

 

Zakres ćwiczenia 1:

Podstawowe mechanizmy wykorzystania bazy danych w MicroStation

Ćwiczenie 1.0. Podłączenie Bazy Danych do MSt/J.

Celem tego ćwiczenia będzie uzyskanie połączenia ODBC pomiędzy MicroStation a plikiem bazy danych Access97.
Poprawnie skonfigurowane połączenie stanowi podstawę zastosowania samego MSt. jak i MSt. GeoGraphics do wykorzystania danych tekstowych z zewnętrznych baz danych.

PRZED uruchomieniem MSt. W katalogu D:\Win32app\Bentley\Program\Microstation\database\odbc\examples\access\ znajduje się plik bazy danych ACCESS97 o nazwie gis.mdb Kopiujemy go w tym samym katalogu i zachowujemy go pod swoją własną nazwą ****.mdb.
Zapoznajemy się ze strukturą bazy (jakie tabele, jakie kolumny).
Przechodzimy w menu START do podmenu Programy, następnie do Microsoft Data Access Components a stamtąd wybieramy ODBC Administrator. Wybieramy zakładkę User DSN. Naciskamy klawisz Add (Dodaj). Z podanego zestawu sterowników wybieramy sterownik bazy Access. Następnie nadajemy nazwę połączenia ODBC oraz opis połączenia. Następnie w sekcji baza danych naciskamy klawisz Select, wskazując katalog podany powyżej wybieramy nasz plik a.mdb (jest to źródło dla danego połączenia odbc). Po utworzeniu sterownika zamykamy Administratora ODBC.

Zapisujemy tutaj swoje swoją nazwę bazy danych i połączenia ODBC ......................

Ćwiczenie 1.1. Nowe narzędzia MicrostationSE i /J

1. Uruchamiamy Mst /J otwierając plik cd10.dgn
2. Znajdź parcelę nr 13 ( przy ulicy MONTVUE RD) (Edit>Find/Replace włączona opcja Whole Words) Zoom Ratio =7
3. Używając narzędzia
SmartMatch oraz SmartLine, Place Active Point oraz Place Text, dorysuj nową parcelę oraz wstaw jej numer (40) oraz centroid (dowolnie wstawiony punkt wewnątrz parceli).

Ćwiczenie 1.2. Tworzenie połączenia elementu grafiki do bazy danych

1. Łączymy się z naszą bazą danych - z Menu Settings/Database/Connect
2. Wybieramy Database Server - ODBC i wpisujemy nazwę naszego połączenia ODBC
3. Sprawdź lub ustaw tryb połączenia (Linkage Mode) w oknie Database na NEW
(otwarcie omawianego okna z menu Settings>Database>Dialog)
4. Zdefiniuj Active Entity jako tablicę prototypową tabeli parcel z atrybutem owner:
W oknie KeyIn wpisz:
AE=insert into parcel (owner) values ('John Smith')

5. Potwierdź stworzenie tabeli Active Entity:
W oknie KeyIn wpisz:
SQL - Pojawi się okno SQL Window.
Z menu Tools uruchom paletę DATABASE wybierz narzędzie
Show Active Entity.
W oknie SQL Window zobaczymy naszą tabelę AE stworzoną na podstawie tabeli parcel wypełnioną danymi podanymi w pkt. 4 naszego ćwiczenia.

6. Wykonaj połączenie centroidu parceli z tabelą parcel.
Z palety DATABASE uruchom narzędzie
Attach Active Entity.
Kliknij na centroid nowej parceli nr 40
Kliknj w celu potwierdzenia swojego wyboru.

7. Sprawdź czy uzyskane połączenie jest poprawne:
Z palety DATABASE uruchom narzędzie
Review Database Attributes of Element
Kliknij na centroid nowej parceli nr 40
Kliknj w celu potwierdzenia swojego wyboru.
W oknie
SQL Window zobaczymy naszą tabelę parcel wypełnioną danymi podanymi z tabeli AE oraz z nadanym wartością MSLINK np. 757 (zanotuj ją) jednoznacznie identyfikującą centroid parceli nr 40 w wierszem tabeli bazy danych.

8. Korzystając z otwartego okna SQL Window uzupełnij wartość działki pana Smitha (kolumna parc_value).
W oknie SQL Window wpisz wyrażenie SQL:
UPDATE parcel SET parc_value=2000 where mslink = 757
Następnie uruchom narzędzie Review Database Attributes of Element i klikając na centroid parceli nr 40 sprawdź czy w oknie SQL pojawi się wartość 2000.
Spróbuj uzupełnić dwa pola wiersza bazy danych pana Johna Smitha. (parcel_no = 40, str_name = (
Patrz punkt 1 tego ćwiczenia). UWAGA 1) atrybuty tekstowe podaje się w nawiasach i apostrofach. 2) pytanie zapisz do pliku   SQL Window>File>SaveAs.

9. Nie zamykając MicroStation J otwórz bazę danych Access, otwórz twoją bazę a.mdb.
Przeglądnij wiersz dodany do bazy i uzupełnij dane na podstawie istniejących rekordów bazy.
Następnie przejdź do MicroStation uruchom narzędzie
Review Database Attributes of Element i klikając na centroid parceli nr 40 sprawdź czy w oknie SQL pojawią się wprowadzone wartości.

10. Dorysuj jeszcze trzy sąsiadujące z parcelą 40 parcele 41, 42 i 43 - czyli wykonaj czynności z punktów 4, 5, 6,7, 8. Uwaga za każdym razem wartość mslink się zmienia! Po wykonaniu tych ćwiczeń wykonaj na końcu ćwiczenie 9 (wypełnij niektóre kolumny: house_num parc_area i mapid=10).

Ćwiczenie 1.3. Wykorzystanie relacyjnego mechanizmu pracy z danymi tekstowymi w środowisku Microstation

1.3.1. Zapytania do bazy danych - SQL

W celu obsługi zapytań SQL do bazy danych w Microstation zaimplementowano narzędzie SQL Window, które otwieramy i w polu edycyjnym wpisujemy poszczególne komendy SQL. Proszę zachować pytania 8, 9 w postaci plików pX.sql X-numer pytania.

1. Przeglądnąć wszystkie kolumny tabeli parcel w uporządkowanej kolejności - alfabetycznie wg użytkowników:
select * from parcel order by owner

2. Przeglądnąć wybrane pięć kolumn tabeli parcel:
select owner,parcel_no,parc_area,parc_value from parcel

3. Przeglądnąć 4 kolumny tabeli parcel oraz obliczyć wartość (cenę) na jednostkę powierzchni dla poszczególnych parcel:
select owner,parcel_no,parc_area,parc_value,parc_value/parc_area from parcel

4. Policzyć ile jest wszystkich użytkowników w bazie parcel:
select count(owner) from parcel

5. Policzyć ile jest użytkowników w bazie parcel dla których mapid (numer mapy) jest równy 10:
select count(owner) from parcel where mapid=10

6. Policzyć średnią wartość parceli:
select avg(parc_value) from parcel

7. Przeglądnąć na jakiej mapie (*.dgn) znajduje się który właściciel:
select owner,mapname from parcel,maps where parcel.mapid=maps.mslink and parcel.mslink>535

8. Policzyć ilość wszystkich parceli na mapie nr 10:
.................

9. Policzyć średnią wartość parcel na mapie nr 10 o powierzchni mniejszej niż 17000:
.................

1.3.2. Przeglądanie atrybutów tekstowych (z bazy danych) na podstawie wyboru elementów grafiki

1. Sprawdź lub ustaw tryb wyświetlania (Forms) w oknie Database na NONE
(otwarcie omawianego okna z menu Settings>Database>Dialog)

2. Przeglądnij wybrane parcele na podstawie wskazania kursorem myszy:

  • W oknie KeyIn wprowadź komendę Active Review (skrót RA) RA=SELECT * FROM parcel
    Z menu Palety Narzędzi Database wybierz narzędzie Rewiev Database Attributes of Element
    Kliknij raz na centroid, klikając drugi raz obok centroidu potwierdzamy swój wybór.
    {Ten zestaw naszych czynności (pkt.2) spowodował automatyczne wygenerowanie przez MSt. pytania select from parcel where parcel.mslink=<MSLINK key>}
  • 3. Przeglądnijmy tylko kilka wybranych informacji z tabeli parcel:

  • W oknie KeyIn wprowadź komendę Active Review (skrót RA)
    RA=SELECT owner,parcel_no,parc_area,parc_value FROM parcel
    Z menu Palety Narzędzi Database wybierz narzędzie Rewiev Database Attributes of Element
    Kliknij raz na centroid, klikając drugi raz obok centroidu potwierdzamy swój wybór. Na zakończenie wykonujemy jeszcze raz komendę z pkt 2 niniejszego ćwiczenia.
  • 1.3.3. Wyświetlanie atrybutów bazy danych w rysunku dgn

    1. Ustawiamy widok rysunku w okolicy parcel 40, 41, 42, 43
    2. Przeglądamy dane o tabeli parcel zawarte w tabeli mscatalog (przy użyciu SQL Window)
               select * from mscatalog where tablename = 'parcel'
    { w kolunie DASTABLE zdefiniowano nazwę istniejącej już tablicy parcel_das która posłuży nam do przygotowania (wybrania) informacji tekstowych z tabeli parcel do wyświetlania ich w pliku dgn}

    3. Przeglądamy zawartość tabeli parcel_das:
    select * from parcel_das
    W kolumnie sqldas mamy zapisane pytanie SQL które służy do wyboru informacji przeznaczonych do wyświetlania. Tego typu pytań może być więcej i numerowane one są w kolumnie dastype (przeglądamy klawiszem Next).

    4. Z palety Text wybieramy narzędzie Place Text Node. A następnie w bliskim sąsiedztwie (ok. 30 FT) centroidów parcel opisanych w pkt. 1 tego ćwiczenia oraz parcel 13, 10, 11 wstawiamy obok każdego centroidu jeden text node. {UWAGA opcja Text Node w oknie View Attributes MUSI być włączona !!!! (skrót klawiszowy Ctrl+B).Abyśmy mogli zobaczyć wstawiane tekst nody!!!

    5. Następnie z palety database wybieramy narzędzie Attach Displayable Attributes (DASType - typ połączenia ustawiamy na 1). Następnie kojarzymy pary - klikamy na centroid (raz identyfikujemy drugi raz obok potwierdzamy) następnie kilkamy na sąsiedniego text node (raz identyfikujemy drugi raz potwierdzamy). Wykonujemy t w celu skojarzenia go z tablicą parcel podłączoną do wcześniej wskazanego centroidu.

    6. Następnie narzędziem Load Displayable Attributes klikamy na wstawione przez nas text node.

    7. Oprócz dorysowanych parcel 40,41,42,43 wszystkie pozostałe numery parcel są również typu text node.
    Skasuj więc numery parcel,
    Przeglądnij tabelę parcel_das w poszukiwaniu typu umożliwiającego wyświetlanie numeru parceli.
    Wstaw nowy text node.
    Załaduj numery parcel z bazy danych.

    8. Uruchom ACCESSa i dla pracel 13, 10, 11 zmień nazwy właścicieli. Przejdź do MSt J i załaduj text node dla tych pracel

    Ćwiczenie 1.4. Generowanie raportów

    Ćwiczenie 1.4.1 Generowanie raportów przy pomocy narzędzia Fence Elements

    1. Zamykamy plik cd10.dgn i otwieramy plik cd09.dgn.

    2. W oknie KeyIn wprowadzamy:
    RS=$ (co oznacza select tablename,reporttable from mscatalog) klikamy Next aż do uzyskania tabeli parcel.

    3. Generujemy tabelę raportu o nazwie parcel_report ze wszystkimi rekordami tabeli parcel które zostaną wybrane za pomocą narzędzia fence.
    Zakreśl jeden kwartał parcel (między ulicami STRATTON i HYDEN) narzędziem
    Place Fence - Fence type Shape, Fence Mode Inside.
    Uruchom na
    rzędzie Generate Report Table
    Kliknij raz wewnątrz Fence.
    Pytaniem sql przeglądnij zawartość tabeli
    parcel_report
    Zadaj pytanie do tabeli pracel_report - wybierz parcele tańsze niż 20000 i większe niż 15000.
    ....................... (pytanie zachowaj w pliku sql).

    Ćwiczenie 1.4.2 Generowanie raportów przy pomocy narzędzia Fence Elements z ustalonym warunkiem

    1. Settings > Design File > Color > Element higliting Color ustaw na czerwony.

    2. W oknie KeyIn wprowadzamy:
    DS=none Komenda usuwa inne stare warunki

    3. W oknie KeyIn wprowadzamy:
    DS=Select * From parcel where parc_value>15700
    Zakreśl ten sam obszar co poprzednio narzędziem Place Fence - Fence type Shape, Fence Mode Innide.
    Uruchom narzędzie Generate Report Table (kliknij w obszar fenca)
    Pytaniem sql przeglądnij zawartość tabeli parcel_report.

    4. Uruchom User CoMmand (plik skryptowy UCM) o nazwie hilite.ucm w KeyIn:
    UC=hilite

    5. Przeglądnij efekty i naciśnij refresh aby zaznaczenia znikły.

    Ćwiczenie 1.5. - Praca z aplikacją gis.ma

    Ćwiczenie 1.5.1. - Opcja pushpins (pinezka)

    1. Menu >Utilites >MDL Applications tam wybieramy z okna gis.ma i klikamy przycisk Load. Lub w KeyIn wpisujemy:
    MDL LOAD GIS.MA

    2. Narzędzie Fence zaznacz większy obszar parcel niż poprzednio.

    3. Wpisz komendę w KeyIn:
    pushpin D:\Win32app\Bentley\Program\Microstation\database\odbc\examples\colors.dat

    4. Przeglądnij efekty naciśnij refresh aby znikły.

    Ćwiczenie 1.5.2. - Opcja Locate Parcel

    1. Nie opuszczając Mstation uruchom ACCESSa otwórz tabelę maps,istniejące tam nazwy plików cd09.dgn i cd10.dgn zamień na takie jakie zastosowałeś w przy kopiowaniu plików na dysk.

    2. Przeglądnij kolumny clt_no. W SQL window zadaj pytanie
    select clt_no,parc_value from parcel where parc_value<14500 and mapid=9 or mapid=10 order by parc_value

    3. Pytanie zachowa File Save as

    4. W oknie key in wprowadź:
    parcel locate
    W otwarte okno wprowadź numer klienta clt_no podanego w SQL Window. (pięć spacji pomiędzy jednym członem numeru a drugim).
    Wykonaj operację 3-4 razy.

    5. Wyłącz aplikację mdl przez wpisanie w oknie Keyin:
    MDL UNLOAD GIS.MA

    Podsumowanie/Sprawdzenie wiadomości.

    Wpisz komendę w KeyIn

    SET DATABASE

    Na przykładzie tabeli Parcel (wskazanej w oknie Tables) opisz przeznaczenie poszczególnych rubryk tabeli mscatalog. (w jakim ćwiczeniu jaka rubryka posiadała jakie przeznaczenie)

  • Powrót