Wymagania dotyczące pakietu do rysowania

Przekazane pakiety rysunkowe można przekonwertować na dane mapy przy użyciu usługi Azure Mapy Conversion. W tym artykule opisano wymagania dotyczące pakietu rysunkowego dla interfejsu API konwersji. Aby wyświetlić przykładowy pakiet, możesz pobrać przykładowy pakiet rysunku.

Wymagania wstępne

Pakiet rysunkowy zawiera rysunki zapisane w formacie DWG, który jest natywnym formatem pliku oprogramowania Autodesk AutoCAD®.

Możesz wybrać dowolne oprogramowanie CAD do tworzenia rysunków w pakiecie rysunkowym.

Usługa konwersji konwertuje pakiet rysunkowy na dane mapy. Usługa konwersji współpracuje z formatem AC1032pliku AUTOCAD DWG.

Słownik terminów

Aby uzyskać łatwe odwołanie, poniżej przedstawiono niektóre terminy i definicje, które są ważne podczas czytania tego artykułu.

Termin Definicja
Warstwa Warstwa USŁUGI DWG programu AutoCAD z pliku rysunkowego.
Jednostka Jednostka AutoCAD DWG z pliku rysunku.
Odnośnika Plik w formacie pliku AUTOCAD DWG dołączony do rysunku podstawowego jako odwołanie zewnętrzne.
Poziom Obszar budynku na ustawionej wysokości. Na przykład podłoga budynku.
Funkcja Wystąpienie obiektu utworzonego z usługi konwersji, które łączy geometrię z informacjami o metadanych.
Klasy funkcji Wspólna strategia dotycząca funkcji. Na przykład jednostka jest klasą cech, a biuro jest funkcją.

Struktura pakietu rysunku

Pakiet rysunkowy to archiwum zip zawierające następujące pliki:

  • Pliki DWG w formacie pliku DWG programu AutoCAD.
  • Plik manifest.json opisujący pliki DWG w pakiecie rysunkowym.

Pakiet rysunkowy musi być spakowany do pojedynczego pliku archiwum z rozszerzeniem zip. Pliki DWG można organizować w dowolny sposób wewnątrz pakietu, ale plik manifestu musi znajdować się w katalogu głównym spakowanego pakietu. W następnych sekcjach szczegółowo opisano wymagania dotyczące plików DWG, pliku manifestu i zawartości tych plików. Aby wyświetlić przykładowy pakiet, możesz pobrać przykładowy pakiet rysunkowy.

Proces konwersji plików DWG

Usługa konwersji wykonuje następujące czynności w każdym pliku DWG:

  • Wyodrębnia klasy funkcji:
    • Poziomy
    • Jednostki
    • Strefy
    • Otwory
    • Ściany
    • Penetracje w pionie
  • Tworzy funkcję obiektu.
  • Tworzy minimalny zestaw domyślnych funkcji kategorii, do których odwołuje się inne funkcje:
    • Pokojach
    • — struktura
    • Ściany
    • opening.door
    • strefa
    • Obiektu

Wymagania dotyczące plików DWG

Dla każdego poziomu obiektu wymagany jest pojedynczy plik DWG. Wszystkie dane pojedynczego poziomu muszą znajdować się w jednym pliku DWG. Wszystkie odwołania zewnętrzne (xrefs) muszą być powiązane z rysunkiem nadrzędnym. Na przykład obiekt z trzema poziomami zawiera trzy pliki DWG w pakiecie rysunku.

Każdy plik DWG musi spełniać następujące wymagania:

  • Plik DWG musi definiować warstwy Zewnętrzne i Jednostkowe . Opcjonalnie można zdefiniować następujące warstwy: Wall, Door, UnitLabel, Zone i ZoneLabel.
  • Plik DWG nie może zawierać funkcji z wielu poziomów.
  • Plik DWG nie może zawierać funkcji z wielu obiektów.
  • Grupa DWG musi odwoływać się do tego samego systemu pomiaru i jednostki miary co inne pliki DWG w pakiecie rysunkowym.

Wymagania dotyczące warstwy dwG

