H - 1161 Budapest Rákóczi út 76. Tel./Fax.: +36-1-4010159 http://www.pageos.hu
[email protected]
AutoCAD MAP DWG mapobject TOPOBASE konvertáló program dokumentáció A program használható a TOPOBASE 3-as és a TOPOBASE 2009 -es verzióival. A dokumentációban található képernyőképek a TOPOBASE 2009-es , angol nyelvi verziójával készültek. Minimális eltéréssel a TOPOBASE 3 -hoz is használhatóak. Ez a program a DAT → TOPOBASE importálási folyamat második része. A program működésének célja, hogy az első programmal létrehozott AutoCAD MAP DWG állományt, vagy bármely más úton létrehozott DWG állományt, amely a geometriái elemeket a hozzájuk kapcsolódó attribútum adatokkal együtt tartalmazza (mint MAP Object data) a TOPOBASE adatbázisba konvertálja. ( DWG → TOPOBASE) I. A működéshez szükséges fájlok, adatbázis dokumentumok és telepítésük: • • • •
dwg_tb.dll dwg_tb.tbp dwg2tbdocuments.txt dwgimpdialogs.xml
A program TOPOBASE (továbbiakban TB) Document és Dialog pluginként fut. Ehhez a dwg_tb.dll és dwg_tb.tbp a TB kliens /bin könyvtárába kell másolni az összes kliens gépen, ahol használni szeretnénk. Ugyan ebbe a könyvtárba kell elhelyezni a dwg2tbdocuments.txt paraméter fájlt. Ez a fájl tartalmazza hogy a program melyik TB document esetén legyen aktív. Csak a fájlban felsorolt (minden dokumentum név új sorba) dokumentumoknál működik. A következő beállítást a TB adminisztrátorral minden egyes bekapcsolt dokumentumnál el kell végezni. A TB klienssel nyissuk meg a Workspace-t, amely tartalmazza a dokumentumot. A fenti fájlok telepítése utáni első dokumentum megnyitásnál a program automatikusan létrehozza a működéséhez szükséges Topicokat és Attribútum featureclassokat. Ezeket a TB adminisztrátorral a használathoz be kell kapcsolni:
A dialogók használatához dwgimpdialogs.xml fájlt.
az
adminisztrátorral
Ezzel a szükséges telepítési lépéseket elvégeztük.
importáljuk
be
a
II. A program használata A program működése a jól beállított vezérlő táblákon alapszik. Ahhoz, hogy tetszőleges layer kiosztású DWG rajzelemeket tetszőleges TB adatmodellbe importálhassunk össze kell rendelünk a layereket a TB featureclassokkal. Ezen kívül feltétel még, hogy egy layeren csak egyféle geometriai típus szerepeljen. Ha ez nem így van, akkor az AutoCAD eszközökkel a layereket ilyenné kell alakítani. (A DAT2DWG programmal létrehozott rajzokon ez a feltétel teljesül.) Az összerendeléseket a LAYER2FC tábla tartalmazza. Az összerendelések létrehozásához számos segítség áll rendelkezésre. A layer és featureclass megfeleltetés mellet fontos az attribútumok összerendelése is. Ezek a DWGA2TBA táblába kerülnek. Ez relációs kapcsolatban van a LAYER2FC táblával. Egy layer-fc megfeleltetéshez tetszőleges számú attribútum megfeleltetés rendelhetünk. 1. Nyissuk meg a konvertálandó DWG fájlt 2. Nyissuk meg a LAYER2FC formot:
Ezzel megnyitottuk a fő vezérlő dialógot, ami még nem tartalmaz beállításokat.
A beállításokat kézzel is elvégezhetjük, de célszerű a beépített funkciókat használni. A használatot egy konkrét példán keresztül mutatom be, mellyel létrehozzuk a földrészletek konvertálásához szükséges beállításokat. 3. A TB adatmodellben található featureclassok átvétele: Kattintsunk a FeatureClassok átvétele nyomógombra. A felbukkanó ablakban adjuk be a kódösszeállításunk megnevezését. (Erre azért van szükség, mert ez a tábla tetszőleges számú kódösszeállítást tartalmazhat és ez a beadott megnevezés a későbbiekben segítséget adhat, hogy mire is készült az összerendelés). A megnevezés mellet az összerendelés automatikusan egy kódszámot is kap ami a kód mezőben látható. A nyomógombra kattintás hatására a program végignézi az összes TB featureclass-t és a geometriával rendelkezőket átveszi az összerendelési táblába. (Kihagyja a topológia rendszertáblákat.) Az attributum táblák közül átveszi azokat, melyek utility modellhez kapcsolódnak. A Featureclassok beazonosításának megkönnyítésére a nevén kívül a caption-ja is látható. A rekordokon lépkedve, vagy a szűrő használatával keressük meg a földrészlet centroid featureclassot.
4. A kapcsolódó layer kiválasztása: Ehhez kattintsunk a Layernév átvétele gombra.
Ekkor megjelenik egy kiválasztó lista, mely tartalmazza az aktuálisan kiválasztott dwg rajzban található layereket. (Figyeljünk, hogy a konvertálandó dwg legyen az aktulis kiválasztott rajz) A listából válasszuk ki azt a layert, ami a földrészleteket tartalmazza
A „csak a fel nem használt Layernevek” bekapcsolásával a listából kimaradnak azok a layerek, melyeket az adott kódú összerendelésben már egyszer felvettünk. Ha kiválasztottuk a megfelelő layert akkor kattintsunk az OK gombra. Ezután a vezérlés visszakerül az összerendelési formra, ami edit módra váltott és belekerültek a következő, pirossal jelölt információk:
A Layer_name mezőbe a kiválasztott layer neve. A Megnev mezőbe pedig egy automatikusan összeállított leírás ami utal arra, hogy melyik layer melyik featureclass összerendelése történt. Ez a megnevezés fontos, mert az attribútum összerendeléseknél ezeknek a megnevezéseknek a használatával tudjuk az egyes attribútum megfeleltetést a layer-fc összerendeléshez kapcsolni. (Erre a későbbiekben lesz példa.) A harmadik rendszertábla most kerül előtérbe, hiszen ez tartalmazza a programmal felhasználható konvertálási eljárásokat. Ezt a táblát manuálisan nem kell karbantartani. Jelen verzióval a következő eljárások használhatók: • point2point • block2point • line2line • polygon2polygon • polygon2centroid • text2label • PointBlockLine2utility • PointBlock2centroid
5. Jelen példánál polygon layert kell centroid featureclassba konvertálni, ezért az Fid_muvelet legördülő menűből válasszuk ki a polygon2centroid műveletet.
Ahhoz hogy a program az importálás során figyelembe vegye ezt a kapcsolatot, az Onoff kapcsolót állítsuk yes -re ! Ezzel a T_OBJ_ATTRBC_FELULET layer és a T_OBJ_ATTRBC featureclass összerendelésével kész is vagyunk. Kattintsunk az Update gombra vagy nyonjuk meg az F5 billentyűt az adatbázisba tárolásához. A dialog most már nincs edit módban és az alján található „Bekapcsolt elemek száma „ label jelzi, hogy már van importálásra kész és bekapcsolt megfeleltetésünk.
Mivel a táblázatban sok rekord van ez segítséget ad nekünk, hogy hány kapcsolatot állítottunk yes-re az importáláshoz. Ha csak a bekapcsolt rekordokat szeretnénk látni, akkor használjuk a form szűrési lehetőségeit. A szűrő használatának leírása a Topobase kézikönyvben található. Az attribútumok összerendelése azt jelenti, hogy a layeren található AutoCAD objektumok Object data tábláiban tárolt attributumokat összerendeljük a TB featureclass attribútumaival.
A következő kép a T_OBJ_ATTRBC_FELULET layeren kiválasztott elem T_OBJ_ATTRBC object data tábláját mutatja a benne levő attribútum nevekkel és értékeikkel:
A következő kép a T_OBJ_ATTRBC TOPOBASE centroid featureclass attribútumait mutatja:
Mivel a példában használt TB adatmodell a DAT szabványban leírt objektumok tárolásához készült, ezért ugyan azokat az attribútumokat tartalmazza. Amennyiben az attribútumok neve megegyezik és a tartalmuk típusa is megfelelő, úgy az importálásukhoz nem kell semmi megfeleltetést definiálni. A program alapértelmezés szerint automatikusan betárolja a featureclassnál. Ha a az attribútum neve nem egyezik, vagy típusuk nem megfelelő, vagy az értékét módosítva kell a featureclassnál eltárolni, akkor definiálni kell egy attribútum megfeleltetést. 6. Az attribútumok megfeleltetéséhez nyomjuk le a pirossal jelölt Dwga2tba relációs dialog gombot. Ekkor megjelenik a következő form. Mivel még nincsenek attribútum megfeleltetések, így üres lesz. Ha már lennének megfeleltetések, úgy a gomb lenyomásával automatikusan az adott layer-fc rekordhoz kapcsolódó attribútum megfeleltetések kerülnek a szűrő feltételbe.
Nyissunk egy új rekordot:
A Fid_layer2fc legördülő listából válasszuk ki a layer-fc kapcsolatunkat. 7. A TB attributumok átvételéhez kattintsunk a TB attribútumok átvétele nyomógombra.
8. A dwg attribútumok átvételéhez kattintsunk a DWG attribútumok átvétele nyomógombra. I
Ilyenkor megjelenik a layer-fc kapcsolatnál található featureclass, illetve a layerhez tartozó attribútumait megjelenítő választólista. Az OK gomb lenyomásával a kiválasztott attribútum átkerül az attribútum megfeleltetés formsba a megfelelő mezőbe.
Ennél a megfeleltetésnél az attribútum nevei megegyeznek , de a dwg attribútum tartalmát (sztring) nem lehet egy az egyben a TB attribútumba (number) átvinni. A TB attribútum idegen kulcs (FID) a relációban álló T_OBJ_FELS táblához. A dwg attribútum értke azonos a T_OBJ_FELS tábla KOD oszlopának egyik értékével. Ennek az attribútum átalakításnak a végrehajtására szolgál az SQL szövegdoboz. Ebbe bármilyen sql selectet beírhatunk, ami a TB attribútumnak megfelelő típussal és egyetlen értékkel tér vissza. Az importálás során erre az attribútum kapcsolatra a select végrehajtására kerül és az eredményét a TB attribútum átveszi. A selectben a dwg attribútum értékére a {dwg} beírásával hivatkozhatonk. A példában említett relációs kapcsolat sql definiálására nyújt segítségez a Create child SQL nyomógomb.
A gomb lenyomásakor a program ellenörzi, hogy az adott TB attribútum szerepele a táblára vonatkozó relációs kapcsolatban. Ha igen, akkor megjeleníti a hivatkozott tábal mezőt egy kiválasztó listában. Ebből a listából kell kiválasztani azt a mezőt, amely a dwg attribútum értékét {dwg} tarlmazza. Az OK lenyomására a program összeállítja a selectet.
Ha a generált select nem telkesen jó, akkor manuálisan változtathatunk rajta. Az UPDATE lenyomásával a bevitt adatokat tárolhatjuk az adatbázisba. Új rekor nyításával újabb attribútum megfeleltetéseket hozhatunk létre. A következő attribútum megfeleltetés példánál egy, csak a TB-ben lévő attribútumnak adunk egy alapértelmezett értéket (F_TIP). Ennek az attribútumnak nincs megfelelője a dwg attribútumok között. Az étékadáshoz válasszuk ki a TB attribútum nevét, majd az sql-be írjuk be a következő selectet: selet 2 from dual Ez a select visszaadja a 2-tőt, ami a TB attribútumba eltárolásra kerül.
A Bekapcsolt Layer kapcsolatai szűrő segítségével a Layer2FC táblában bekapcsolt megfeleltetésekhez kapcsolódó attribútum megfeleltetések kerülnek szűrésre. Ez segít ellenőrizni, hogy milyen attributum megfeleltetéseket hoztunk létre a bekapcsolt elemekhez. Az itt leírt módon állítsuk be az alkalmazni kívánt megfeleltetéseket. Ha ezekkel készen vagyunk, akkor indíthatjuk az importot. A definiált megfeleltetések a Topobase Forms-hoz kapcsolódó lehetőségekkel többféle formátumba is kiexportálhatók. Ezzel a lehetőséggel ezek az adatok egy másik dokumentumba, vagy akár egy másik Topobase adatbázisba könnyedén átvihetők.
Ha szeretnénk, hogy az import folyamat könyvelve legyen akkor a DBG szint nyomógomb lenyomásával álltsunk be egy 0-tól eltérő értéket. Minél magasabb az érték, annál több információ kerül a LOG fájlba. 0 esetén nincs LOG. Magas szint bekapcsolása lassíthatja az import folyamatot. A LOG fájlt a Logfájl megnyitása nyomógombbal érhetjük el, akár az importálási folyamat közben is. Az Import indítása gombra kattintva elindíthatjuk az importálási folyamatot. A program végignézi, hogy mely layer-fc megfeleltetések vannak bekapcsolva és ezeket egy ciklusban feldolgozza. A cikluson belül az adaott featureclass attribútumra ellenörzi, hogy létezik-e attribútum megfeleltetés , ha igen, akkor azt végrehajtja, ha nincs, akkor létezik-e azonos nevű dwg attribútum. Ha van, akkor annak átveszi az értékét, ha nincs, akkor kihagyja az attribútumot. A program mint progress bar fut, folyamatos tájékoztatást adva a folyamat állapotáról. A cancel gomb lenyomásával az adott ciklust meg lehet szakítani, de a már bekonvertált elemek az adatbázisban maradnak. A továbbiakban néhány képernyőkép a példában beállított megfeleltetésekkel működő importról:
Az aktuális verzió (1.0.2.0) kiegészítései: A program gyorsabb működése és újabb funkcionalitások létrehozása miatt a kezelői felület kibővült.
DAT fájl támogatással: A gomb lenyomása után megjelenik egy fájl kiválasztási dialóg, ahol válasszuk ki a dwg rajz elkészítésénél alkalmazott .DAT fájlt. A dat fájl támogatással a polygon2centroid konverzió jelentősen gyorsabban működik. Törlés mód kapcsoló: Ha a törlés mód kapcsolót bekapcsoljuk, akkor az import indítása gomb lenyomásával a dwg rajz elemeit nem betöltjük az adatbázisba, hanem a rajzban található objektumokat törli a Topobase Featureclassokból. Azoknál a featureclassoknál, ahol a DAT és TB formátum megegyezik (pl polygon2polygon, point2point, stb) a törlés minden elemet letöröl. A típus konverzók esetén (pl. polygon2centroid) a törlés csak a centroidokat törli le. A szükségtelenné váló határvonalak törléséhez használjuk a Topológia intézőt és ennek segítségével töröljük le azokat.