Exigences du package de dessin
Remarque
Mise hors service d’Azure Maps Creator
Le service de cartographie intérieure Azure Maps Creator est désormais déconseillé et sera mis hors service le 30/9/25. Pour plus d’informations, consultez l’Annonce de la fin de vie d’Azure Maps Creator.
Vous pouvez convertir les packages de dessin chargés en données cartographiques à l’aide du service de conversion d’Azure Maps. Cet article décrit les exigences du package de dessin pour l’API de conversion. Pour voir un exemple de package, vous pouvez télécharger l’exemple Package de dessin.
Prérequis
Le package Dessin comprend des dessins enregistrés au format DWG. Il s’agit du format de fichier natif du logiciel AutoCAD® d’Autodesk.
Vous pouvez choisir n’importe quel logiciel de CAO pour produire les dessins du package de dessin.
Le service de conversion convertit le package de dessin en données cartographiques. Le service de conversion fonctionne avec le format de fichier DWG AutoCAD AC1032
.
Glossaire des termes
Voici quelques termes et définitions importants pour faciliter la lecture de cet article.
Terme | Définition |
---|---|
Couche | Couche AutoCAD DWG du fichier de dessin. |
Entité | Entité AutoCAD DWG du fichier de dessin. |
Xref | Fichier au format DWG AutoCAD attaché au dessin principal en tant que référence externe. |
Level | Zone d’un immeuble à une élévation définie. Par exemple, l’étage d’un immeuble. |
Fonctionnalité | Instance d’un objet produit à partir du service de conversion qui associe une géométrie à des informations de métadonnées. |
Classes de caractéristiques | Blueprint commun pour les caractéristiques. Par exemple, une unité est une classe de caractéristiques et un bureau est une caractéristique. |
Structure de package de dessin
Un package de dessin est une archive .zip contenant les fichiers suivants :
- Fichiers DWG au format de fichier DWG AutoCAD.
- Fichier manifest.json qui décrit les fichiers DWG dans le package de dessin.
Le package de dessin doit être compressé dans un fichier d’archive unique, avec l’extension .zip. Les fichiers DWG peuvent être organisés d’une façon quelconque dans le package, mais le fichier manifeste doit se trouver dans le répertoire racine du package compressé. Les sections suivantes détaillent les exigences relatives aux fichiers DWG, au fichier manifeste et au contenu de ces fichiers. Pour consulter un exemple de package, vous pouvez télécharger l’exemple Package de dessin.
Processus de conversion de fichier DWG
Le service de conversion effectue les opérations suivantes sur chaque fichier DWG :
- Extrait les classes de fonctionnalités :
- Niveaux
- Unités
- Zones
- Ouvertures
- Murs
- Pénétrations verticales
- Produit une fonctionnalité Installation.
- Produit un ensemble minimal de fonctionnalités de catégorie par défaut référencées par d’autres fonctionnalités :
- room
- structure
- wall
- opening.door
- zone
- installation
Exigences du fichier DWG
Un fichier DWG unique est requis pour chaque niveau du bâtiment. Toutes les données d’un même niveau doivent être contenues dans un seul fichier DWG. Toute référence externe (xref) doit être liée au dessin parent. Par exemple, une installation à trois niveaux possède trois fichiers DWG dans le package de dessin.
Chaque fichier DWG doit respecter les conditions suivantes :
- Le fichier DWG doit définir les calques Extérieur et Unité. Il peut éventuellement définir les calques facultatifs suivants : Mur, Porte, UnitLabel, Zone et ZoneLabel.
- Le fichier DWG ne peut pas contenir de fonctionnalités à partir de plusieurs niveaux.
- Le fichier DWG ne peut pas contenir de fonctionnalités à partir de plusieurs installations.
- Le DWG doit faire référence au même système de mesure et à la même unité de mesure que les autres fichiers DWG dans le package de dessin.
Exigences relatives au calque DWG
Chaque calque DWG doit respecter les règles suivantes :
- Un calque DWG doit contenir les fonctionnalités d’une seule classe. Par exemple, les unités et les murs ne peuvent pas se trouver dans le même calque.
- Une seule classe de fonctionnalités peut être représentée par plusieurs calques.
- Les polygones à intersection automatique sont autorisés, mais automatiquement réparés. Lors de cette réparation, le service de conversion génère un avertissement. Il est recommandé d’inspecter manuellement les résultats réparés, car ils peuvent ne pas correspondre aux résultats attendus.
- Chaque calque contient une liste de types d’entités pris en charge. Tous les autres types d’entités sont ignorés. Par exemple, les entités de texte ne sont pas prises en charge sur le calque de mur.
Le tableau suivant présente les types d’entités pris en charge et les caractéristiques de mappage converties pour chaque couche. Si un calque contient des types d’entités non pris en charge, le service de conversion ignore ces entités.
Couche | Types d’entités | Caractéristiques converties |
---|---|---|
Extérieur | POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée) | Niveaux |
Unité | POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée) | Unités et Pénétrations verticales |
Mur | POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée), Structures | |
Porte | POLYGONE, POLYLIGNE, LIGNE, ARC DE CERCLE, CERCLE | Ouvertures |
Zone | POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée) | Zones |
UnitLabel | Texte (ligne unique) | Non applicable. Ce calque ne peut ajouter des propriétés aux caractéristiques de l’unité qu’à partir du calque Unités. Pour plus d’informations, consultez Calque UnitLabel. |
ZoneLabel | Texte (ligne unique) | Non applicable. Ce calque ne peut ajouter des propriétés aux caractéristiques de la zone qu’à partir du calque ZonesLayer. Pour plus d’informations, consultez Calque ZoneLabel. |
Les sections suivantes détaillent les exigences de chaque couche.
Calque Extérieur
Le fichier DWG pour chaque niveau doit contenir un calque pour définir le périmètre de ce niveau. Ce calque est appelé calque Extérieur. Par exemple, si un bâtiment contient deux niveaux, il doit avoir deux fichiers DWG, avec un calque Extérieur pour chaque fichier.
Quel que soit le nombre de dessins d’entité dans la couche extérieure, le jeu de données du bâtiment obtenu ne contient qu’une seule caractéristique de niveau pour chaque fichier DWG. De plus :
- Les calques extérieurs doivent être dessinés en tant que POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée).
- Les calques extérieurs peuvent se chevaucher, mais sont fusionnés dans une seule géométrie.
- La caractéristique Niveau obtenue doit être d’au moins 4 mètres carrés.
- La caractéristique Niveau obtenue ne doit pas être supérieure à 400 000 mètres carrés.
Si le calque contient plusieurs Polylignes qui se chevauchent, celles-ci sont fusionnées en une seule caractéristique Niveau. Si le calque contient plusieurs polylignes ne se chevauchant pas, la caractéristique Niveau obtenue a une représentation multi-polygonale.
Vous pouvez consulter un exemple de calque Extérieur en tant que calque contour dans l’exemple de package de dessin.
Calque Unité
Le fichier DWG pour chaque niveau doit définir un calque contenant des unités. Les unités sont des espaces navigables dans le bâtiment, tels que des bureaux, des couloirs, des escaliers et des ascenseurs. Si la propriété VerticalPenetrationCategory
est définie, les unités navigables qui s’étendent sur plusieurs niveaux, telles que les ascenseurs et les escaliers, sont converties en caractéristiques Pénétration verticale. Une valeur setid
est attribuée aux caractéristiques de pénétration verticale qui se chevauchent.
Le calque Unités doit respecter les exigences suivantes :
- Les unités doivent être dessinées en tant que POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée).
- Les unités doivent se trouver à l’intérieur des limites du périmètre extérieur du bâtiment.
- Les unités ne doivent pas se chevaucher partiellement.
- Les unités ne doivent pas contenir de géométrie avec auto-intersection.
Nommez une unité en créant un objet texte dans le calque UnitLabel, puis placez l’objet à l’intérieur des limites de l’unité. Pour plus d’informations, consultez Calque UnitLabel.
Vous pouvez consulter un exemple de calque Unités dans l’exemple de package de dessin.
Calque Mur
Le fichier DWG pour chaque niveau peut contenir un calque qui définit les étendues physiques de murs, de colonnes et d’autres structures de bâtiment.
- Les murs doivent être dessinés en tant que POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée).
- Les calques Mur doivent contenir uniquement une géométrie interprétée comme une structure de bâtiment.
Vous pouvez consulter un exemple de calque Murs dans l’exemple de package de dessin.
Calque Porte
Vous pouvez inclure un calque DWG contenant des portes. Chaque porte doit chevaucher le bord d’une unité du calque Unités.
Les ouvertures de portes d’un jeu de données Azure Maps sont représentées sous la forme d’un segment d’une seule ligne qui chevauche plusieurs limites d’unité. Les images suivantes montrent comment Azure Maps convertit la géométrie de la couche de porte en fonctionnalités d’ouverture dans un jeu de données.
Calque Zones
Le fichier DWG pour chaque niveau peut contenir un calque Zones qui définit les étendues physiques de zones. Une zone est un espace non navigable qui peut être nommé et rendu. Les zones peuvent s’étendre sur plusieurs niveaux et sont regroupées à l’aide de la propriété zoneSetId.
- Les zones doivent être dessinées en tant que POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée).
- Les zones peuvent se chevaucher.
- Les zones peuvent se trouver à l’intérieur ou à l’extérieur du périmètre extérieur du bâtiment.
Nommez une zone en créant un objet texte dans le calque ZoneLabel et en plaçant l’objet texte à l’intérieur des limites de la zone. Pour plus d’informations, consultez Calque ZoneLabel.
Vous pouvez consulter un exemple de calque Zone dans l’exemple de package de dessin.
Claque UnitLabel
Le fichier DWG pour chaque niveau peut contenir un calque UnitLabel. Le calque UnitLabel ajoute une propriété de nom aux unités extraites du calque Unité. Les unités ayant une propriété de nom peuvent avoir plus de détails spécifiés dans le fichier manifeste.
- Les étiquettes d’unité doivent être des entités texte d’une seule ligne.
- Les étiquettes d’unité doivent entièrement se trouver dans les limites de leur unité.
- Les unités ne doivent pas contenir plusieurs entités texte dans le calque UnitLabel.
Vous pouvez consulter un exemple de calque UnitLabel dans l’exemple de package de dessin.
Calque ZoneLabel
Le fichier DWG pour chaque niveau peut contenir un calque ZoneLabel. Ce calque ajoute une propriété de nom aux zones extraites du claque Zones. Les zones ayant une propriété de nom peuvent avoir plus de détails spécifiés dans le fichier manifeste.
- Les étiquettes de zone doivent être des entités texte d’une seule ligne.
- Les étiquettes de zone doivent se trouver dans les limites de leur zone.
- Les zones ne doivent pas contenir plusieurs entités texte dans le calque ZoneLabel.
Vous pouvez consulter un exemple de calque ZoneLabel dans l’exemple de package de dessin.
Exigences du fichier manifeste
Le dossier zip doit contenir un fichier manifeste au niveau racine du répertoire, et le fichier doit être nommé manifest.json. Il décrit les fichiers DWG pour permettre au service de conversion d’analyser leur contenu. Seuls les fichiers identifiés par le manifeste sont ingérés. Les fichiers qui se trouvent dans le dossier zip mais qui ne sont pas correctement répertoriés dans le manifeste sont ignorés.
Bien que des exigences s’appliquent à l’utilisation des objets de manifeste, tous les objets ne sont pas obligatoires. Le tableau suivant répertorie les objets obligatoires et facultatifs pour la version 1.1 du service de conversion.
Notes
Sauf indication contraire, toutes les propriétés dotées d’un type de propriété de chaîne autorisent 1 000 caractères.
Object | Obligatoire | Description |
---|---|---|
version |
true | Version du schéma du manifeste. Actuellement, seule la version 1.1 est prise en charge. |
directoryInfo |
true | Décrit les coordonnées géographiques du bâtiment et les informations de contact. Peut également être utilisée pour décrire les coordonnées géographiques et les informations de contact d’un occupant. |
buildingLevels |
true | Spécifie les niveaux des bâtiments et les fichiers contenant la conception des niveaux. |
georeference |
true | Contient des informations géographiques numériques pour le dessin du bâtiment. |
dwgLayers |
true | Répertorie les noms des calques, et chaque calque répertorie les noms de ses propres caractéristiques. |
unitProperties |
false | Peut être utilisé pour insérer plus de métadonnées pour les caractéristiques d’unité. |
zoneProperties |
false | Peut être utilisé pour insérer plus de métadonnées pour les caractéristiques de zone. |
Les sections suivantes détaillent les exigences pour chaque objet.
directoryInfo
Propriété | Type | Requise | Description |
---|---|---|---|
name |
string | true | Nom du bâtiment. |
streetAddress |
string | false | Adresse du bâtiment. |
unit |
string | false | Unité dans le bâtiment. |
locality |
string | false | Nom d’une ville, d’une zone, d’un quartier ou d’une région. |
adminDivisions |
Tableau de chaînes JSON | false | Tableau contenant les désignations d’adresses. Par exemple : (Pays, état) Utilisez les codes de pays ISO 3166 et les codes d’état/territoire ISO 3166-2. |
postalCode |
string | false | Code de tri de courrier postal. |
hoursOfOperation |
string | false | Suit le format d’heures d’ouvertures OSM. |
phone |
string | false | Numéro de téléphone associé au bâtiment. |
website |
string | false | Site web associé au bâtiment. |
nonPublic |
bool | false | Indicateur spécifiant si le bâtiment est ouvert au public. |
anchorLatitude |
numeric | false | Latitude d’une ancre de bâtiment (punaise). |
anchorLongitude |
numeric | false | Longitude d’une ancre de bâtiment (punaise). |
anchorHeightAboveSeaLevel |
numeric | false | Hauteur du rez-de-chaussée du bâtiment par rapport au niveau de la mer, exprimée en mètres. |
defaultLevelVerticalExtent numérique |
false | Hauteur par défaut (épaisseur) d’un niveau de ce bâtiment à utiliser quand la valeur verticalExtent d’un niveau n’est pas définie. |
buildingLevels
L’objet buildingLevels
contient un tableau JSON de niveaux de bâtiments.
Propriété | Type | Requise | Description |
---|---|---|---|
levelName |
string | true | Nom de niveau descriptif. Par exemple : Étage 1, Hall, Zone de stationnement bleue ou Sous-sol. |
ordinal |
entier | true | Détermine l’ordre vertical des niveaux. Toute bâtiment doit avoir un niveau dont la valeur ordinale est 0. |
heightAboveFacilityAnchor |
numeric | false | Hauteur de niveau au-dessus de l’ancre, exprimée en mètres. |
verticalExtent |
numeric | false | Hauteur du sol au plafond (épaisseur) du niveau, exprimée en mètres. |
filename |
string | true | Chemin d’accès dans le système de fichiers du dessin de CAO d’un niveau de bâtiment. Il doit être relatif à la racine du fichier zip du bâtiment. |
georeference
Propriété | Type | Requise | Description |
---|---|---|---|
lat |
numeric | true | Représentation décimale de la latitude en degrés à l’origine du dessin du bâtiment. Les coordonnées de l’origine doivent être conformes à la norme WGS84 Web Mercator (EPSG:3857 ). |
lon |
numeric | true | Représentation décimale de la longitude en degrés à l’origine du dessin du bâtiment. Les coordonnées de l’origine doivent être conformes à la norme WGS84 Web Mercator (EPSG:3857 ). |
angle |
numeric | true | Angle, exprimé en degrés, entre le nord réel et l’axe vertical (Y) du dessin dans le sens des aiguilles d’une montre. |
dwgLayers
Propriété | Type | Requise | Description |
---|---|---|---|
exterior |
tableau de chaînes | true | Noms des calques définissant le profil extérieur du bâtiment. |
unit |
tableau de chaînes | false | Noms des calques définissant les unités. |
wall |
tableau de chaînes | false | Noms des calques définissant les murs. |
door |
tableau de chaînes | false | Noms des calques définissant les portes. |
unitLabel |
tableau de chaînes | false | Noms des calques définissant les noms d’unités. |
zone |
tableau de chaînes | false | Noms des calques définissant les zones. |
zoneLabel |
tableau de chaînes | false | Noms des calques définissant les noms de zones. |
unitProperties
L’objet unitProperties
contient un tableau JSON de propriétés d’unité.
Propriété | Type | Requise | Description |
---|---|---|---|
unitName |
string | true | Nom de l’unité à associer à cet enregistrement de unitProperty . Cet enregistrement n’est valide que si une étiquette correspondant à unitName est trouvée dans le ou les calques unitLabel . |
categoryName |
string | false | Objectif de l’unité. Une liste de valeurs que les styles de rendu fournis peuvent utiliser est documentée dans categories.json. |
occupants |
Tableau d’objets directoryInfo | false | Liste d’occupants de l’unité. |
nameAlt |
string | false | Autre nom de l’unité. |
nameSubtitle |
string | false | Sous-titre de l’unité. |
addressRoomNumber |
string | false | Numéro de salle, d’appartement ou de suite de l’unité. |
verticalPenetrationCategory |
string | false | Lorsque cette propriété est définie, la caractéristique qui en résulte est une pénétration verticale (VRT) plutôt qu’une unité. Vous pouvez utiliser les pénétrations verticales pour accéder à d’autres caractéristiques de pénétrations verticales dans les niveaux supérieurs ou inférieurs. Pénétration verticale est un nom de Catégorie. Si cette propriété est définie, la propriété categoryName est remplacée par verticalPenetrationCategory . |
verticalPenetrationDirection |
string | false | Si la valeur verticalPenetrationCategory est définie, définissez éventuellement la direction de déplacement valide. Les valeurs autorisées sont lowToHigh , highToLow , both et closed . La valeur par défaut est both . Cette valeur respecte la casse. |
nonPublic |
bool | false | Indique si l’unité est ouverte au public. |
isRoutable |
bool | false | Lorsque cette propriété est définie sur false , vous ne pouvez pas accéder ou traverser l’unité. La valeur par défaut est true . |
isOpenArea |
bool | false | Permet à l’agent de navigation d’entrer dans l’unité sans qu’il soit nécessaire d’attacher une ouverture à celle-ci. Par défaut, cette valeur est définie sur true pour les unités sans ouvertures, et sur false pour les unités avec ouvertures. La définition manuelle de isOpenArea sur false sur une unité sans ouvertures entraîne un avertissement, car l’unité résultante n’est pas accessible par un agent de navigation. |
zoneProperties
L’objet zoneProperties
contient un tableau JSON de propriétés de zone.
Propriété | Type | Requise | Description |
---|---|---|---|
zoneName | string | true | Nom de zone à associer à l’enregistrement zoneProperty . Cet enregistrement n’est valide que si une étiquette correspondant à zoneName est trouvée dans le calque zoneLabel de la zone. |
categoryName | string | false | Objectif de la zone. Une liste de valeurs que les styles de rendu fournis peuvent utiliser est documentée dans categories.json. |
zoneNameAlt | string | false | Autre nom de la zone. |
zoneNameSubtitle | string | false | Sous-titre de la zone. |
zoneSetId | string | false | ID défini pour établir une relation entre plusieurs zones pour qu’elles puissent être interrogées ou sélectionnées en tant que groupe. Il peut s’agir, par exemple, de zones qui s’étendent sur plusieurs niveaux. |
Exemple de manifeste du package de dessin
Vous trouverez ci-dessous un fichier manifeste pour l’échantillon de package de dessins. Accédez à l'exemple de package de dessin pour Azure Maps Creator sur GitHub pour télécharger l’intégralité du package.
Fichier manifeste
{
"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"
}
]
}
Vous pouvez convertir les packages de dessin chargés en données cartographiques à l’aide du service de conversion d’Azure Maps. Cet article décrit les exigences du package de dessin pour l’API de conversion. Pour consulter un échantillon de package, vous pouvez télécharger l’échantillon Package de dessin v2.
Pour obtenir un guide sur comment préparer votre package de dessin, consultez le Guide du package de dessin.
Modifications et révisions
- Ajout de la prise en charge des classes d'entités définies par l’utilisateur.
- Exigences simplifiées des couches DWG.
Prérequis
Le package Dessin comprend des dessins enregistrés au format DWG. Il s’agit du format de fichier natif du logiciel AutoCAD® d’Autodesk.
Vous pouvez choisir n’importe quel logiciel de CAO pour produire les dessins du package de dessin.
Le service de conversion convertit le package de dessin en données cartographiques. Le service de conversion fonctionne avec le format de fichier DWG AutoCAD AC1032.
Glossaire des termes
Voici quelques termes et définitions importants pour faciliter la lecture de cet article.
Terme | Définition |
---|---|
Couche | Couche AutoCAD DWG du fichier de dessin. |
Entité | Entité AutoCAD DWG du fichier de dessin. |
Xref | Fichier au format DWG AutoCAD attaché au dessin principal en tant que référence externe. |
Level | Zone d’une installation située à une élévation donnée. Par exemple, l’étage d’une installation. |
Fonctionnalité | Instance d’un objet produit à partir du service de conversion qui associe une géométrie à des informations de métadonnées. |
Classes de caractéristiques | Blueprint commun pour les caractéristiques. |
Structure de package de dessin
Un package de dessin est une archive ZIP contenant les fichiers suivants :
- Fichiers DWG au format de fichier DWG AutoCAD.
- Fichier manifest.json qui décrit les fichiers DWG dans le package de dessin.
Le package de dessin doit être compressé dans un fichier d’archive unique, avec l’extension .zip. Les fichiers DWG peuvent être organisés d’une façon quelconque dans le package de dessin, mais le fichier manifeste doit se trouver dans le répertoire racine. Les sections suivantes expliquent le processus de conversion et les exigences relatives aux fichiers DWG et aux fichiers de manifeste, ainsi que le contenu de ces fichiers. Pour consulter un échantillon de package, vous pouvez télécharger l’échantillon Package de dessin v2.
Processus de conversion de fichier DWG
Le service de conversion Azure Maps convertit le ou les fichiers DWG d’une installation en données cartographiques représentant une installation et les fonctionnalités d’une installation.
Le service de conversion Azure Maps crée :
- Fonctionnalité d’installation : fonctionnalité de niveau supérieur d’une installation à laquelle tous les niveaux d’une installation sont associés.
- Fonctionnalités de niveau : une fonctionnalité de niveau est créée pour chaque étage d’une installation. Toutes les fonctionnalités d’un niveau sont associées à un niveau.
- Fonctionnalités définies par l’utilisateur : les couches DWG sont mappées à une classe d'entités définie par l’utilisateur et deviennent des instances de la classe d'entités.
Exigences du fichier DWG
Chaque fichier DWG doit respecter ces exigences :
- Le fichier DWG ne peut pas contenir de fonctionnalités à partir de plusieurs installations.
- Le fichier DWG ne peut pas contenir de fonctionnalités à partir de plusieurs niveaux. Par exemple, une installation à trois niveaux possède trois fichiers DWG dans le package de dessin.
- Toutes les données d’un même niveau doivent être contenues dans un seul fichier DWG. Toute référence externe (xref) doit être liée au dessin parent.
- Le fichier DWG doit définir la ou les couches représentant la limite de ce niveau.
- Le DWG doit faire référence au même système de mesure et à la même unité de mesure que les autres fichiers DWG dans le package de dessin.
- Le fichier DWG doit être aligné lorsqu’il est empilé au-dessus d’un autre niveau à partir de la même installation.
Exigences relatives au calque DWG
Classes de caractéristiques
Une ou plusieurs couches DWG peuvent être mappées à une classe d'entités définie par l’utilisateur. Une instance de la fonctionnalité est créée à partir d’une entité sur la couche mappée. Par exemple, les couches DWG chaise, table et canapé sont mappées à une classe d'entités appelée mobilier. Une fonctionnalité de mobilier est créée pour chaque entité à partir des couches définies. En outre :
- Toutes les couches doivent être séparées pour représenter différents types de fonctionnalités de l’installation.
- Toutes les entités doivent se trouver à l’intérieur des limites du périmètre de niveau.
- Types d’entités AutoCAD pris en charge : TEXTE, MTEXTE, POINT, ARC, CERCLE, LIGNE, POLYLIGNE, ELLIPSE.
Propriétés de la classe d'entités
Les entités de texte qui se trouvent dans les limites d’une forme fermée peuvent être associées à cette fonctionnalité en tant que propriété. Par exemple, une classe d'entités de pièce peut avoir du texte qui décrit le nom de la pièce et un autre décrivant le type de pièce échantillon de package de dessin v2. En outre :
- Seules les entités TEXT et MTEXT sont associées à la fonctionnalité en tant que propriété. Tous les autres types d’entités sont ignorés.
- Le point de justification TEXT et MTEXT doit se trouver dans les limites de la forme fermée.
- Si plusieurs propriétés TEXT se trouvent dans les limites de la forme fermée et sont toutes deux mappées à une propriété, une propriété est sélectionnée de façon aléatoire.
Niveau de l’installation
Le fichier DWG pour chaque niveau doit contenir un calque pour définir le périmètre de ce niveau. Par exemple, si une installation contient deux niveaux, elle doit avoir deux fichiers DWG, chacun avec une couche qui définit le périmètre de ce niveau.
Quel que soit le nombre de dessins d’entités dans la couche de périmètre de niveau, le jeu de données d’installation résultant ne contient qu’une fonctionnalité de niveau pour chaque fichier DWG. En outre :
- Les périmètres des niveaux doivent être dessinés sous forme de POLYGONE, POLYLIGNE (fermée), CERCLE ou ELLIPSE (fermée).
- Les périmètres des niveaux peuvent se chevaucher, mais sont fusionnés dans une seule géométrie.
- La fonctionnalité de niveau qui en résulte doit être d’au moins 4 mètres carrés.
- La fonctionnalité de niveau qui en résulte ne doit pas être supérieure à 400 000 mètres carrés.
Si le calque contient plusieurs POLYLIGNES qui se chevauchent, celles-ci sont combinées en une seule caractéristique Niveau. Au contraire, si la couche contient plusieurs POLYLIGNES qui ne se chevauchent pas, la fonctionnalité de niveau qui en résulte a une représentation multi-polygonale.
Vous pouvez voir un exemple de couche de périmètre de niveau en tant que GROS$
couche dans l’exemple de package de dessin v2.
Exigences du fichier manifeste
Le package de dessin doit contenir un fichier manifeste au niveau de la racine et le fichier doit être nommé manifest.json. Il décrit les fichiers DWG permettant au Service de conversion d’analyser leur contenu. Seuls les fichiers identifiés par le manifeste sont utilisés. Les fichiers qui se trouvent dans le package de dessin mais qui ne sont pas correctement répertoriés dans le manifeste sont ignorés.
Les chemins d’accès aux fichiers dans l’objet buildingLevels du fichier manifeste doivent être relatifs à la racine du package de dessin. Le nom du fichier DWG doit correspondre exactement au nom du niveau du bâtiment. Par exemple, un fichier DWG pour le niveau « Sous-sol » est Basement.dwg. Un fichier DWG pour le niveau 2 est nommé level_2.dwg. Les noms de fichiers ne peuvent pas contenir d’espaces. Vous pouvez utiliser un trait de soulignement pour remplacer les espaces.
Bien que des exigences s’appliquent à l’utilisation des objets de manifeste, tous les objets ne sont pas obligatoires. Le tableau suivant présente les objets requis et optionnels pour le Service de conversion 2023-03-01-préversion.
Notes
Sauf indication contraire, toutes les propriétés de chaîne sont limitées à un millier de caractères.
Fichier JSON de manifeste
Propriété | Type | Requis | Description |
---|---|---|---|
version |
string | VRAI | Version du schéma du manifeste. Version actuelle « 2.0 » |
buildingLevels |
Objet BuildingLevels | VRAI | Spécifie les niveaux de l’installation et les fichiers contenant la conception des niveaux. |
featureClasses |
Tableau d’objets featureClass | TRUE | Liste des objets de classe d’entités qui définissent la façon dont les couches sont lues à partir du fichier de dessin DWG. |
georeference |
Objet georeference | FALSE | Contient des informations géographiques numériques pour le dessin du bâtiment. |
facilityName |
string | FALSE | Le nom de l’installation. |
Les sections suivantes détaillent les exigences pour chaque objet.
buildingLevels
Propriété | Type | Requise | Description |
---|---|---|---|
dwgLayers |
Tableau de chaînes | TRUE | Noms des couches qui définissent le profil extérieur de l’installation. |
levels |
Tableau d’objets de niveau | TRUE | Un niveau fait référence à un étage unique dans l’installation définie dans un fichier DWG, la hauteur de chaque niveau et l’ordre vertical dans lequel ils apparaissent. |
niveau
Propriété | Type | Requise | Description |
---|---|---|---|
levelName |
string | TRUE | Nom du niveau. Par exemple : Étage 1, Hall, Zone de stationnement bleue ou Sous-sol. |
ordinal |
entier | TRUE | Définit l’ordre vertical des niveaux. Toutes les valeurs ordinal doivent être uniques au sein d’une installation. |
filename |
string | TRUE | Le chemin d’accès et le nom du fichier DWG représentant le niveau dans une installation. Le chemin d’accès doit être relatif à la racine du package de dessin. |
verticalExtent |
nombre | FALSE | Hauteur verticale (épaisseur) de l’étage au plafond du niveau en mètres. |
featureClass
Propriété | Type | Requise | Description |
---|---|---|---|
dwgLayers |
Tableau de chaînes | TRUE | Le nom de chaque couche qui définit la classe d'entités. Chaque entité sur la couche spécifiée est convertie en une instance de la classe d'entités. Le nom dwgLayer à partir duquel une fonctionnalité est convertie se termine en tant que propriété de cette fonctionnalité. |
featureClassName |
String | TRUE | Le nom de la classe d'entités. Les exemples typiques incluent la salle, l’espace de travail ou le mur. |
featureClassProperties |
Tableau d’objets featureClassProperty | FAUX | Spécifie les couches de texte dans le fichier DWG associé à la fonctionnalité en tant que propriété. Par exemple, une étiquette qui se trouve à l’intérieur des limites d’un espace, comme un numéro de pièce. |
featureClassProperty
Propriété | Type | Requise | Description |
---|---|---|---|
dwgLayers |
Tableau de chaînes | TRUE | Le nom de chaque couche qui définit la propriété de classe d'entités. Chaque entité sur la couche spécifiée est convertie en propriété. Seules les entités DWG TEXT et MTEXT sont converties en propriétés. Toutes les autres entités sont ignorées. |
featureClassPropertyName |
String | TRUE | Le nom de la propriété de classe d'entités, par exemple spaceName ou spaceUseType. |
georeference
Propriété | Type | Requise | Description |
---|---|---|---|
lat |
nombre | TRUE | Représentation décimale de la latitude en degrés à l’origine du dessin du bâtiment. Les coordonnées de l’origine doivent être conformes à la norme WGS84 Web Mercator (EPSG:3857). |
lon |
nombre | TRUE | Représentation décimale de la longitude en degrés à l’origine du dessin du bâtiment. Les coordonnées de l’origine doivent être conformes à la norme WGS84 Web Mercator (EPSG:3857). |
angle |
nombre | TRUE | Angle, exprimé en degrés, entre le nord réel et l’axe vertical (Y) du dessin dans le sens des aiguilles d’une montre. |
Exemple de manifeste du package de dessin
Le code JSON de cet exemple montre le fichier manifeste pour l’exemple de package de dessin. Accédez à l'exemple de package de dessin v2 pour Azure Maps Creator sur GitHub pour télécharger l’intégralité du package.
Fichier manifeste
{
"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"
}
Étapes suivantes
Pour obtenir un guide sur comment préparer votre package de dessin, consultez le guide du package de dessin.