Każda warstwa DWG musi być zgodna z następującymi regułami:

  • Warstwa musi zawierać wyłącznie funkcje pojedynczej klasy. Na przykład jednostki i ściany nie mogą znajdować się w tej samej warstwie.
  • Pojedyncza klasa funkcji może być reprezentowana przez wiele warstw.
  • Dozwolone są samozabezpieczone wielokąty, ale są automatycznie naprawiane. Po naprawieniu usługa konwersji zgłasza ostrzeżenie. Zaleca się ręczne sprawdzenie naprawionych wyników, ponieważ mogą one nie być zgodne z oczekiwanym wynikiem.
  • Każda warstwa ma obsługiwaną listę typów jednostek. Wszystkie inne typy jednostek w warstwie zostaną zignorowane. Na przykład jednostki tekstowe nie są obsługiwane w warstwie ściany.

W poniższej tabeli przedstawiono obsługiwane typy jednostek i przekonwertowane funkcje mapy dla każdej warstwy. Jeśli warstwa zawiera nieobsługiwane typy jednostek, usługa konwersji ignoruje te jednostki.

Warstwa Typy jednostek Przekonwertowane funkcje
Zewnętrzne WIELOKĄT, WIELOKĄT (zamknięty), CIRCLE lub ELLIPSE (zamknięty) Poziomy
Jednostka WIELOKĄT, WIELOKĄT (zamknięty), CIRCLE lub ELLIPSE (zamknięty) Jednostki i penetracje pionowe
Ściany WIELOKĄT, WIELOKĄT (zamknięty), OKRĄG LUB WIELOKROPEK (zamknięty), Struktury
Drzwi WIELOKĄT, POLYLINE, LINE, CIRCULARARC, CIRCLE Otwory
Strefa WIELOKĄT, WIELOKĄT (zamknięty), CIRCLE lub ELLIPSE (zamknięty) Strefy
UnitLabel Tekst (pojedynczy wiersz) Nie dotyczy. Ta warstwa może dodawać właściwości tylko do funkcji jednostki z warstwy Units. Aby uzyskać więcej informacji, zobacz warstwę UnitLabel.
Etykieta strefy Tekst (pojedynczy wiersz) Nie dotyczy. Ta warstwa może dodawać właściwości tylko do funkcji strefy z poziomu warstwy ZonesLayer. Aby uzyskać więcej informacji, zobacz warstwę ZoneLabel.

W poniższych sekcjach opisano wymagania dotyczące każdej warstwy.

Warstwa zewnętrzna

Plik DWG dla każdego poziomu musi zawierać warstwę, aby zdefiniować obwód tego poziomu. Ta warstwa jest nazywana warstwą zewnętrzną. Jeśli na przykład obiekt zawiera dwa poziomy, musi mieć dwa pliki DWG z warstwą zewnętrzną dla każdego pliku.

Niezależnie od tego, ile rysunków jednostek znajduje się w warstwie zewnętrznej, wynikowy zestaw danych obiektów zawiera tylko jedną funkcję poziomu dla każdego pliku DWG. Dodatkowo:

  • Zewnętrzne elementy muszą być rysowane jako WIELOKĄT, POLYLINE (zamknięte), CIRCLE lub ELLIPSE (zamknięte).
  • Powierzchnie zewnętrzne mogą się nakładać, ale są rozpuszczane w jednej geometrii.
  • Wynikowa funkcja poziomu musi być co najmniej 4 metrów kwadratowych.
  • Wynikowa funkcja poziomu nie może być większa niż 400 000 metrów kwadratowych.

Jeśli warstwa zawiera wiele nakładających się funkcji PolyLines, zostaną one rozpuszczone w jedną funkcję poziomu. Zamiast tego, jeśli warstwa zawiera wiele nienakładających się linii poliliniowych, wynikowa funkcja poziomów ma reprezentację wielokątną.

Przykład warstwy zewnętrznej można zobaczyć jako warstwę konspektu w przykładowym pakiecie rysunkowym.

Warstwa jednostkowa

Plik DWG dla każdego poziomu definiuje warstwę zawierającą jednostki. Jednostki są miejscami nawigowalnymi w budynku, takimi jak biura, korytarze, schody i windy. VerticalPenetrationCategory Jeśli właściwość jest zdefiniowana, jednostki nawigacji obejmujące wiele poziomów, takich jak windy i schody, są konwertowane na funkcje penetracji pionowej. Do funkcji penetracji pionowej nakładających się na siebie przypisano jeden setidelement .

