11 febbraio 2010

Da curve di livello SHP a curve di livello DWG 3D

Curve di livello tridimensionali costruite con AutoCAD Map 3D da Shapefile

Bene, eccomi a presentarti una procedura molto richiesta, che puoi seguire con il tuo AutoCAD Map 3D o con il tuo AutoCAD Civil 3D, per trasformare curve di livello in formato Shapefile (SHP) in curve di livello DWG tridimensionali.

Grazie a questa procedura potrai preparare i tuoi dati, per la creazione di un DEM, o di una Superficie con Civil 3D o per creare una Mesh con 3Ds Max. Il presupposto, naturalmente, è che lo Shapefile delle curve d livello contenga, negli attributi, l'informazione sulla quota verticale di ogni curva.

Puoi sfruttare la prima parte di questo articolo anche per vedere da vicino in che modo AutoCAD Map 3D e Civil 3D importano dati GIS, in particolare Shapefile. Ne approfitto per ricordarti che grazie alla tecnologia FDO, con Map 3D e Civil 3D puoi usare direttamente il formato SHP e perfino modificarlo.

Bene, partiamo.
Prima di tutto, per ritrovare gli stessi comandi che userò in questo articolo, scegli con la tendina in basso a destra, l'area di lavoro con barra multifunzione basata sugli strumenti. Questa è presente anche in AutoCAD Civil 3D 2010, con il nome Geospaziale basata su strumenti. Ti indicherò anche il comando da tastiera, così potrai seguirmi anche con le versioni precedenti di Map 3D e Civil 3D.

La scelta dell'area di lavoro in AutoCAD Map 3D 2010

1. Il primo passo consiste nell'importare lo Shapefile delle curve di livello in DWG.
Usa il comando di importazione in DWG dei dati GIS, che trovi nella Barra multifunzione, sotto la voce Inserisci facendo clic sull'icona Importa dati GIS. Oppure scrivi, alla riga di comando, _Mapimport. (attenzione: non dimenticare il _ iniziale).


La Barra multifunzione: evidenziato in giallo il comando Importa dati GIS. Fai clic sull'immagine per ingrandire

La prima finestra del comando, Posizione di importazione, ti chiede la posizione dello Shapefile sul disco.
Accertati di scegliere, nella parte inferiore e di fianco a Tipo file, il formato ESRI Shapefile (*.shp), tra i molti disponibili: puoi importare anche da MapInfo, Microstation ed altri formati ancora. Poi portati nella cartella adeguata, seleziona lo Shapefile e premi il bottone OK.


Nota bene che il formato SHP è un po' bizzarro, soprattutto se di solito usi il DWG. Si compone infatti di almeno tre files, di estensione .shp, .shx e .dbf (ti ricorda quacosa? Il vecchio DB III...). Accertati che ci siano tutti, perchè se uno di questi manca, non potrai utilizzare i dati.
Inoltre ogni Shapefile può contenere un solo tipo di dati: solo punti, o solo linee, o solo poligoni... Quindi è facile trovarsi ad importare diversi Shapefile. Ognuno verrà messo su di in un layer differente del tuo DWG.

La finestra Importa: evidenziato in giallo il campo per l'importazione dei Dati (attributi)

In questa seconda finestra Importa puoi fare molte cose interessanti, in futuro te ne parlerò ancora. Per realizzare la nostra procedura devi specificare che vuoi importare anche gli attributi, che contengono l'informazione sulla quota verticale di ogni curva. Quindi fai subito clic nel campo sotto Dati
Vedrai comparire un piccolo bottone, su cui fai di nuovo clic per aprire la finestra Dati degli attributi.

La finestra Dati degli attributi: è importante scegliere di creare i dati oggetto/attributi

Attiva l'opzione Crea dati oggetto, dove verranno registrati gli attributi dello Shapefile. Premendo il bottone Seleziona campi puoi vedere i campi attributo, e scegliere quali importare e con quale nome. Concludi premendo il bottone OK per tornare alla finestra Importa, dove puoi premere di nuovo il bottone OK.

