Exigences du package de dessin

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.

Four graphics that show the steps to generate openings

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 Obligatoire 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 Obligatoire 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 Obligatoire 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 Obligatoire 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 Obligatoire 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 Obligatoire 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 Obligatoire 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 Obligatoire 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 Obligatoire 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 Obligatoire 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 Obligatoire 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.

Pour en savoir plus, consultez :