Warstwa Units powinna być zgodna z następującymi wymaganiami:

  • Jednostki muszą być rysowane jako POLYGON, POLYLINE (zamknięte), CIRCLE lub ELLIPSE (zamknięte).
  • Jednostki muszą znajdować się wewnątrz granic zewnętrznego obwodu obiektu.
  • Jednostki nie mogą się nakładać częściowo.
  • Jednostki nie mogą zawierać żadnej samozabezpieczonej geometrii.

Nadaj jednostce nazwę, tworząc obiekt tekstowy w warstwie UnitLabel, a następnie umieść obiekt wewnątrz granic jednostki. Aby uzyskać więcej informacji, zobacz warstwę UnitLabel.

Przykład warstwy Units można zobaczyć w przykładowym pakiecie rysunkowym.

Warstwa ściany

Plik DWG dla każdego poziomu może zawierać warstwę, która definiuje fizyczne zakresy ścian, kolumn i innej struktury budynku.

  • Ściany muszą być rysowane jako POLYGON, POLYLINE (zamknięte), CIRCLE lub ELLIPSE (zamknięte).
  • Warstwa lub warstwy ściany powinny zawierać tylko geometrię interpretowaną jako struktura budynku.

Przykład warstwy Ściany można zobaczyć w przykładowym pakiecie rysunkowym.

Warstwa drzwi

Możesz dołączyć warstwę DWG zawierającą drzwi. Każde drzwi musi nakładać się na krawędź jednostki z warstwy Jednostka.

Otwory drzwi w zestawie danych usługi Azure Mapy są reprezentowane jako pojedynczy segment, który nakłada się na wiele granic jednostek. Na poniższych obrazach pokazano, jak platforma Azure Mapy konwertuje geometrię warstwy drzwi na funkcje otwierania w zestawie danych.

Four graphics that show the steps to generate openings

Warstwa strefy

Plik DWG dla każdego poziomu może zawierać warstwę strefy, która definiuje fizyczne zakresy stref. Strefa to nienawigowalne miejsce, które można nazwać i renderować. Strefy mogą obejmować wiele poziomów i są grupowane razem przy użyciu właściwości zoneSetId.

  • Strefy muszą być rysowane jako POLYGON, POLYLINE (zamknięte) lub ELLIPSE (zamknięte).
  • Strefy mogą nakładać się na siebie.
  • Strefy mogą spaść wewnątrz lub na zewnątrz zewnętrznego obwodu obiektu.

Nazwij strefę, tworząc obiekt tekstowy w warstwie ZoneLabel i umieszczając obiekt tekstowy wewnątrz granic strefy. Aby uzyskać więcej informacji, zobacz warstwa ZoneLabel.

Przykład warstwy strefy można zobaczyć w przykładowym pakiecie rysunkowym.

Warstwa UnitLabel

Plik DWG dla każdego poziomu może zawierać warstwę UnitLabel. Warstwa UnitLabel dodaje właściwość name do jednostek wyodrębnionych z warstwy Jednostka. Jednostki z właściwością name mogą mieć więcej szczegółów określonych w pliku manifestu.

  • Etykiety jednostek muszą być jednostkami tekstu jednowierszowego.
  • Etykiety jednostek muszą znajdować się całkowicie wewnątrz granic jednostki.
  • Jednostki nie mogą zawierać wielu jednostek tekstowych w warstwie UnitLabel.

Przykład warstwy UnitLabel można zobaczyć w przykładowym pakiecie rysunkowym.

Warstwa ZoneLabel

Plik DWG dla każdego poziomu może zawierać warstwę ZoneLabel. Ta warstwa dodaje właściwość name do stref wyodrębnionych z warstwy Strefy. Strefy z właściwością name mogą mieć więcej szczegółów określonych w pliku manifestu.

  • Etykiety stref muszą być jednostkami tekstowymi jednowierszowymi.
  • Etykiety stref muszą mieścić się w granicach ich strefy.
  • Strefy nie mogą zawierać wielu jednostek tekstowych w warstwie ZoneLabel.

Przykład warstwy ZoneLabel można zobaczyć w przykładowym pakiecie rysunkowym.

Wymagania dotyczące pliku manifestu

Folder zip musi zawierać plik manifestu na poziomie głównym katalogu, a plik musi mieć nazwę manifest.json. Opisuje on pliki DWG, aby umożliwić usłudze konwersji analizowanie ich zawartości. Pozyskane są tylko pliki zidentyfikowane przez manifest. Pliki, które znajdują się w folderze zip, ale nie są poprawnie wymienione w manifeście, są ignorowane.

