Monday, 17 April 2017

Membina Atribut dari Teks Annotation Fail AutoCAD


Topik kali ni agak menarik. Sepanjang lebih kurang 20 tahun pengalaman saya involve dalam GIS data processing, ni antara isu yang kerap dihadapi oleh user-user GIS. Berkenaan dengan isu conversion data AutoCAD kepada data GIS. Kebiasaannya, banyak company seperti company land surveyor atau consultant yang menyediakan plan dalam format AutoCAD untuk serahan kepada klien. Kadangkala timbul isu dimana klien tu dah ada sistem GIS dan dia nak integrate pulak plan AutoCAD tu kepada sistem GIS. Sebelum nak buat proses convertion data AutoCAD, anda kena faham betul-betul dulu struktur data AutoCAD dan macamana nak relatekan struktur data tu dengan struktur data GIS. Cuba perhatikan struktur fail AutoCAD seperti di bawah ni.
Struktur fail AutoCAD
Dalam 1 fail AutoCad, akan terdapat pecahan entiti Annotation, Multipatch, Point, Polygon dan Polyline. Setiap entiti tu pulak ada pecahan lagi kepada Drawing Layers. Contohnya entiti Polyline mungkin akan mengandungi Drawing Layer lot, jalanraya, kontur dan lain-lain. Maksudnya ada banyak layer wujud dalam 1 fail CAD yang sama. Walaupun kita nampak layernya asing-asing dalam Drawing Layers AutoCAD tu, tapi semua layer tu wujud dalam 1 fail CAD yang sama. Ini berbeza plak dengan konsep layer GIS sebab dalam GIS, kalau layer tu Polyline, kita selalunya akan maintain 1 featureclass sahaja, contoh lot dalam 1 layer polyline, jalanraya plak dalam 1 layer polyline yang lain dan macam tu lah seterusnya.

Apa yang saya cuba nak story kat sini, bila anda nak convert data AutoCAD ke layer GIS, anda kena study dulu nama-nama Drawing Layers dalam fail AutoCAD tu untuk tentukan layer mana yang anda nak ambil untuk convert.
Kenalpasti nama Drawing Layer sebelum buat convertion
Ok itu just selingan sikit intro struktur data CAD. Sekarang kita cite skit tentang bab convertion. Memang kebanyakan software GIS ada tools untuk convert data CAD kepada GIS, seperti tool yang anda boleh dapati dalam ArctoolBox ArcGIS Desktop. Contoh macam tool CAD to Geodatabase, atau anda boleh export layer CAD dalam Table of Contents ArcMap menjadi layer GIS. Step convert guna kaedah export ni ada saya terangkan dalam post sebelum ni, anda boleh rujuk link topik Convert CAD data ke GIS. Tapi tool-tool ni akan convert one-to-one, point CAD jadi point GIS, polyline CAD jadi polyline GIS, polygon CAD jadi polygon GIS, teks annotation CAD jadi annotation Geodatabase atau point GIS.
On-to-One convertion

Tapi kadangkala convertion tu bukanlah straight forward, contoh…, anda nak convert lot dalam fail AutoCAD jadi layer lot dalam GIS, tapi senario data anda seperti berikut :-
Fail CAD : layer lot dalam polyline, nombor lot dalam annotation
Layer GIS : layer lot dalam polygon, nombor lot nak letak dalam table polygon.


Nombor lot dan sempadan lot dalam entiti berlainan di dalam
fail AutoCAD (annotation / polyline)

Anda nak bina lot polygon dari polyline CAD, tapi nombor  lot
datang dari Annotation CAD, so camana caranya???

Kebiasannya memang teks atribut dalam fail AutoCAD ni diletakkan sebagai teks annotation. Kalau anda convert direct polyline Drawing Layer lot dari fail CAD tu kepada layer polygon GIS, bila anda klik info setiap lot nanti, tak akan ada info nombor lot, seperti yang dipaparkan dalam gambar di bawah ni.




 
Sebab apa jadi macam tu?? Sebabnya dalam CAD, nombor lot tu duduk dalam annotation, lot pulak anda convert dari polyline. Kalau anda nak buat analisis carian lot dalam GIS, memang tak boleh lah sebab nombor lot tak wujud dalam polygon.
So macamana cara yang sepatutnya nak convert kalau ada kes data macam ni? Kat sini saya kongsi sikit teknik macamana nak buat.  Kaedahnya macam ni :-
  1. Convert CAD annotation kepada geodatabase annotation
  2. Convert geodatabase annotation kepada layer point
  3. Convert polyline lot dari AutoCad kepada layer lot polygon dan import atribut point layer ke dalam polygon