Un'altra nota: Map 3D e Civil 3D li chiamano Dati oggetto, oppure Object Data, abbreviati con OD, per non confonderli con gli attributi di blocco. ArcView/ArcGIS invece li chiama attributi. Ma sono la stessa cosa.

Non stupirti se dopo l'importazione dei dati, nell'area grafica non vedi ancora nulla. Spesso e giustamente le curve di livello sono inquadrate in un sistema di coordinate,  molto lontano dallo zero. Quindi è necessario eseguire uno zoom alle estensioni per vedere il primo risultato.

Curve di livello della provincia di Como importate da SHP in DWG
Nella finestra proprietà, evidenziati in giallo, i dati oggetto/attributi. Fai clic sull'immagine per ingrandire

Ora le nostra curve di livello sono polilinee DWG, ed hanno nei dati oggetto l'informazione sulla quota. Puoi verificarlo selezionando una curva ed aprendo la finestra Proprietà come nell'immagine qui sopra. Ma le curve sono ancora 2D. Per ora salva il disegno e chiudilo.

2. Il secondo passo consiste nella trasformazione automatica delle curve di livello, in modo che ognuna di esse si porti alla quota verticale indicata nei dati oggetto/attributi che hai importato dallo Shapefile.
Questo risultato è possibile grazie alle funzioni di Query (interrogazione) dei dati DWG di Map 3D e Civil 3D.

Per interrogare, ovvero eseguire una query su di un DWG, non devi aprirlo in modo tradizionale.
Puoi invece sfruttare le funzionalità che ti permettono di associare uno o più disegni ad un progetto (un disegno vuoto) per poi eseguire le interrogazioni, chiamate Query.

Nel Riquadro attività - Area di lavoro, è possibile associare disegni per le interrogazioni (query)

Quindi inizia aprendo un disegno vuoto. Accertati che sia aperto il Riquadro attività: se non lo è, puoi aprirlo con il comando da tastiera Mapwspace, scegliendo poi l'opzione On. Nel Riquadro attività scegli la scheda Area di lavoro e premi il tasto destro del mouse sulla voce Carte: dal menu contestuale scegli Associa.  Oppure, alla riga di comando scrivi _adedrawings e poi premi il bottone Associa.


Finestra Seleziona le carte da associare.  Non dimenticarti di premere il bottone Aggiungi prima di premere OK

Nella finestra Seleziona le carte da associare individua il DWG che hai appena salvato, che ho chiamato Curve2D, premi il bottone Aggiungi, e poi OK.

Una volta associato il disegno delle curve 2D, premi ancora il tasto destro del mouse sulla voce Carte e scegli prima Zoom alle estensioni (_adezextens) e poi Vista rapida (_adeqviewdwgs). Il risultato, apparentemente, è uguale all'apertura del disegno, ma quello che vedi è un'anteprima temporanea, che scomparirà al primo regen..

Se vuoi, puoi dividere lo schermo (Barra multifunzione - Vista - Configurazioni finestra, oppure da tastiera _viewports) e scegliere viste isometriche o frontali per assicurarti che le curve di livello, grazie alle operazioni seguenti, si portino in quota. Se l'anteprima delle curve scompare, scegli di nuovo Vista rapida.

Le curve di livello viste dall'alto, in isometria e di fronte prima della trasformazione

Ora passiamo alla Query, o interrogazione sul DWG associato.


Nel Riquadro attività - Area di lavoro, è possibile definire Query

Premi il tasto destro del mouse sulla voce Query corrente nella scheda Area di lavoro del Riquadro attività (da tastiera _adequery). Dal menu contestuale scegli Definisci Anche qui si apre una finestra molto ricca ed interessante, chiamata Definisci query di carte associate, sulla quale varrà la pena di tornare. 

La finestra Definisci query di carte associate

Prima di tutto devi specificare la posizione dei dati che vuoi modificare: premi il bottone Posizione

La finestra Posizione

Immagino che le curve ti occorrano tutte, quindi scegli l'opzione Tutto e poi il bottone OK
Eventualmente puoi utilizzare le molte opzioni disponibili per limitare la Query alle curve che ricadono in un poligono, o che intersecano una polilinea o una fascia di rispetto, e così via.