Chociaż istnieją wymagania dotyczące używania obiektów manifestu, nie wszystkie obiekty są wymagane. W poniższej tabeli przedstawiono wymagane i opcjonalne obiekty dla wersji 1.1 usługi konwersji.

Uwaga

O ile nie określono inaczej, wszystkie właściwości z typem właściwości ciągu zezwalają na 100 znaków.

Obiekt Wymagania opis
version true Wersja schematu manifestu. Obecnie obsługiwana jest tylko wersja 1.1.
directoryInfo true Przedstawia informacje geograficzne i kontaktowe obiektu. Można go również użyć do nakreślenia informacji geograficznych i kontaktowych użytkownika.
buildingLevels true Określa poziomy budynków i plików zawierających projekt poziomów.
georeference true Zawiera numeryczne informacje geograficzne dla rysunku obiektu.
dwgLayers true Wyświetla listę nazw warstw, a każda warstwa zawiera nazwy własnych funkcji.
unitProperties fałsz Może służyć do wstawiania większej liczby metadanych dla funkcji jednostki.
zoneProperties fałsz Może służyć do wstawiania większej liczby metadanych dla funkcji strefy.

W następnych sekcjach szczegółowo opisano wymagania dotyczące każdego obiektu.

directoryInfo

Właściwość Typ Wymagani opis
name string true Nazwa budynku.
streetAddress string fałsz Adres budynku.
unit string fałsz Jednostka w budynku.
locality string fałsz Nazwa miasta, miasta, obszaru, dzielnicy lub regionu.
adminDivisions Tablica ciągów w formacie JSON fałsz Tablica zawierająca oznaczenia adresów. Na przykład: (Kraj, Stan) Użyj kodów krajów ISO 3166 i kodów stanu/terytorium ISO 3166-2.
postalCode string fałsz Kod sortowania poczty.
hoursOfOperation string fałsz Jest zgodny z formatem godziny otwarcia OSM.
phone string fałsz Telefon numer skojarzony z budynkiem.
website string fałsz Witryna internetowa skojarzona z budynkiem.
nonPublic bool fałsz Flaga określająca, czy budynek jest otwarty dla publiczności.
anchorLatitude numeryczne fałsz Szerokość geograficzna kotwicy obiektu (pushpin).
anchorLongitude numeryczne fałsz Długość geograficzna kotwicy obiektu (pushpin).
anchorHeightAboveSeaLevel numeryczne fałsz Wysokość parteru obiektu nad poziomem morza, w metrach.
defaultLevelVerticalExtent Liczbowe fałsz Domyślna wysokość (grubość) poziomu tego obiektu do użycia, gdy poziom jest verticalExtent niezdefiniowany.

buildingLevels

Obiekt buildingLevels zawiera tablicę JSON poziomów budynków.

Właściwość Typ Wymagani opis
levelName string true Nazwa poziomu opisowego. Na przykład: Piętro 1, Lobby, Niebieski parking lub Piwnica.
ordinal integer true Określa kolejność poziomów w pionie. Każdy obiekt musi mieć poziom z porządkowym 0.
heightAboveFacilityAnchor numeryczne fałsz Wysokość poziomu powyżej kotwicy w metrach.
verticalExtent numeryczne fałsz Wysokość od podłogi do sufitu (grubość) poziomu w metrach.
filename string true Ścieżka systemu plików rysunku CAD dla poziomu budynku. Musi być względem katalogu głównego pliku zip budynku.

georeference

Właściwość Typ Wymagani opis
lat numeryczne true Reprezentacja dziesiętna stopni szerokości geograficznej na początku rysunku obiektu. Współrzędne źródła muszą znajdować się w WGS84 Web Mercator (EPSG:3857).
lon numeryczne true Reprezentacja dziesiętna długości geograficznej w miejscu rysunku obiektu. Współrzędne źródła muszą znajdować się w WGS84 Web Mercator (EPSG:3857).
angle numeryczne true Kąt zgodnie z ruchem wskazówek zegara, w stopniach, między prawdziwą północą a osią pionową rysunku (Y).

dwgLayers

