Requisiti del pacchetto di disegno
Il Servizio di conversione di Mappe di Azure consente di convertire i pacchetti di disegni caricati in dati di mappe. Questo articolo descrive i requisiti del pacchetto di disegni per l'API Conversione. Per altre informazioni, è possibile scaricare il pacchetto di disegni di esempio.
Prerequisiti
Il pacchetto di disegni include i disegni salvati in formato DWG, ovvero il formato di file nativo per il software AutoCAD® di Autodesk.
È possibile scegliere qualsiasi software CAD per produrre i disegni del pacchetto di disegni.
Il Servizio di conversione converte il pacchetto di disegni in dati di mappe. Il Servizio di conversione funziona con il formato di file DWG di AutoCAD AC1032
.
Glossario dei termini
Per un riferimento semplice, ecco alcuni termini e definizioni importanti durante la lettura di questo articolo.
Termine | Definizione |
---|---|
Livello | Livello DWG di AutoCAD dal file di disegno. |
Entità | Entità DWG di AutoCAD dal file di disegno. |
Xref | Un file in formato DWG di AutoCAD collegato al disegno primario come riferimento esterno. |
Level | Un'area di un edificio a un'elevazione impostata, ad esempio il piano. |
Funzionalità | Istanza di un oggetto generato dal Servizio di conversione che combina una geometria con le informazioni sui metadati. |
Classi di funzionalità | Un progetto comune per le caratteristiche. Ad esempio, un'unità è una classe di funzionalità e un ufficio è una funzionalità. |
Struttura del pacchetto di disegni
Un pacchetto di disegni è un archivio ZIP che contiene i file seguenti:
- File DWG in formato DWG di AutoCAD.
- File manifest.json che descrive i file DWG nel pacchetto di disegni.
Il pacchetto di disegni deve essere compresso in un singolo file di archivio, con l'estensione .zip. I file DWG possono essere organizzati in qualsiasi modo all'interno del pacchetto, ma il file manifesto deve risiedere nella directory radice del pacchetto compresso. Le sezioni successive illustrano in dettaglio i requisiti per i file DWG, il file manifesto e il contenuto di questi file. Per altre informazioni, è possibile scaricare il pacchetto di disegni di esempio.
Processo di conversione dei file DWG
Il Servizio di conversione esegue le operazioni seguenti in ogni file DWG:
- Estrae le classi di funzionalità:
- Livelli
- Unità
- Zone
- Aperture
- Pareti
- Penetrazioni verticali
- Produce una funzionalità Struttura.
- Produce un set minimo di funzionalità di categoria predefinite a cui fanno riferimento altre funzionalità:
- room
- struttura
- wall
- opening.door
- zona
- struttura
Requisiti relativi ai file DWG
È necessario un singolo file DWG per ogni livello della struttura. I dati di un singolo livello devono essere contenuti in un singolo file DWG. Qualsiasi riferimento esterno (xref) deve essere associato al disegno padre. Ad esempio, una struttura con tre livelli ha tre file DWG nel pacchetto di disegni.
Ogni file DWG deve rispettare i requisiti seguenti:
- Il file DWG deve definire i livelli Esterni e Unità. Facoltativamente, è in grado di definire i livelli seguenti: Parete, Porta, UnitLabel, Zonae ZoneLabel.
- Il file DWG non può contenere funzionalità di più livelli.
- Il file DWG non può contenere funzionalità di più strutture.
- DWG deve fare riferimento allo stesso sistema di misurazione e unità di misura degli altri file DWG nel pacchetto di disegni.
Requisiti del livello DWG
Ogni livello DWG deve rispettare le regole seguenti:
- Un livello deve contenere esclusivamente funzionalità di una singola classe. Ad esempio, le unità e le pareti non possono trovarsi nello stesso livello.
- Una singola classe di funzionalità può essere rappresentata da più livelli.
- I poligoni auto-intersecanti sono consentiti, ma vengono riparati automaticamente. Durante la riparazione il Servizio di conversione genera un avviso. È consigliabile controllare manualmente i risultati riparati, perché potrebbero non corrispondere ai risultati previsti.
- Ogni livello include un elenco supportato di tipi di entità. Tutti gli altri tipi di entità in un livello verranno ignorati. Ad esempio, le entità di testo non sono supportate sul livello Parete.
Nella tabella seguente vengono descritti i tipi di entità supportati e le funzionalità della mappa convertite per ogni livello. Se un livello contiene tipi di entità non supportati, il Servizio di conversione li ignorerà.
Livello | Tipi di entità | Funzionalità convertite |
---|---|---|
Exterior | POLIGONO, POLILINEA (chiusa), CERCHIO o ELLISSE (chiusa) | Livelli |
Unità | POLIGONO, POLILINEA (chiusa), CERCHIO o ELLISSE (chiusa) | Unità e penetrazioni verticali |
Wall | POLIGONO, POLILINEA (chiusa), CIRCLE o ELLIPSE (chiusa), Structures | |
Door | POLIGONO, POLILINEA, LINEA, ARCO CIRCOLARE, CERCHIO | Aperture |
Zona | POLIGONO, POLILINEA (chiusa), CERCHIO o ELLISSE (chiusa) | Zone |
UnitLabel | Testo (riga singola) | Non applicabile. Questo livello può aggiungere proprietà solo alle caratteristiche di unità del livello Unit. Per altre informazioni, vedere il livello UnitLabel. |
ZoneLabel | Testo (riga singola) | Non applicabile. Questo livello può aggiungere proprietà solo alle caratteristiche di zona del livello ZonesLayer. Per altre informazioni, vedere il livello ZoneLabel. |
Le sezioni seguenti descrivono i requisiti per ogni livello.
Livello Exterior
Il file DWG per ogni livello deve contenere un livello per definirne il perimetro. Questo livello è definito Esterni. Se ad esempio una struttura contiene due livelli, dovrà avere due file DWG, con un livello di esterni per ognuno.
Indipendentemente dal numero di disegni di entità inclusi nel livello esterni, il set di dati della struttura risultante contiene solo una funzionalità di livello per ogni file DWG. Inoltre:
- Gli esterni devono essere disegnati come POLIGONO, POLILINEA (chiusa), CERCHIO o ELLISSE (chiuso).
- Gli esterni possono sovrapporsi, ma sono risolti in un'unica figura geometrica.
- La funzionalità del livello risultante deve essere di almeno 4 metri quadrati.
- La funzionalità del livello risultante non deve essere maggiore di 400.000 metri quadrati.
Se il livello contiene più polilinee sovrapposte, le suddette sono risolte in una singola funzionalità di livello. Invece, se il livello contiene più polilinee non sovrapposte, la funzionalità di livello risultante ha una rappresentazione multi-poligonale.
È possibile visualizzare un esempio di livello Esterni come livello Struttura nel pacchetto di disegni di esempio.
Livello Unit
Il file DWG per ogni livello definisce un livello contenente Unità, ovvero unità. Le unità sono spazi esplorabili nell'edificio, ad esempio uffici, corridoi, scale e ascensori. Se la proprietà VerticalPenetrationCategory
è definita, le unità navigabili che si estendono su più livelli, ad esempio ascensori e scale, vengono convertite in funzioni di penetrazione verticale. Alle funzionalità di penetrazione verticale che si sovrappongono tra loro viene assegnato un oggetto setid
.
Il livello unità dovrà rispettare i requisiti seguenti:
- Le unità devono essere disegnate come POLIGONO, POLILINEA (chiusa), CIRCLE o ELLIPSE (chiusa).
- Le unità devono rientrare nei limiti del perimetro esterno della struttura.
- Le unità non devono sovrapporsi parzialmente.
- Le unità non devono contenere figure geometriche che si auto-intersecano.
Assegnare un nome a un'unità creando un oggetto testo nel livello UnitLabel, quindi inserirlo entro i limiti dell'unità. Per altre informazioni, vedere il livello UnitLabel.
Un esempio di livello Unità è disponibile nel pacchetto di disegni di esempio.
Livello Wall
Il file DWG per ogni livello può contenere un livello che definisce le estensioni fisiche di pareti, colonne e altre strutture dell'edificio.
- Le pareti devono essere disegnate come POLIGONO, POLILINEA (chiusa), CIRCLE o ELLIPSE (chiusa).
- Il livello o i livelli Parete possono contenere solo figure geometriche interpretate come strutture dell'edificio.
Un esempio di livello Parete è disponibile nel pacchetto di disegni di esempio.
Livello Door
È possibile includere un livello DWG che contiene porte. Ogni porta deve sovrapporsi al bordo di un'unità del livello Unità.
Le aperture delle porte in un set di dati di Mappe di Azure sono rappresentate da un segmento di linea singola che si sovrappone a più limiti di unità. Le immagini seguenti illustrano come Mappe di Azure converte la geometria del livello porta in funzionalità di apertura in un set di dati.
Livello Zone
Il file DWG per ogni livello può contenere un livello Zona che definisce le estensioni fisiche delle zone. Una zona è uno spazio non navigabile che può essere denominato e sottoposto a rendering. Le zone possono estendersi su più livelli e sono raggruppate usando la proprietà zoneSetId.
- Le zone devono essere disegnate come POLIGONO, POLILINEA (chiusa) o ELLIPSE (chiusa).
- Le zone possono sovrapporsi.
- Le zone possono essere interne o esterne al perimetro esterno della struttura.
Assegnare un nome a una zona creando un oggetto testo nel livello zoneLabel e inserendolo entro i limiti della zona. Per altre informazioni, vedere il livello ZoneLabel.
Un esempio di livello Zona è disponibile nel pacchetto di disegni di esempio.
Livello UnitLabel
Il file DWG per ogni livello può contenere un livello UnitLabel. Il livello UnitLabel aggiunge una proprietà Nome alle unità estratte dal livello Unità. Per le unità con una proprietà Name possono essere specificati altri dettagli nel file manifesto.
- Le etichette di unità devono essere entità di testo a riga singola.
- Le etichette di unità devono rientrare interamente nei limiti della rispettiva unità.
- Le unità non devono contenere più entità di testo nel livello UnitLabel.
Un esempio di livello unità del livello UnitLabel è disponibile nel pacchetto di disegni di esempio.
Livello ZoneLabel
Il file DWG per ogni livello può contenere un livello ZoneLabel. Questo livello aggiunge una proprietà name alle zone estratte dal livello Zone. Per le zone con una proprietà Name possono essere specificati altri dettagli nel file manifesto.
- Le etichette di zone essere entità di testo a riga singola.
- Le etichette di zone devono rientrare nei limiti della rispettiva zona.
- Le zone non devono contenere più entità di testo nel livello ZoneLabel.
Un esempio di livello ZoneLabel è disponibile nel pacchetto di disegni di esempio.
Requisiti dei file manifesto
La cartella ZIP deve contenere un file manifesto al livello radice della directory, che deve essere denominato manifest.json. Questo file descrive i file DWG per consentire al Servizio di conversione di analizzarne il contenuto. Sono inseriti solo i file identificati dal manifesto. I file inclusi nella cartella ZIP ma che non sono correttamente elencati nel manifesto sono ignorati.
Anche se sono previsti requisiti per l'uso degli oggetti del manifesto, non tutti gli oggetti sono obbligatori. La tabella seguente mostra gli oggetti obbligatori e facoltativi per la versione 1.1 del Servizio di conversione.
Nota
Se non differentemente specificato, tutte le proprietà con un tipo di proprietà stringa consentono un numero di caratteri di mille caratteri.
Object | Obbligatorio | Descrizione |
---|---|---|
version |
vero | Versione dello schema del manifesto. Attualmente è supportata solo la versione 1.1. |
directoryInfo |
true | Descrive le informazioni geografiche e di contatto della struttura. Può anche essere usato per descrivere informazioni geografiche e di contatto di un occupante. |
buildingLevels |
true | Specifica i livelli degli edifici e i file che contengono la progettazione dei livelli. |
georeference |
true | Contiene informazioni geografiche numeriche per il disegno della struttura. |
dwgLayers |
true | Elenca i nomi dei livelli e ogni livello elenca i nomi delle rispettive caratteristiche. |
unitProperties |
false | È possibile usarlo per inserire altri metadati per le funzionalità delle unità. |
zoneProperties |
false | È possibile usarlo per inserire altri metadati per le funzionalità delle zone. |
Le sezioni successive illustrano in dettaglio i requisiti per ogni oggetto.
directoryInfo
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
name |
stringa | true | Nome dell'edificio. |
streetAddress |
string | false | Indirizzo dell'edificio. |
unit |
string | false | Unità dell'edificio. |
locality |
string | false | Nome di una città, una città, un'area, un quartiere o un'area geografica. |
adminDivisions |
Matrice di stringhe JSON | false | Array contenente le designazioni degli indirizzi. Ad esempio: (Paese, Stato) Usare codici paese ISO 3166 e codici di stato/territorio ISO 3166-2. |
postalCode |
string | false | Il codice di smistamento postale. |
hoursOfOperation |
string | false | Conforme al formato degli orari di apertura OSM Opening Hours. |
phone |
string | false | Numero di telefono associato all'edificio. |
website |
string | false | Sito Web associato all'edificio. |
nonPublic |
bool | false | Flag che specifica se l'edificio è aperto al pubblico. |
anchorLatitude |
numeric | false | Latitudine di un ancoraggio di struttura (puntina da disegno). |
anchorLongitude |
numeric | false | Longitudine di un ancoraggio di struttura (puntina da disegno). |
anchorHeightAboveSeaLevel |
numeric | false | Altezza del pianterreno della struttura sul livello del mare, in metri. |
defaultLevelVerticalExtent numerico |
false | Altezza predefinita (spessore) di un livello di questa struttura da usare quando la proprietà verticalExtent di un livello non è definita. |
buildingLevels
L'oggetto buildingLevels
contiene una matrice JSON di livelli di edifici.
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
levelName |
stringa | true | Nome descrittivo del livello. Ad esempio: Piano 1, Lobby, Parcheggio Blu o Seminterrato. |
ordinal |
integer | true | Determina l'ordine verticale dei livelli. Ogni struttura deve avere un livello con ordinal 0. |
heightAboveFacilityAnchor |
numeric | false | Altezza del livello sopra l'ancoraggio in metri. |
verticalExtent |
numeric | false | Altezza da pavimento a soffitto (spessore) del livello, in metri. |
filename |
string | true | Percorso del file system del disegno CAD per un livello dell'edificio. Deve essere relativo alla radice del file ZIP dell'edificio. |
georeference
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
lat |
numeric | true | Rappresentazione decimale della latitudine in gradi in corrispondenza dell'origine del disegno della struttura. Le coordinate dell'origine devono essere espresse in WGS84 Web Mercator (EPSG:3857 ). |
lon |
numeric | true | Rappresentazione decimale della longitudine in gradi in corrispondenza dell'origine del disegno della struttura. Le coordinate dell'origine devono essere espresse in WGS84 Web Mercator (EPSG:3857 ). |
angle |
numeric | true | L'angolo in senso orario, in gradi, tra il nord geografico e l'asse verticale (Y) del disegno. |
dwgLayers
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
exterior |
matrice di stringhe | true | Nomi dei livelli che definiscono il profilo della facciata dell'edificio. |
unit |
matrice di stringhe | false | Nomi dei livelli che definiscono le unità. |
wall |
matrice di stringhe | false | Nomi dei livelli che definiscono le pareti. |
door |
matrice di stringhe | false | Nomi dei livelli che definiscono le porte. |
unitLabel |
matrice di stringhe | false | Nomi dei livelli che definiscono i nomi delle unità. |
zone |
matrice di stringhe | false | Nomi dei livelli che definiscono le zone. |
zoneLabel |
matrice di stringhe | false | Nomi dei livelli che definiscono i nomi delle zone. |
unitProperties
L'oggetto unitProperties
contiene una matrice JSON di proprietà delle unità.
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
unitName |
stringa | true | Nome dell'unità da associare al record unitProperty . Questo record è valido solo quando nei livelli unitLabel è disponibile un'etichetta corrispondente unitName . |
categoryName |
string | false | Scopo dell'unità. Un elenco di valori utilizzabili dagli stili di rendering forniti è disponibile in categories.json. |
occupants |
array di oggetti directoryInfo | false | Elenco di occupanti per l'unità. |
nameAlt |
string | false | Nome alternativo dell'unità. |
nameSubtitle |
string | false | Sottotitolo dell'unità. |
addressRoomNumber |
string | false | Numero di stanza, unità, appartamento o suite dell'unità. |
verticalPenetrationCategory |
string | false | Quando questa proprietà è definita, la funzionalità risultante è una penetrazione verticale (VRT) invece di un'unità. È possibile usare penetrazioni verticali per andare ad altre funzionalità di penetrazione verticale nei livelli sopra o sotto di esso. La penetrazione verticale è un nome di Categoria. Se questa proprietà è definita, la proprietà categoryName viene sottoposta a override con verticalPenetrationCategory . |
verticalPenetrationDirection |
string | false | Se la proprietà verticalPenetrationCategory è definita, facoltativamente definire la direzione valida dello spostamento. I valori consentiti sono lowToHigh , highToLow , both e closed . Il valore predefinito è both . Il valore fa distinzione tra maiuscole e minuscole. |
nonPublic |
bool | false | Indica se l'unità è aperta al pubblico. |
isRoutable |
bool | false | Quando questa proprietà è impostata su false , non è possibile andare a o tramite l'unità. Il valore predefinito è true . |
isOpenArea |
bool | false | Consente l'accesso dell'agente mobile all'unità senza la necessità di un'apertura. Per impostazione predefinita, questo valore è impostato su true per le unità senza aperture e false per le unità con aperture. L'impostazione manuale di isOpenArea su false in un'unità senza aperture genera un avviso, perché l'unità risultante non è raggiungibile da un agente di spostamento. |
zoneProperties
L'oggetto zoneProperties
contiene una matrice JSON di proprietà delle zone.
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
zoneName | string | true | Nome della zona da associare al record zoneProperty . Questo record è valido solo quando nel livello zoneLabel della zona è disponibile un'etichetta corrispondente zoneName . |
categoryName | string | false | Scopo della zona. Un elenco di valori utilizzabili dagli stili di rendering forniti è disponibile in categories.json. |
zoneNameAlt | string | false | Nome alternativo della zona. |
zoneNameSubtitle | string | false | Sottotitolo della zona. |
zoneSetId | string | false | Impostare l'ID per stabilire una relazione tra più zone in modo che possano essere sottoposte a query o selezionate come gruppo. Ad esempio, zone che si estendono su più livelli. |
Manifesto del pacchetto di disegni di esempio
Di seguito è riportato il file manifesto per il pacchetto di disegni di esempio. Andare al pacchetto di disegni di esempio per Creator di Mappe di Azure in GitHub per scaricare l'intero pacchetto.
File manifesto
{
"version": "1.1",
"directoryInfo": {
"name": "Contoso Building",
"streetAddress": "Contoso Way",
"unit": "1",
"locality": "Contoso eastside",
"postalCode": "98052",
"adminDivisions": [
"Contoso city",
"Contoso state",
"Contoso country"
],
"hoursOfOperation": "Mo-Fr 08:00-17:00 open",
"phone": "1 (425) 555-1234",
"website": "www.contoso.com",
"nonPublic": false,
"anchorLatitude": 47.636152,
"anchorLongitude": -122.132600,
"anchorHeightAboveSeaLevel": 1000,
"defaultLevelVerticalExtent": 3
},
"buildingLevels": {
"levels": [
{
"levelName": "Basement",
"ordinal": -1,
"filename": "./Basement.dwg"
}, {
"levelName": "Ground",
"ordinal": 0,
"verticalExtent": 5,
"filename": "./Ground.dwg"
}, {
"levelName": "Level 2",
"ordinal": 1,
"heightAboveFacilityAnchor": 3.5,
"filename": "./Level_2.dwg"
}
]
},
"georeference": {
"lat": 47.636152,
"lon": -122.132600,
"angle": 0
},
"dwgLayers": {
"exterior": [
"OUTLINE", "WINDOWS"
],
"unit": [
"UNITS"
],
"wall": [
"WALLS"
],
"door": [
"DOORS"
],
"unitLabel": [
"UNITLABELS"
],
"zone": [
"ZONES"
],
"zoneLabel": [
"ZONELABELS"
]
},
"unitProperties": [
{
"unitName": "B01",
"categoryName": "room.office",
"occupants": [
{
"name": "Joe's Office",
"phone": "1 (425) 555-1234"
}
],
"nameAlt": "Basement01",
"nameSubtitle": "01",
"addressRoomNumber": "B01",
"nonPublic": true,
"isRoutable": true,
"isOpenArea": true
},
{
"unitName": "B02"
},
{
"unitName": "B05",
"categoryName": "room.office"
},
{
"unitName": "STRB01",
"verticalPenetrationCategory": "verticalPenetration.stairs",
"verticalPenetrationDirection": "both"
},
{
"unitName": "ELVB01",
"verticalPenetrationCategory": "verticalPenetration.elevator",
"verticalPenetrationDirection": "high_to_low"
}
],
"zoneProperties":
[
{
"zoneName": "WifiB01",
"categoryName": "Zone",
"zoneNameAlt": "MyZone",
"zoneNameSubtitle": "Wifi",
"zoneSetId": "1234"
},
{
"zoneName": "Wifi101",
"categoryName": "Zone",
"zoneNameAlt": "MyZone",
"zoneNameSubtitle": "Wifi",
"zoneSetId": "1234"
}
]
}
Il Servizio di conversione di Mappe di Azure consente di convertire i pacchetti di disegni caricati in dati di mappe. Questo articolo descrive i requisiti del pacchetto di disegni per l'API Conversione. Per altre informazioni, è possibile scaricare il pacchetto di disegni di esempio v2.
Per una guida su come preparare il pacchetto di disegni, vedere Guida al pacchetto di disegni.
Modifiche e revisioni
- Aggiunto il supporto per le classi di funzionalità definite dall'utente.
- Requisiti semplificati dei livelli DWG.
Prerequisiti
Il pacchetto di disegni include i disegni salvati in formato DWG, ovvero il formato di file nativo per il software AutoCAD® di Autodesk.
È possibile scegliere qualsiasi software CAD per produrre i disegni del pacchetto di disegni.
Il Servizio di conversione converte il pacchetto di disegni in dati di mappe. Il Servizio di conversione funziona con il formato di file DWG autoCAD AC1032.
Glossario dei termini
Per un riferimento semplice, ecco alcuni termini e definizioni importanti durante la lettura di questo articolo.
Termine | Definizione |
---|---|
Livello | Livello DWG di AutoCAD dal file di disegno. |
Entità | Entità DWG di AutoCAD dal file di disegno. |
Xref | Un file in formato DWG di AutoCAD collegato al disegno primario come riferimento esterno. |
Level | Area di una struttura a un'elevazione impostata. Ad esempio il piano di una struttura. |
Funzionalità | Istanza di un oggetto generato dal Servizio di conversione che combina una geometria con le informazioni sui metadati. |
Classi di funzionalità | Un progetto comune per le caratteristiche. |
Struttura del pacchetto di disegni
Un pacchetto di disegni è un archivio ZIP che contiene i file seguenti:
- File DWG in formato DWG di AutoCAD.
- File manifest.json che descrive i file DWG nel pacchetto di disegni.
Il pacchetto di disegni deve essere compresso in un singolo file di archivio, con l'estensione .zip. I file DWG possono essere organizzati in qualsiasi modo all'interno del pacchetto di disegni, ma il file manifesto deve trovarsi nella directory radice. Le sezioni successive illustrano il processo di conversione e i requisiti per i file DWG e manifesti e il contenuto di questi file. Per altre informazioni, è possibile scaricare il pacchetto di disegni di esempio v2.
Processo di conversione dei file DWG
Il Servizio di conversione mappe di Azure converte i file DWG di una struttura per eseguire il mapping dei dati che rappresentano una struttura e le funzionalità di una struttura.
Il Servizio di conversione di Mappe di Azure crea:
- Funzionalità Struttura: funzionalità di primo livello di una struttura a cui sono associati tutti i livelli di una struttura.
- Funzionalità Livello: viene creata una funzionalità di livello per ogni piano di una struttura. Tutte le funzionalità di un livello sono associate a un livello.
- Funzionalità definite dall'utente: i livelli DWG vengono mappati a una classe di funzionalità definita dall'utente e diventano istanze della classe di funzionalità.
Requisiti relativi ai file DWG
Ogni file DWG deve rispettare questi requisiti:
- Il file DWG non può contenere funzionalità di più strutture.
- Il file DWG non può contenere funzionalità di più livelli. Ad esempio, una struttura con tre livelli ha tre file DWG nel pacchetto di disegni.
- I dati di un singolo livello devono essere contenuti in un singolo file DWG. Qualsiasi riferimento esterno (xref) deve essere associato al disegno padre.
- Il file DWG deve definire uno o più livelli che rappresentano il limite di tale livello.
- DWG deve fare riferimento allo stesso sistema di misurazione e unità di misura degli altri file DWG nel pacchetto di disegni.
- Il file DWG deve essere allineato quando è sovrapposto a un altro livello dalla stessa struttura.
Requisiti del livello DWG
Classi di funzionalità
È possibile eseguire il mapping di uno o più livelli DWG a una classe di funzionalità definita dall'utente. Un'istanza della funzionalità viene creata da un'entità nel livello mappato. Ad esempio, i livelli DWG sedia, tavolo e divano sono mappati a una classe di funzionalità denominata mobili. Una funzionalità di arredamento viene creata per ogni entità dai livelli definiti. Inoltre:
- Tutti i livelli devono essere separati per rappresentare differenti tipi di funzionalità della struttura.
- Tutte le entità devono rientrare nei limiti del perimetro del livello.
- Tipi di entità AutoCAD supportati: TEXT, MTEXT, POINT, ARC, CIRCLE, LINE, POLILINEA, ELLIPSE.
Proprietà della classe di funzionalità
Le entità di testo che rientrano nei limiti di una forma chiusa possono essere associate a tale funzionalità come proprietà. Ad esempio, una classe di funzionalità della sala potrebbe avere testo che descrive il nome della stanza e un altro tipo di stanza pacchetto di disegni di esempio v2. Inoltre:
- Solo le entità TEXT e MTEXT sono associate alla funzionalità come proprietà. Tutti gli altri tipi di entità vengono ignorati.
- Il punto di giustificazione TEXT e MTEXT deve rientrare entro i limiti della forma chiusa.
- Se più proprietà TEXT si trova all'interno dei limiti della forma chiusa ed entrambi vengono mappati a una proprietà, ne viene selezionata una in modo casuale.
Livello di struttura
Il file DWG per ogni livello deve contenere un livello per definirne il perimetro. Ad esempio, se una struttura contiene due livelli, deve avere due file DWG, ognuno con un livello che definisce il perimetro del livello.
Indipendentemente dal numero di disegni di entità inclusi nel livello Perimetro di livello, il set di dati della struttura risultante conterrà solo una funzionalità di livello per ogni file DWG. Inoltre:
- I perimetri di livello devono essere disegnati come POLIGONO, POLILINEA (chiuso), CIRCLE o ELLIPSE (chiuso).
- I perimetri di livello possono sovrapporsi ma vengono sciolti in una geometria.
- La funzionalità del livello risultante deve essere di almeno 4 metri quadrati.
- La funzionalità del livello risultante non deve essere maggiore di 400.000 metri quadrati.
Se il livello contiene più POLILINEE sovrapposte, queste vengono combinate in una singola funzionalità di livello. In alternativa, se il livello contiene più POLILINEE non sovrapposte, la funzionalità di livello risultante avrà una rappresentazione multi-poligonale.
È possibile visualizzare un esempio di livello Perimetro di livello come livello GROS$
nel pacchetto di disegni di esempio v2.
Requisiti dei file manifesto
Il pacchetto di disegni deve contenere un file manifesto al livello radice, che deve essere denominato manifest.json. Questo file descrive i file DWG per consentire al Servizio di conversione di analizzarne il contenuto. Vengono usati solo i file identificati dal manifesto. I file presenti nel pacchetto di disegni, ma non sono elencati correttamente nel manifesto, vengono ignorati.
I percorsi dei file, nell'oggetto buildingLevels del file manifesto, devono essere relativi alla radice del pacchetto di disegni. Il nome del file DWG deve corrispondere esattamente al nome del livello della struttura. Ad esempio, un file DWG per il livello "seminterrato" si chiama Basement.dwg. Un file DWG per il livello 2 è denominato level_2.dwg. I nomi file non possono contenere spazi, è possibile usare un carattere di sottolineatura per sostituire gli spazi.
Anche se sono previsti requisiti per l'uso degli oggetti del manifesto, non tutti gli oggetti sono obbligatori. La tabella seguente mostra gli oggetti obbligatori e facoltativi per l'anteprima 2023-03-01 del Servizio di conversione.
Nota
Se non differentemente specificato, tutte le proprietà stringa sono limitate a un migliaio di caratteri.
File JSON manifesto
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
version |
string | TRUE | Versione dello schema del manifesto. Attualmente versione "2.0" |
buildingLevels |
Oggetto BuildingLevels | TRUE | Specifica i livelli della struttura e i file che contengono la progettazione dei livelli. |
featureClasses |
Array di oggetti featureClass | TRUE | Elenco di oggetti classe di funzionalità che definiscono la modalità di lettura dei livelli dal file di disegno DWG. |
georeference |
Oggetto Georeferenziazione | FALSE | Contiene informazioni geografiche numeriche per il disegno della struttura. |
facilityName |
string | FALSE | Nome della struttura. |
Le sezioni successive illustrano in dettaglio i requisiti per ogni oggetto.
buildingLevels
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
dwgLayers |
Matrice di stringhe | TRUE | Nomi di livelli che definiscono il profilo esterno della struttura. |
levels |
Array di oggetti di livello | TRUE | Un livello fa riferimento a un piano univoco nella struttura definita in un file DWG, l'altezza di ogni livello e ordine verticale in cui vengono visualizzati. |
level
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
levelName |
stringa | TRUE | Nome del livello. Ad esempio: Piano 1, Lobby, Parcheggio Blu o Seminterrato. |
ordinal |
integer | TRUE | Definisce l'ordine verticale dei livelli. Tutti i valori ordinal devono essere univoci all'interno di una struttura. |
filename |
string | TRUE | Percorso e nome del file DWG che rappresenta il livello in una struttura. Il percorso deve essere relativo alla radice del pacchetto di disegni. |
verticalExtent |
number | FALSE | Altezza verticale da pavimento a soffitto (spessore) del livello, in metri. |
featureClass
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
dwgLayers |
Matrice di stringhe | TRUE | Nome di ogni livello che definisce la classe di funzionalità. Ogni entità nel livello specificato viene convertita in un'istanza della classe di funzionalità. Il nome dwgLayer da cui viene convertita una funzionalità termina come proprietà di tale funzionalità. |
featureClassName |
string | TRUE | Nome della classe di funzionalità. Gli esempi tipici includono sala, area di lavoro o parete. |
featureClassProperties |
Array di oggetti featureClassProperty | FALSE | Specifica i livelli di testo nel file DWG associato alla funzionalità come proprietà. Ad esempio, un'etichetta che rientra nei limiti di uno spazio, ad esempio un numero di stanza. |
featureClassProperty
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
dwgLayers |
Matrice di stringhe | TRUE | Nome di ogni livello che definisce la proprietà della classe di funzionalità. Ogni entità nel livello specificato viene convertita in una proprietà. Solo le entità DWG TEXT e MTEXT vengono convertite in proprietà. Tutte le altre entità vengono ignorate. |
featureClassPropertyName |
string | TRUE | Nome della proprietà della classe di funzionalità, ad esempio spaceName o spaceUseType. |
georeference
Proprietà | Type | Obbligatorio | Descrizione |
---|---|---|---|
lat |
number | TRUE | Rappresentazione decimale della latitudine in gradi in corrispondenza dell'origine del disegno della struttura. Le coordinate dell'origine devono essere espresse in WGS84 Web Mercator (EPSG:3857). |
lon |
number | TRUE | Rappresentazione decimale della longitudine in gradi in corrispondenza dell'origine del disegno della struttura. Le coordinate dell'origine devono essere espresse in WGS84 Web Mercator (EPSG:3857). |
angle |
number | TRUE | L'angolo in senso orario, in gradi, tra il nord geografico e l'asse verticale (Y) del disegno. |
Manifesto del pacchetto di disegni di esempio
Il codice JSON in questo esempio mostra il file manifesto per il pacchetto di disegni di esempio. Andare al pacchetto di disegni di esempio v2 per Creator di Mappe di Azure in GitHub per scaricare l'intero pacchetto.
File manifesto
{
"version": "2.0",
"buildingLevels": {
"dwgLayers": [
"GROS$"
],
"levels": [
{
"filename": "Ground.dwg",
"levelName": "level 1",
"ordinal": 0
},
{
"filename": "Level_2.dwg",
"levelName": "level 2",
"ordinal": 1
}
]
},
"georeference": {
"lat": 47.63529901,
"lon": -122.13355885,
"angle": 0
},
"featureClasses": [
{
"featureClassName": "room",
"dwgLayers": [
"RM$"
],
"featureClassProperties": [
{
"featureClassPropertyName": "name",
"dwgLayers": [
"A-IDEN-NUMR-EXST"
]
},
{
"featureClassPropertyName": "roomType",
"dwgLayers": [
"A-IDEN-NAME-EXST"
]
}
]
},
{
"featureClassName": "wall",
"dwgLayers": [
"A-WALL-EXST",
"A-WALL-CORE-EXST",
"A-GLAZ-SILL-EXST",
"A-GLAZ-SHEL-SILL-EXST",
"A-GLAZ-SHEL-EXST",
"A-GLAZ-EXST"
]
},
{
"featureClassName": "workspace",
"dwgLayers": [
"A-BOMA"
]
},
{
"featureClassName": "workspaceFurniture",
"dwgLayers": [
"A-FURN-SYTM-EXST"
]
},
{
"featureClassName": "buildingFurniture",
"dwgLayers": [
"A-FURN-FREE-EXST"
]
}
],
"facilityName": "Contoso Building"
}
Passaggi successivi
Per una guida su come preparare il pacchetto di disegni, vedere la guida al pacchetto di disegni.