La finestra Definisci query di carte associate, dopo aver scelto la posizione dei dati per la Query

Di nuovo nella finestra Definisci query di carte associate, sotto Modalità query scegli l'opzione Disegna, poi premi il bottone sulla destra Altera proprietà


La finestra Imposta alterazioni proprietà

Nella finestra Imposta alterazioni proprietà, scegli la proprietà Elevazione, poi premi il bottone Espressione


La finestra Espressione di alterazioni delle proprietà

Nella finestra Espressione di alterazioni delle proprietà apri la voce Tabelle dati oggetto, poi curve ed infine seleziona il campo QUOTANaturalmente la struttura dei dati dipende dallo Shapefile che hai importato nella prima parte. Infine premi il bottone OK.

La finestra Imposta alterazioni proprietà dopo aver creato l'espressione
 per modificare l'elevazione delle curve di livello

Ancora un attimo di attenzione. 
Nella finestra Alterazioni proprietà premi il bottone Aggiungi, e poi OK

La finestra Definisci query di carte associate
fai attenzione a premere il bottone evidenziato in giallo

Ci siamo. Non ti resta che eseguire la Query premendo il bottone Esegui Query.
Attenzione a non confonderti: se premi il bottone OK la Query viene salvata ma non eseguita. 
La puoi ritrovare facilmente premendo il tasto destro del mouse sulla voce Query corrente nella scheda Area di lavoro del Riquadro attività, scegliendo poi dal menu contestuale Definisci.

Il risultato finale: le curve di livello in 3D

Una volta eseguita la Query, magicamente, le tue curve di livello si portano in 3D. Ognuna alla propria quota. Inoltre, quella che vedi non è più una anteprima temporanea: grazie alla Query in modalità Disegno, le polilinee sono state portate nel disegno che hai aperto all'inizio. In questo modo hai creato un modello tridimensionale che puoi utilizzare per creare una Superficie con Civil 3D, o per creare una Mesh con 3Ds Max o quant'altro l'immaginazione possa inventare...


Ricordati infine di dissociare il DWG delle Curve di livello 2D (tasto destro del mouse sul disegno nell'Area di lavoro -  Dissocia), e poi di salvare il tuo disegno.

Buon lavoro con le curve di livello!
GimmiGIS

2 commenti: scrivimi, ti pubblicherò presto:

Marcello ha detto...

Ciao GimmiGis!
Ho seguito attentamente la tua ottima guida, ma non sono riuscito a portare le curve di livello all'altezza Z corretta tramite l'interogazione Query.

Premetto che il punto di partenza non è prorpio lo stesso in quanto ho utilizzato un'altra sorgente (da te consigliata), per l'esattezza ASTER GDEM.
Non ho quindi i tre fies tipici del database.

1) Data connect: OK
2) Style Terrain : OK
3) Genera Curve livello : OK
4) Visualizza 3D : OK
5) Test Vertical Exag.: OK
6) >Export : FAILED

Allora ho provato questa guida ma se collego il file salvato in uno vuoto, non riesco a vedere con zoom extens le curve di livello, tantomeno la mappa raster.

Dove sbaglio?
Nelle query (espressione di alterazione delle proprietà) non trovo i tre dati relativi alle curve da cui selezionare QUOTA, ma un sacco di dati in più, (tra cui anche Thickness che dovrebbe corrispondere visto che la mia versione è in inglese).

Grazie in anticipo per la tua disponibilità

Marcello

GimmiGis ha detto...

Ciao Marcello,

Purtroppo non riesco a seguirti molto bene, ma proviamo.

Se hai generato con Map 3D le curve di livello a partire dal DEM ASTER, hai già salvato un file .SDF, il formato Autodesk.
Controlla nella finestra di creazione delle curve di livello: in basso puoi decidere tu dove salvare il file .SDF e come chiamarlo.

Prima di tutto importaro in un DWG come al punto 1 dell'articolo, solo che al posto di SHP devi scegliere SDF. Fai molta attenzione ad importare anche gli attributi, che contengono la quota verticale.

Il resto prosegue uguale...

Buon lavoro
GimmiGIS