Właściwość Typ Wymagani opis
exterior tablica ciągów true Nazwy warstw definiujących profil budynku zewnętrznego.
unit tablica ciągów fałsz Nazwy warstw definiujących jednostki.
wall tablica ciągów fałsz Nazwy warstw definiujących ściany.
door tablica ciągów fałsz Nazwy warstw definiujących drzwi.
unitLabel tablica ciągów fałsz Nazwy warstw definiujących nazwy jednostek.
zone tablica ciągów fałsz Nazwy warstw definiujących strefy.
zoneLabel tablica ciągów fałsz Nazwy warstw definiujących nazwy stref.

unitProperties

Obiekt unitProperties zawiera tablicę JSON właściwości jednostki.

Właściwość Typ Wymagani opis
unitName string true Nazwa jednostki do skojarzenia z tym unitProperty rekordem. Ten rekord jest prawidłowy tylko w przypadku znalezienia dopasowania unitName etykiety w warstwach unitLabel .
categoryName string fałsz Przeznaczenie lekcji. Lista wartości, z których mogą korzystać podane style renderowania, jest udokumentowana w pliku categories.json.
occupants tablica obiektów directoryInfo fałsz Lista osób, które znajdują się w jednostce.
nameAlt string fałsz Alternatywna nazwa jednostki.
nameSubtitle string fałsz Podtytuł jednostki.
addressRoomNumber string fałsz Pokój, jednostka, apartament lub numer apartamentu.
verticalPenetrationCategory string fałsz Gdy ta właściwość jest zdefiniowana, wynikowa funkcja jest penetracją pionową (VRT), a nie jednostką. Możesz użyć penetracji pionowej, aby przejść do innych funkcji penetracji pionowej na poziomach powyżej lub poniżej. Penetracja pionowa to nazwa kategorii . Jeśli ta właściwość jest zdefiniowana categoryName , właściwość jest zastępowana elementem verticalPenetrationCategory.
verticalPenetrationDirection string fałsz Jeśli verticalPenetrationCategory jest zdefiniowana, opcjonalnie zdefiniuj prawidłowy kierunek podróży. Dozwolone wartości to: lowToHigh, , highToLowbothi closed. Wartość domyślna to both. Wartość jest uwzględniana w wielkości liter.
nonPublic bool fałsz Wskazuje, czy jednostka jest otwarta dla publicznej wersji.
isRoutable bool fałsz Gdy ta właściwość jest ustawiona na false, nie można przejść do lekcji ani za jej pośrednictwem. Wartość domyślna to true.
isOpenArea bool fałsz Umożliwia agentowi nawigowania po wejściu do jednostki bez konieczności otwierania dołączonego do lekcji. Domyślnie ta wartość jest ustawiana dla true jednostek bez otworów i false dla jednostek z otworami. Ręczne ustawienie isOpenArea na false wartość w jednostce bez otwierania powoduje wyświetlenie ostrzeżenia, ponieważ wynikowa jednostka nie jest osiągalna przez agenta nawigacji.

zoneProperties

Obiekt zoneProperties zawiera tablicę JSON właściwości strefy.

Właściwość Typ Wymagani opis
Nazwa_strefy string true Nazwa strefy do skojarzenia z rekordem zoneProperty . Ten rekord jest prawidłowy tylko w przypadku znalezienia pasującej zoneName etykiety w zoneLabel warstwie strefy.
Categoryname string fałsz Przeznaczenie strefy. Lista wartości, z których mogą korzystać podane style renderowania, jest udokumentowana w pliku categories.json.
zoneNameAlt string fałsz Alternatywna nazwa strefy.
zoneNameSubtitle string fałsz Podtytuł strefy.
zoneSetId string fałsz Ustaw identyfikator, aby ustanowić relację między wieloma strefami, aby można było wykonywać zapytania lub wybierać je jako grupę. Na przykład strefy obejmujące wiele poziomów.

Przykładowy manifest pakietu rysunkowego

Poniżej znajduje się plik manifestu dla przykładowego pakietu rysunkowego. Przejdź do przykładowego pakietu rysunkowego dla usługi Azure Mapy Creator w witrynie GitHub, aby pobrać cały pakiet.

Plik manifestu

{
    "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"
        }
    ]
}