Convert CAD Annotation kepada Geodatabase Annotation

Mula-mula convert dulu teks annotation dari fail AutoCAD menjadi geodatabase annotation. Follow step berikut :-

 

Penerangan gambar :-

  1. Dalam ArctoolBox, klik tool Conversion Tools > To Geodatabase > Import CAD Annotation
  2. Masukkan annotation dari fail AutoCAD ke ruangan Input Features
  3. Namakan output geodatabase annotation feature class.
  4. Masukkan nilai Reference Scale. Nilai skala ini akan digunakan untuk menentukan saiz teks annotation semasa zoom in dan zoom out ArcMap. Oleh kerana tujuan saya convert annotation ni hanya untuk jadikan sebagai layer point, saya masuk je apa-apa nilai di ruangan ni.
  5. Klik OK.


Convert Geodatabase Annotation kepada Layer Point

Step ni akan menghasilkan layer point yang mengandungi atribut dari annotation. Maksudnya nombor lot dan lain-lain atribut dari annotation akan disimpan dalam layer point yang dihasilkan nanti. Mungkin ada yang akan tanya, kenapa perlu convert dulu kepada geodatabase annotation then baru convert ke point? Tak boleh ke convert terus je dari CAD annotation menjadi point tanpa perlu convert jadi geodatabase annotation dulu? Haaa… lepas saya buat testing testing, ada beza rupanya result dua kaedah tu. Cuba perhatikan perbezaan result di bawah ni.

 
Kalau kita convert CAD annotation terus kepada point, nampak macam lari sikit kedudukan point. Ada pulak sesetengah lot tu ada 2 point dalam 1 lot. Oleh sebab dalam point tu ada atribut nombor lot, jadi kelirulah kalau dalam 1 lot ada 2 point, nak ambil atribut nombor lot dari point yang mana satu?? Nampak macam point tu lari sikit offset ke kiri sebenarnya. Sebab tu point dari lot bersebelahan dah termasuk ke dalam lot jiran di sebelah. Tapi kalau kita lihat point yang dihasilkan dari geodatabase annotation, kedudukan pointnya cantik saja ditengah-tengah lot.
OK, dalam step sebelum tadi kita dah dapat layer geodatabase annotation. Nak convert geodatabase annotation ni kepada layer point, buat step di bawah ni. Anda perlukan license ArcGIS Desktop Advanced untuk run tool ni.

 

 
Penerangan gambar :-
  1. Dalam ArcToolbox, klik tool Data Management Tools > Features > Feature to Point
  2. Masukkan geodatabase annotation dalam ruangan Input Features.
  3. Namakan output point layer.
  4. Pastikan uncheck kotak Inside (optional)
  5. Klik OK.

 
Convert Polyline kepada Polygon dan Import Atribut Point

OK, sekarang kita dah ada layer point yang dah ada atribut nombor lot. Next kita import atribut dari layer point ni masuk ke dalam polygon lot. Maknanya kena create dulu le layer lot polygon dari polyline AutoCAD tadi.  Nak buat step ni perlukan license ArcGIS Desktop Advanced gak. Follow step berikut :-

 

Penerangan gambar :-
  1. Dalam ArcToolbox, klik tool Data Management Tools > Features > Feature to Polygon
  2. Masukkan polyline dari fail AutoCAD ke ruangan Input Features
  3. Namakan output polygon lot.
  4. Dalam ruangan Label Features, pilih layer point yang anda dah hasilkan sebelum tadi untuk import atribut point masuk ke dalam polygon.
  5. Klik OK.

OK selesai sudah proses. Bila anda klik info dalam setiap lot, anda akan dapati ada atribut nombor lot dalam polygon lot tu. Bila buka atribut table polygon pun anda akan nampak senarai nombor lot dah dimasukkan dalam table.

Harap post ni dapat membantu anda bila nak import atribut teks annotation AutoCAD selepas ni.


p/s : Buku SukaGIS - Seronoknya Belajar ArcGIS (Jilid 1) telahpun berada di pasaran. Padat dengan kompilasi tutorial2. Hubungi 0193513770 untuk tempahan :)



 

No comments:

Post a Comment