Przekazane pakiety rysunkowe można przekonwertować na dane mapy przy użyciu usługi Azure Mapy Conversion. W tym artykule opisano wymagania dotyczące pakietu rysunkowego dla interfejsu API konwersji. Aby wyświetlić przykładowy pakiet, możesz pobrać przykładowy pakiet rysunkowy w wersji 2.

Aby zapoznać się z przewodnikiem dotyczącym przygotowywania pakietu rysunkowego, zobacz Przewodnik po pakiecie rysunku.

Zmiany i poprawki

  • Dodano obsługę klas funkcji zdefiniowanych przez użytkownika.
  • Uproszczone wymagania dotyczące warstw usługi DWG.

Wymagania wstępne

Pakiet rysunkowy zawiera rysunki zapisane w formacie DWG, który jest natywnym formatem pliku oprogramowania Autodesk AutoCAD®.

Możesz wybrać dowolne oprogramowanie CAD do tworzenia rysunków w pakiecie rysunkowym.

Usługa konwersji konwertuje pakiet rysunkowy na dane mapy. Usługa konwersji współpracuje z formatem pliku AUTOCAD DWG AC1032.

Słownik terminów

Aby uzyskać łatwe odwołanie, poniżej przedstawiono niektóre terminy i definicje, które są ważne podczas czytania tego artykułu.

Termin Definicja
Warstwa Warstwa USŁUGI DWG programu AutoCAD z pliku rysunkowego.
Jednostka Jednostka AutoCAD DWG z pliku rysunku.
Odnośnika Plik w formacie pliku AUTOCAD DWG dołączony do rysunku podstawowego jako odwołanie zewnętrzne.
Poziom Obszar obiektu na ustalonej wysokości. Na przykład podłoga obiektu.
Funkcja Wystąpienie obiektu utworzonego z usługi konwersji, które łączy geometrię z informacjami o metadanych.
Klasy funkcji Wspólna strategia dotycząca funkcji.

Struktura pakietu rysunku

Pakiet rysunkowy to archiwum ZIP zawierające następujące pliki:

  • Pliki DWG w formacie pliku DWG programu AutoCAD.
  • Plik manifest.json opisujący pliki DWG w pakiecie rysunkowym.

Pakiet rysunkowy musi być skompresowany do pojedynczego pliku archiwum z rozszerzeniem zip. Pliki DWG można organizować w dowolny sposób wewnątrz pakietu rysunku, ale plik manifestu musi znajdować się w katalogu głównym. W następnych sekcjach opisano proces konwersji i wymagania dotyczące plików DWG i manifestu oraz zawartość tych plików. Aby wyświetlić przykładowy pakiet, możesz pobrać przykładowy pakiet rysunkowy w wersji 2.

Proces konwersji plików DWG

Usługa konwersji usługi Azure Mapy konwertuje pliki DWG obiektu na mapowanie danych reprezentujących obiekt i funkcje obiektu.

Usługa Azure Mapy Conversion tworzy:

  • Funkcja obiektu: funkcja najwyższego poziomu obiektu, z którą są skojarzone wszystkie poziomy obiektu.
  • Funkcje na poziomie: jedna funkcja na poziomie jest tworzona dla każdego piętra obiektu. Wszystkie funkcje na poziomie są skojarzone z poziomem.
  • Funkcje zdefiniowane przez użytkownika: warstwy DWG są mapowane na klasę funkcji zdefiniowaną przez użytkownika i stają się wystąpieniami klasy funkcji.

Wymagania dotyczące plików DWG

Każdy plik DWG musi spełniać następujące wymagania:

  • Plik DWG nie może zawierać funkcji z wielu obiektów.
  • Plik DWG nie może zawierać funkcji z wielu poziomów. Na przykład obiekt z trzema poziomami zawiera trzy pliki DWG w pakiecie rysunku.
  • Wszystkie dane pojedynczego poziomu muszą znajdować się w jednym pliku DWG. Wszystkie odwołania zewnętrzne (xrefs) muszą być powiązane z rysunkiem nadrzędnym.
  • Plik DWG musi definiować warstwy reprezentujące granicę tego poziomu.
  • Grupa DWG musi odwoływać się do tego samego systemu pomiaru i jednostki miary co inne pliki DWG w pakiecie rysunkowym.
  • Plik DWG musi być wyrównany w przypadku stosu na innym poziomie z tego samego obiektu.

Wymagania dotyczące warstwy dwG

Klasy funkcji

Co najmniej jedna warstwa DWG może zostać zamapowana na klasę funkcji zdefiniowaną przez użytkownika. Jedno wystąpienie funkcji jest tworzone na podstawie jednostki na mapowanej warstwie. Na przykład warstwy DWG krzesło, stół i kanapa są mapowane na klasę cech o nazwie meble. Funkcja mebli jest tworzona dla każdej jednostki ze zdefiniowanych warstw. Dodatkowo:

  • Wszystkie warstwy powinny być oddzielone, aby reprezentować różne typy cech obiektu.
  • Wszystkie jednostki muszą należeć do granic obwodu poziomu.
  • Obsługiwane typy jednostek AutoCAD: TEXT, MTEXT, POINT, ARC, CIRCLE, LINE, POLYLINE, ELLIPSE.

Właściwości klasy funkcji

Jednostki tekstowe, które mieszczą się w granicach zamkniętego kształtu, mogą być skojarzone z tą funkcją jako właściwością. Na przykład klasa funkcji pokoju może zawierać tekst opisujący nazwę pokoju i inny przykładowy pakiet rysunkowy typu pokój w wersji 2. Dodatkowo:

  • Tylko jednostki TEXT i MTEXT są skojarzone z tą funkcją jako właściwością. Wszystkie inne typy jednostek są ignorowane.
  • Punkt uzasadnienia TEXT i MTEXT musi mieścić się w granicach zamkniętego kształtu.
  • Jeśli więcej niż jedna właściwość TEXT znajduje się w granicach zamkniętego kształtu, a obie są mapowane na jedną właściwość, jest wybierana losowo.

Poziom obiektu

Plik DWG dla każdego poziomu musi zawierać warstwę, aby zdefiniować obwód tego poziomu. Jeśli na przykład obiekt zawiera dwa poziomy, musi mieć dwa pliki DWG, z których każda ma warstwę definiującą obwód tego poziomu.

Niezależnie od tego, ile rysunków jednostek znajduje się w warstwie obwodowej na poziomie, wynikowy zestaw danych obiektów zawiera tylko jedną funkcję poziomu dla każdego pliku DWG. Dodatkowo:

  • Obwody poziome muszą być rysowane jako POLYGON, POLYLINE (zamknięte), CIRCLE lub ELLIPSE (zamknięte).
  • Obwody poziome mogą się nakładać, ale są rozpuszczane w jednej geometrii.
  • Wynikowa funkcja poziomu musi być co najmniej 4 metrów kwadratowych.
  • Wynikowa funkcja poziomu nie może być większa niż 400 000 metrów kwadratowych.

Jeśli warstwa zawiera wiele nakładających się funkcji POLYLINES, są one łączone w pojedynczą funkcję poziomu. Zamiast tego, jeśli warstwa zawiera wiele nienalewnych linii poliliniowych, wynikowa funkcja poziomów ma reprezentację wielokątną.

Przykład warstwy obwodowej Poziom można zobaczyć jako warstwę GROS$ w przykładowym pakiecie rysunkowym w wersji 2.

Wymagania dotyczące pliku manifestu

Pakiet rysunkowy musi zawierać plik manifestu na poziomie głównym, a plik musi mieć nazwę manifest.json. Opisuje on pliki DWG umożliwiające usłudze konwersji analizowanie ich zawartości. Używane są tylko pliki zidentyfikowane przez manifest. Pliki, które znajdują się w pakiecie rysunku, ale nie są poprawnie wymienione w manifeście, są ignorowane.

Ścieżki plików w obiekcie buildingLevels pliku manifestu muszą być względem katalogu głównego pakietu rysunku. Nazwa pliku DWG musi być dokładnie zgodna z nazwą poziomu obiektu. Na przykład plik DWG dla poziomu "Piwnica" to Basement.dwg. Plik DWG dla poziomu 2 ma nazwę level_2.dwg. Nazwy plików nie mogą zawierać spacji. Możesz użyć podkreślenia, aby zamienić spacje.

Chociaż istnieją wymagania dotyczące używania obiektów manifestu, nie wszystkie obiekty są wymagane. W poniższej tabeli przedstawiono wymagane i opcjonalne obiekty dla usługi konwersji 2023-03-01-preview.

Uwaga

O ile nie określono inaczej, wszystkie właściwości ciągu są ograniczone do tysiąca znaków.

Plik JSON manifestu

Właściwość Typ Wymagania Opis
version string PRAWDA Wersja schematu manifestu. Obecnie wersja "2.0"
buildingLevels BuildingLevels , obiekt PRAWDA Określa poziomy obiektu i pliki zawierające projekt poziomów.
featureClasses Tablica obiektów featureClass PRAWDA Lista obiektów klasy cech definiujących sposób odczytywania warstw z pliku rysunkowego DWG.
georeference Obiekt georeferencji FAŁSZ Zawiera numeryczne informacje geograficzne dla rysunku obiektu.    
facilityName string FAŁSZ Nazwa obiektu.

W następnych sekcjach szczegółowo opisano wymagania dotyczące każdego obiektu.

buildingLevels

Właściwość Typ Wymagani opis
dwgLayers Tablica ciągów PRAWDA Nazwy warstw, które definiują zewnętrzny profil obiektu.
levels Tablica obiektów poziomów PRAWDA Poziom odnosi się do unikatowej podłogi w obiekcie zdefiniowanym w pliku DWG, wysokości każdego poziomu i kolejności pionowej, w której się pojawiają.

poziom

Właściwość Typ Wymagani opis
levelName string PRAWDA Nazwa poziomu. Na przykład: Piętro 1, Lobby, Niebieski parking lub Piwnica.
ordinal integer PRAWDA Definiuje kolejność poziomów w pionie. Wszystkie ordinal wartości muszą być unikatowe w obiekcie.
filename string PRAWDA Ścieżka i nazwa pliku DWG reprezentującego poziom w obiekcie. Ścieżka musi być względna względem katalogu głównego pakietu rysunkowego. 
verticalExtent numer FAŁSZ Wysokość pionowa od podłogi do sufitu (grubość) poziomu w metrach.

featureClass

Właściwość Typ Wymagani opis
dwgLayers Tablica ciągów PRAWDA Nazwa każdej warstwy definiującej klasę cech. Każda jednostka w określonej warstwie jest konwertowana na wystąpienie klasy cech. dwgLayer Nazwa, z której jest konwertowana funkcja, kończy się właściwością tej funkcji.
featureClassName Ciąg PRAWDA Nazwa klasy funkcji. Typowe przykłady obejmują pokój, obszar roboczy lub ścianę.
featureClassProperties Tablica obiektów featureClassProperty FAŁSZ Określa warstwy tekstowe w pliku DWG skojarzone z funkcją jako właściwość. Na przykład etykieta, która znajduje się wewnątrz granic przestrzeni, takiej jak numer pokoju.

featureClassProperty

Właściwość Typ Wymagani opis
dwgLayers Tablica ciągów PRAWDA Nazwa każdej warstwy definiującej właściwość klasy cech. Każda jednostka w określonej warstwie jest konwertowana na właściwość. Tylko jednostki DWG TEXT i MTEXT są konwertowane na właściwości. Wszystkie inne jednostki są ignorowane.
featureClassPropertyName Ciąg PRAWDA Nazwa właściwości klasy funkcji, na przykład spaceName lub spaceUseType.

georeferencja

Właściwość Typ Wymagani opis
lat numer PRAWDA Reprezentacja dziesiętna stopni szerokości geograficznej na początku rysunku obiektu. Współrzędne pochodzenia muszą znajdować się w WGS84 Web Mercator (EPSG:3857).
lon numer PRAWDA Reprezentacja dziesiętna długości geograficznej w miejscu rysunku obiektu. Współrzędne pochodzenia muszą znajdować się w WGS84 Web Mercator (EPSG:3857).
angle numer PRAWDA Kąt zgodnie z ruchem wskazówek zegara, w stopniach, między prawdziwą północą a osią pionową rysunku (Y).

Przykładowy manifest pakietu rysunkowego

W tym przykładzie kod JSON przedstawia plik manifestu dla przykładowego pakietu rysunku. Przejdź do przykładowego pakietu rysunkowego w wersji 2 dla usługi Azure Mapy Creator w witrynie GitHub, aby pobrać cały pakiet.

Plik manifestu

{
  "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"
}

Następne kroki

Aby zapoznać się z przewodnikiem dotyczącym przygotowywania pakietu rysunkowego, zobacz przewodnik po pakiecie rysunkowym.

Dowiedz się więcej, czytając: