Requisitos de pacote do desenho

Você pode converter pacotes de desenho carregados em dados de mapa usando o serviço de Conversão do Azure Maps. Este artigo descreve os requisitos do pacote de desenho para a API de conversão. Para exibir um pacote de exemplo, você pode baixar o pacote de desenho de exemplo.

Pré-requisitos

O pacote de desenho inclui desenhos guardados em formato DWG, que é o formato de ficheiro nativo para o software AutoCAD® da Autodesk.

Você pode escolher qualquer software CAD para produzir os desenhos no pacote de desenho.

O serviço de conversão converte o pacote de desenho em dados de mapa. O serviço de conversão funciona com o formato AC1032de ficheiro DWG do AutoCAD.

Glossário de termos

Para uma referência fácil, aqui estão alguns termos e definições que são importantes enquanto você lê este artigo.

Termo Definição
Camada Uma camada DWG do AutoCAD a partir do ficheiro de desenho.
Entity Uma entidade DWG do AutoCAD a partir do ficheiro de desenho.
Xref Um ficheiro em formato de ficheiro DWG do AutoCAD, anexado ao desenho principal como referência externa.
Nível Uma área de um edifício em uma elevação definida. Por exemplo, o andar de um prédio.
Funcionalidade Uma instância de um objeto produzido a partir do serviço de conversão que combina uma geometria com informações de metadados.
Classes de recursos Um modelo comum para recursos. Por exemplo, uma unidade é uma classe de recurso e um escritório é um recurso.

Estrutura do pacote de desenho

Um pacote de desenho é um arquivo .zip que contém os seguintes arquivos:

  • Arquivos DWG no formato de arquivo DWG do AutoCAD.
  • Um arquivo manifest.json que descreve os arquivos DWG no pacote de desenho.

O pacote de desenho deve ser compactado em um único arquivo morto, com a extensão .zip. Os arquivos DWG podem ser organizados de qualquer forma dentro do pacote, mas o arquivo de manifesto deve viver no diretório raiz do pacote compactado. As próximas seções detalham os requisitos para os arquivos DWG, arquivo de manifesto e o conteúdo desses arquivos. Para exibir um pacote de exemplo, você pode baixar o pacote de desenho de exemplo.

Processo de conversão de ficheiros DWG

O serviço de conversão faz o seguinte em cada arquivo DWG:

  • Extrai classes de recursos:
    • Níveis
    • Units
    • Zonas
    • Vagas
    • Paredes
    • Penetrações verticais
  • Produz um recurso Facility .
  • Produz um conjunto mínimo de recursos de categoria padrão referenciados por outros recursos:
    • quarto
    • Estrutura
    • parede
    • abertura.door
    • zona
    • facilidade

Requisitos do arquivo DWG

É necessário um único ficheiro DWG para cada nível da instalação. Todos os dados de um único nível devem estar contidos em um único arquivo DWG. Quaisquer referências externas (xrefs) devem ser vinculadas ao desenho pai. Por exemplo, uma instalação com três níveis tem três arquivos DWG no pacote de desenho.

Cada ficheiro DWG deve cumprir os seguintes requisitos:

  • O ficheiro DWG deve definir as camadas Exterior e Unidade. Opcionalmente, ele pode definir as seguintes camadas: Wall, Door, UnitLabel, Zone e ZoneLabel.
  • O arquivo DWG não pode conter recursos de vários níveis.
  • O arquivo DWG não pode conter recursos de vários recursos.
  • O DWG deve fazer referência ao mesmo sistema de medição e unidade de medida que outros ficheiros DWG no pacote de desenho.

Requisitos da camada DWG

Cada camada DWG deve aderir às seguintes regras:

  • Uma camada deve conter exclusivamente características de uma única classe. Por exemplo, unidades e paredes não podem estar na mesma camada.
  • Uma única classe de recursos pode ser representada por várias camadas.
  • Polígonos autocruzados são permitidos, mas são automaticamente reparados. Quando eles são reparados, o serviço de conversão emite um aviso. É aconselhável inspecionar manualmente os resultados reparados, porque eles podem não corresponder aos resultados esperados.
  • Cada camada tem uma lista suportada de tipos de entidade. Qualquer outro tipo de entidade em uma camada será ignorado. Por exemplo, entidades de texto não são suportadas na camada de parede.

A tabela a seguir descreve os tipos de entidade suportados e os recursos de mapa convertidos para cada camada. Se uma camada contiver tipos de entidade sem suporte, o serviço de Conversão ignorará essas entidades.

Camada Tipos de entidades Recursos convertidos
Exterior POLYGON, POLYLINE (fechado), CIRCLE ou ELLIPSE (fechado) Níveis
Unidade POLYGON, POLYLINE (fechado), CIRCLE ou ELLIPSE (fechado) Unidades e penetrações verticais
Parede POLYGON, POLYLINE (fechado), CIRCLE, ou ELLIPSE (fechado), Estruturas
Porta POLÍGONO, POLILINHA, LINHA, ARCO CIRCULAR, CÍRCULO Vagas
Zona POLYGON, POLYLINE (fechado), CIRCLE ou ELLIPSE (fechado) Zonas
Rótulo unitário Texto (linha única) Não aplicável. Essa camada só pode adicionar propriedades aos recursos da unidade a partir da camada Unidades. Para obter mais informações, consulte a camada UnitLabel.
ZoneLabel Texto (linha única) Não aplicável. Essa camada só pode adicionar propriedades aos recursos de zona a partir do ZonesLayer. Para obter mais informações, consulte a camada ZoneLabel.

As seções a seguir descrevem os requisitos para cada camada.

Camada exterior

O arquivo DWG para cada nível deve conter uma camada para definir o perímetro desse nível. Esta camada é referida como a camada exterior . Por exemplo, se um recurso contém dois níveis, então ele precisa ter dois arquivos DWG, com uma camada externa para cada arquivo.

Não importa quantos desenhos de entidade estejam na camada externa, o conjunto de dados de instalação resultante contém apenas um recurso de nível para cada arquivo DWG. Além disso:

  • Os exteriores devem ser desenhados como POLYGON, POLYLINE (fechado), CIRCLE ou ELLIPSE (fechado).
  • Os exteriores podem sobrepor-se, mas são dissolvidos numa única geometria.
  • O recurso de nível resultante deve ter pelo menos 4 metros quadrados.
  • A característica de nível resultante não deve ser maior de 400.000 metros quadrados.

Se a camada contiver várias PolyLines sobrepostas, elas serão dissolvidas em um único recurso de nível. Em vez disso, se a camada contiver várias PolyLines não sobrepostas, o recurso Level resultante terá uma representação multipoligonal.

Você pode ver um exemplo da camada Exterior como a camada de contorno no pacote de desenho de amostra.

Camada de unidade

O arquivo DWG para cada nível define uma camada contendo unidades. As unidades são espaços navegáveis no edifício, como escritórios, corredores, escadas e elevadores. Se a propriedade estiver definida, as VerticalPenetrationCategory unidades navegáveis que abrangem vários níveis, como elevadores e escadas, são convertidas em recursos de penetração vertical. Características de penetração vertical que se sobrepõem umas às outras são atribuídas a um setid.

A camada Unidades deve cumprir os seguintes requisitos:

  • As unidades devem ser desenhadas como POLYGON, POLYLINE (fechado), CIRCLE ou ELLIPSE (fechado).
  • As unidades devem situar-se dentro dos limites do perímetro exterior da instalação.
  • As unidades não devem sobrepor-se parcialmente.
  • As unidades não devem conter qualquer geometria de auto-intersecção.

Nomeie uma unidade criando um objeto de texto na camada UnitLabel e coloque o objeto dentro dos limites da unidade. Para obter mais informações, consulte a camada UnitLabel.

Você pode ver um exemplo da camada Unidades no pacote de desenho de exemplo.

Camada de parede

O arquivo DWG para cada nível pode conter uma camada que define as extensões físicas de paredes, colunas e outras estruturas de edifícios.

  • As paredes devem ser desenhadas como POLYGON, POLYLINE (fechado), CIRCLE ou ELLIPSE (fechado).
  • A camada ou camadas de parede devem conter apenas geometria interpretada como estrutura de edifício.

Você pode ver um exemplo da camada Paredes no pacote de desenho de exemplo.

Camada de porta

Pode incluir uma camada DWG que contenha portas. Cada porta deve sobrepor-se ao bordo de uma unidade a partir da camada Unidade.

As aberturas de porta em um conjunto de dados do Azure Maps são representadas como um segmento de linha única que se sobrepõe a vários limites de unidade. As imagens a seguir mostram como o Azure Maps converte a geometria da camada de porta em recursos de abertura em um conjunto de dados.

Four graphics that show the steps to generate openings

Camada de zona

O arquivo DWG para cada nível pode conter uma camada de zona que define as extensões físicas das zonas. Uma zona é um espaço não navegável que pode ser nomeado e renderizado. As zonas podem abranger vários níveis e são agrupadas usando a propriedade zoneSetId.

  • As zonas devem ser desenhadas como POLYGON, POLYLINE (fechado) ou ELLIPSE (fechado).
  • As zonas podem sobrepor-se.
  • As zonas podem cair dentro ou fora do perímetro exterior da instalação.

Nomeie uma zona criando um objeto de texto na camada ZoneLabel e colocando o objeto de texto dentro dos limites da zona. Para obter mais informações, consulte Camada ZoneLabel.

Você pode ver um exemplo da camada Zona no pacote de desenho de exemplo.

Camada UnitLabel

O arquivo DWG para cada nível pode conter uma camada UnitLabel. A camada UnitLabel adiciona uma propriedade name às unidades extraídas da camada Unit. As unidades com uma propriedade name podem ter mais detalhes especificados no arquivo de manifesto.

  • Os rótulos de unidade devem ser entidades de texto de linha única.
  • As etiquetas das unidades devem situar-se inteiramente dentro dos limites da sua unidade.
  • As unidades não devem conter várias entidades de texto na camada UnitLabel.

Você pode ver um exemplo da camada UnitLabel no pacote de desenho de amostra.

Camada ZoneLabel

O arquivo DWG para cada nível pode conter uma camada ZoneLabel. Esta camada adiciona uma propriedade name às zonas extraídas da camada Zone. As zonas com uma propriedade name podem ter mais detalhes especificados no arquivo de manifesto.

  • Os rótulos de zonas devem ser entidades de texto de linha única.
  • Os rótulos das zonas devem estar dentro dos limites da sua zona.
  • As zonas não devem conter várias entidades de texto na camada ZoneLabel.

Você pode ver um exemplo da camada ZoneLabel no pacote de desenho de exemplo.

Requisitos de arquivo de manifesto

A pasta zip deve conter um arquivo de manifesto no nível raiz do diretório e o arquivo deve ser chamado manifest.json. Ele descreve os arquivos DWG para permitir que o serviço de conversão analise seu conteúdo. Apenas os ficheiros identificados pelo manifesto são ingeridos. Os arquivos que estão na pasta zip, mas não estão listados corretamente no manifesto, são ignorados.

Embora haja requisitos quando você usa os objetos de manifesto, nem todos os objetos são necessários. A tabela a seguir mostra os objetos necessários e opcionais para a versão 1.1 do serviço de conversão.

Nota

A menos que especificado de outra forma, todas as propriedades com um tipo de propriedade string permitem mil caracteres.

Objeto Obrigatório Description
version verdadeiro Versão do esquema de manifesto. Atualmente, apenas a versão 1.1 é suportada.
directoryInfo verdadeiro Descreve as informações geográficas e de contato da instalação. Ele também pode ser usado para descrever informações geográficas e de contato de um ocupante.
buildingLevels verdadeiro Especifica os níveis dos edifícios e os arquivos que contêm o projeto dos níveis.
georeference verdadeiro Contém informações geográficas numéricas para o desenho da instalação.
dwgLayers verdadeiro Lista os nomes das camadas, e cada camada lista os nomes de seus próprios recursos.
unitProperties false Pode ser usado para inserir mais metadados para os recursos da unidade.
zoneProperties false Pode ser usado para inserir mais metadados para os recursos da zona.

As próximas seções detalham os requisitos para cada objeto.

directoryInfo

Propriedade Tipo Necessário Description
name string verdadeiro Nome do edifício.
streetAddress string false Endereço do edifício.
unit string false Unidade em edifício.
locality string false Nome de uma cidade, vila, área, bairro ou região.
adminDivisions Matriz JSON de cadeias de caracteres false Uma matriz que contém designações de endereço. Por exemplo: (País, Estado) Use os códigos de país ISO 3166 e os códigos de estado/território ISO 3166-2.
postalCode string false O código de classificação de e-mail.
hoursOfOperation string false Adere ao formato OSM Opening Hours .
phone string false Número de telefone associado ao edifício.
website string false Website associado ao edifício.
nonPublic booleano false Sinalizador especificando se o edifício está aberto ao público.
anchorLatitude numérico false Latitude de uma âncora de instalação (pino).
anchorLongitude numérico false Longitude de uma âncora de instalação (pino).
anchorHeightAboveSeaLevel numérico false Altura do piso térreo da instalação acima do nível do mar, em metros.
defaultLevelVerticalExtent numérico false Altura (espessura) padrão de um nível deste recurso para usar quando um nível é verticalExtent indefinido.

buildingLevels

O buildingLevels objeto contém uma matriz JSON de níveis de edifícios.

Propriedade Tipo Necessário Description
levelName string verdadeiro Nome do nível descritivo. Por exemplo: Piso 1, Lobby, Estacionamento Azul ou Cave.
ordinal integer verdadeiro Determina a ordem vertical dos níveis. Cada instalação deve ter um nível com ordinal 0.
heightAboveFacilityAnchor numérico false Altura do nível acima da âncora em metros.
verticalExtent numérico false Altura do chão ao teto (espessura) do nível em metros.
filename string verdadeiro Caminho do sistema de ficheiros do desenho CAD para um nível de edifício. Deve ser relativo à raiz do ficheiro zip do edifício.

georeference

Propriedade Tipo Necessário Description
lat numérico verdadeiro Representação decimal de graus de latitude na origem do desenho da instalação. As coordenadas de origem devem estar em WGS84 Web Mercator (EPSG:3857).
lon numérico verdadeiro Representação decimal de graus de longitude na origem do desenho da instalação. As coordenadas de origem devem estar em WGS84 Web Mercator (EPSG:3857).
angle numérico verdadeiro O ângulo no sentido horário, em graus, entre o norte verdadeiro e o eixo vertical (Y) do desenho.

dwgLayers

Propriedade Tipo Necessário Description
exterior matriz de cadeias verdadeiro Nomes das camadas que definem o perfil exterior do edifício.
unit matriz de cadeias false Nomes de camadas que definem unidades.
wall matriz de cadeias false Nomes de camadas que definem paredes.
door matriz de cadeias false Nomes de camadas que definem portas.
unitLabel matriz de cadeias false Nomes de camadas que definem nomes de unidades.
zone matriz de cadeias false Nomes de camadas que definem zonas.
zoneLabel matriz de cadeias false Nomes de camadas que definem nomes de zonas.

unitProperties

O unitProperties objeto contém uma matriz JSON de propriedades de unidade.

Propriedade Tipo Necessário Description
unitName string verdadeiro Nome da unidade a associar a este unitProperty registo. Esse registro só é válido quando uma correspondência unitName de rótulo é encontrada nas unitLabel camadas.
categoryName string false Finalidade da unidade. Uma lista de valores que os estilos de renderização fornecidos podem usar está documentada em categories.json.
occupants matriz de objetos directoryInfo false Lista de ocupantes da unidade.
nameAlt string false Nome alternativo da unidade.
nameSubtitle string false Subtítulo da unidade.
addressRoomNumber string false Número do quarto, unidade, apartamento ou suíte da unidade.
verticalPenetrationCategory string false Quando essa propriedade é definida, o recurso resultante é uma penetração vertical (VRT) em vez de uma unidade. Você pode usar penetrações verticais para ir para outros recursos de penetração vertical nos níveis acima ou abaixo dela. Penetração vertical é um nome de categoria . Se essa propriedade for definida, ela será substituída categoryName por verticalPenetrationCategory.
verticalPenetrationDirection string false Se verticalPenetrationCategory estiver definido, opcionalmente defina a direção válida da viagem. Os valores permitidos são: lowToHigh, , highToLowboth, e closed. O valor predefinido é both. O valor diferencia maiúsculas de minúsculas.
nonPublic booleano false Indica se a unidade está aberta ao público.
isRoutable booleano false Quando essa propriedade é definida como false, você não pode ir para ou através da unidade. O valor predefinido é true.
isOpenArea booleano false Permite que o agente de navegação entre na unidade sem a necessidade de uma abertura anexada à unidade. Por padrão, esse valor é definido como true para unidades sem aberturas e false para unidades com aberturas. A configuração isOpenArea manual para false em uma unidade sem aberturas resulta em um aviso, porque a unidade resultante não é acessível por um agente de navegação.

zoneProperties

O zoneProperties objeto contém uma matriz JSON de propriedades de zona.

Propriedade Tipo Necessário Description
zoneName string verdadeiro Nome da zona a ser associada ao zoneProperty registro. Esse registro só é válido quando uma correspondência zoneName de rótulo é encontrada na zoneLabel camada da zona.
categoryName string false Finalidade da zona. Uma lista de valores que os estilos de renderização fornecidos podem usar está documentada em categories.json.
zoneNameAlt string false Nome alternativo da zona.
zoneNameSubtitle string false Legenda da zona.
zoneSetId string false Defina ID para estabelecer uma relação entre várias zonas para que possam ser consultadas ou selecionadas como um grupo. Por exemplo, zonas que abrangem vários níveis.

Exemplo de manifesto do pacote de desenho

A seguir está o arquivo de manifesto para o pacote de desenho de exemplo. Vá para o pacote de desenho de exemplo para o Azure Maps Creator no GitHub para baixar o pacote inteiro.

Arquivo de manifesto

{
    "version": "1.1", 
    "directoryInfo": { 
        "name": "Contoso Building", 
        "streetAddress": "Contoso Way", 
        "unit": "1", 
        "locality": "Contoso eastside", 
        "postalCode": "98052", 
        "adminDivisions": [ 
            "Contoso city", 
            "Contoso state", 
            "Contoso country" 
        ], 
        "hoursOfOperation": "Mo-Fr 08:00-17:00 open", 
        "phone": "1 (425) 555-1234", 
        "website": "www.contoso.com", 
        "nonPublic": false, 
        "anchorLatitude": 47.636152, 
        "anchorLongitude": -122.132600, 
        "anchorHeightAboveSeaLevel": 1000, 
        "defaultLevelVerticalExtent": 3  
    }, 
    "buildingLevels": { 
        "levels": [ 
            { 
                "levelName": "Basement", 
                "ordinal": -1, 
                "filename": "./Basement.dwg" 
            }, { 
                "levelName": "Ground", 
                "ordinal": 0, 
                "verticalExtent": 5, 
                "filename": "./Ground.dwg" 
            }, { 
                "levelName": "Level 2", 
                "ordinal": 1, 
                "heightAboveFacilityAnchor": 3.5, 
                "filename": "./Level_2.dwg" 
            } 
        ] 
    }, 
    "georeference": { 
        "lat": 47.636152, 
        "lon": -122.132600, 
        "angle": 0 
    }, 
    "dwgLayers": { 
        "exterior": [ 
            "OUTLINE", "WINDOWS" 
        ], 
        "unit": [ 
            "UNITS" 
        ], 
        "wall": [ 
            "WALLS" 
        ], 
        "door": [ 
            "DOORS" 
        ], 
        "unitLabel": [ 
            "UNITLABELS" 
        ], 
        "zone": [ 
            "ZONES" 
        ], 
        "zoneLabel": [ 
            "ZONELABELS" 
        ] 
    }, 
    "unitProperties": [ 
        { 
            "unitName": "B01", 
            "categoryName": "room.office", 
            "occupants": [ 
                { 
                    "name": "Joe's Office", 
                    "phone": "1 (425) 555-1234" 
                } 
            ], 
            "nameAlt": "Basement01", 
            "nameSubtitle": "01", 
            "addressRoomNumber": "B01", 
            "nonPublic": true, 
            "isRoutable": true, 
            "isOpenArea": true 
        }, 
        { 
            "unitName": "B02" 
        }, 
        { 
            "unitName": "B05", 
            "categoryName": "room.office" 
        }, 
        { 
            "unitName": "STRB01", 
            "verticalPenetrationCategory": "verticalPenetration.stairs", 
            "verticalPenetrationDirection": "both" 
        }, 
        { 
            "unitName": "ELVB01", 
            "verticalPenetrationCategory": "verticalPenetration.elevator", 
            "verticalPenetrationDirection": "high_to_low" 
        } 
    ], 
    "zoneProperties": 
    [ 
        { 
            "zoneName": "WifiB01", 
            "categoryName": "Zone", 
            "zoneNameAlt": "MyZone", 
            "zoneNameSubtitle": "Wifi", 
            "zoneSetId": "1234" 
        }, 
        { 
            "zoneName": "Wifi101",
            "categoryName": "Zone",
            "zoneNameAlt": "MyZone",
            "zoneNameSubtitle": "Wifi",
            "zoneSetId": "1234"
        }
    ]
}

Você pode converter pacotes de desenho carregados em dados de mapa usando o serviço de Conversão do Azure Maps. Este artigo descreve os requisitos do pacote de desenho para a API de conversão. Para exibir um pacote de exemplo, você pode baixar o pacote de desenho de exemplo v2.

Para obter um guia sobre como preparar seu pacote de desenho, consulte Guia do pacote de desenho.

Alterações e Revisões

  • Adicionado suporte para classes de recursos definidas pelo usuário.
  • Requisitos simplificados das camadas DWG.

Pré-requisitos

O pacote de desenho inclui desenhos guardados em formato DWG, que é o formato de ficheiro nativo para o software AutoCAD® da Autodesk.

Você pode escolher qualquer software CAD para produzir os desenhos no pacote de desenho.

O serviço de conversão converte o pacote de desenho em dados de mapa. O serviço de conversão funciona com o formato de ficheiro DWG AC1032 do AutoCAD.

Glossário de termos

Para facilitar a referência, aqui estão alguns termos e definições que são importantes enquanto você lê este artigo.

Termo Definição
Camada Uma camada DWG do AutoCAD a partir do ficheiro de desenho.
Entity Uma entidade DWG do AutoCAD a partir do ficheiro de desenho.
Xref Um ficheiro em formato de ficheiro DWG do AutoCAD, anexado ao desenho principal como referência externa.
Nível Uma área de uma instalação em uma elevação definida. Por exemplo, o piso de uma instalação.
Funcionalidade Uma instância de um objeto produzido a partir do serviço de conversão que combina uma geometria com informações de metadados.
Classes de recursos Um modelo comum para recursos.

Estrutura do pacote de desenho

Um pacote de desenho é um arquivo ZIP que contém os seguintes arquivos:

  • Arquivos DWG no formato de arquivo DWG do AutoCAD.
  • Um arquivo manifest.json que descreve os arquivos DWG no pacote de desenho.

O pacote de desenho deve ser compactado em um único arquivo morto, com a extensão .zip. Os arquivos DWG podem ser organizados de qualquer forma dentro do pacote de desenho, mas o arquivo de manifesto deve estar no diretório raiz. As próximas seções explicam o processo de conversão e os requisitos para os arquivos DWG e manifesto, e o conteúdo desses arquivos. Para exibir um pacote de exemplo, você pode baixar o pacote de desenho de exemplo v2.

Processo de conversão de ficheiros DWG

O serviço de Conversão do Azure Maps converte o(s) arquivo(s) DWG de um recurso em dados de mapeamento que representam um recurso e recursos de um recurso.

O serviço de Conversão do Azure Maps cria:

  • Recurso de instalação: O recurso de nível superior de uma instalação ao qual todos os níveis de uma instalação estão associados.
  • Características de nível: O recurso de um nível é criado para cada andar de uma instalação. Todos os recursos em um nível estão associados a um nível.
  • Recursos definidos pelo usuário: as camadas DWG são mapeadas para uma classe de recurso definida pelo usuário e se tornam instâncias da classe de recurso.

Requisitos do arquivo DWG

Cada ficheiro DWG deve cumprir estes requisitos:

  • O arquivo DWG não pode conter recursos de vários recursos.
  • O arquivo DWG não pode conter recursos de vários níveis. Por exemplo, uma instalação com três níveis tem três arquivos DWG no pacote de desenho.
  • Todos os dados de um único nível devem estar contidos em um único arquivo DWG. Quaisquer referências externas (xrefs) devem ser vinculadas ao desenho pai.
  • O ficheiro DWG deve definir a(s) camada(s) que representa(m) o limite desse nível.
  • O DWG deve fazer referência ao mesmo sistema de medição e unidade de medida que outros ficheiros DWG no pacote de desenho.
  • O arquivo DWG deve ser alinhado quando empilhado em cima de outro nível da mesma instalação.

Requisitos da camada DWG

Classes de recursos

Uma ou mais camadas(ões) DWG podem ser mapeadas para uma classe de recurso definida pelo usuário. Uma instância do recurso é criada a partir de uma entidade na camada mapeada. Por exemplo, as camadas DWG cadeira, mesa e sofá são mapeadas para uma classe de recurso chamada móveis. Um recurso de mobiliário é criado para cada entidade a partir das camadas definidas. Além disso:

  • Todas as camadas devem ser separadas para representar diferentes tipos de recursos da instalação.
  • Todas as entidades devem estar dentro dos limites do perímetro de nível.
  • Tipos de entidades AutoCAD suportados: TEXT, MTEXT, POINT, ARC, CIRCLE, LINE, POLYLINE, ELLIPSE.

Propriedades da classe de recurso

As entidades de texto que estão dentro dos limites de uma forma fechada podem ser associadas a esse recurso como uma propriedade. Por exemplo, uma classe de recurso de sala pode ter texto que descreve o nome da sala e outra o pacote de desenho de exemplo de tipo de sala v2. Além disso:

  • Somente as entidades TEXT e MTEXT são associadas ao recurso como uma propriedade. Todos os outros tipos de entidade são ignorados.
  • O ponto de justificação TEXT e MTEXT deve estar dentro dos limites da forma fechada.
  • Se mais de uma propriedade TEXT estiver dentro dos limites da forma fechada e ambas forem mapeadas para uma propriedade, uma será selecionada aleatoriamente.

Nível das instalações

O arquivo DWG para cada nível deve conter uma camada para definir o perímetro desse nível. Por exemplo, se um recurso contém dois níveis, ele precisa ter dois arquivos DWG, cada um com uma camada que define o perímetro desse nível.

Não importa quantos desenhos de entidade estejam na camada de perímetro de nível, o conjunto de dados de recurso resultante contém apenas um recurso de nível para cada arquivo DWG. Além disso:

  • Os perímetros de nível devem ser desenhados como POLYGON, POLYLINE (fechado), CIRCLE ou ELLIPSE (fechado).
  • Os perímetros de nível podem sobrepor-se, mas são dissolvidos numa geometria.
  • A característica de nível resultante deve ter pelo menos 4 metros quadrados.
  • O recurso de nível resultante não deve ser superior a 400.000 metros quadrados.

Se a camada contiver várias POLYLINES sobrepostas, elas serão combinadas em um único recurso de nível. Em vez disso, se a camada contiver várias POLYLINES não sobrepostas, o recurso Level resultante terá uma representação multipoligonal.

Você pode ver um exemplo da camada de perímetro Level como a GROS$ camada no pacote de desenho de amostra v2.

Requisitos de arquivo de manifesto

O pacote de desenho deve conter um arquivo de manifesto no nível raiz e o arquivo deve ser chamado manifest.json. Ele descreve os arquivos DWG permitindo que o serviço de conversão analise seu conteúdo. Apenas os ficheiros identificados pelo manifesto são utilizados. Os arquivos que estão no pacote de desenho, mas não estão listados corretamente no manifesto, são ignorados.

Os caminhos de arquivo no objeto buildingLevels do arquivo de manifesto devem ser relativos à raiz do pacote de desenho. O nome do arquivo DWG deve corresponder exatamente ao nome do nível do recurso. Por exemplo, um arquivo DWG para o nível "Basement" é Basement.dwg. Um arquivo DWG para o nível 2 é nomeado como level_2.dwg. Os nomes de arquivo não podem conter espaços, você pode usar um sublinhado para substituir quaisquer espaços.

Embora haja requisitos quando você usa os objetos de manifesto, nem todos os objetos são necessários. A tabela a seguir mostra os objetos necessários e opcionais para o serviço de conversão 2023-03-01-preview.

Nota

A menos que especificado de outra forma, todas as propriedades de cadeia de caracteres são limitadas a mil caracteres.

Arquivo JSON de manifesto

Propriedade Tipo Obrigatório Descrição
version string TRUE Versão do esquema de manifesto. Atualmente versão "2.0"
buildingLevels Objeto BuildingLevels TRUE Especifica os níveis do recurso e os arquivos que contêm o design dos níveis.
featureClasses Matriz de objetos featureClass TRUE Lista de objetos de classe de recurso que definem como as camadas são lidas a partir do arquivo de desenho DWG.
georeference Objeto de georreferência FALSE Contém informações geográficas numéricas para o desenho da instalação.    
facilityName string FALSE O nome da instalação.

As próximas seções detalham os requisitos para cada objeto.

edifícioNíveis

Propriedade Tipo Necessário Description
dwgLayers Matriz de cadeias de caracteres TRUE Nomes das camadas que definem o perfil exterior da instalação.
levels Matriz de objetos de nível TRUE Um nível refere-se a um piso único na instalação definido em um arquivo DWG, a altura de cada nível e a ordem vertical em que aparecem.

nível

Propriedade Tipo Necessário Description
levelName string TRUE O nome do nível. Por exemplo: Piso 1, Lobby, Estacionamento Azul ou Cave.
ordinal integer TRUE Define a ordem vertical dos níveis. Todos os ordinal valores devem ser únicos dentro de uma instalação.
filename string TRUE O caminho e o nome do arquivo DWG que representa o nível em um recurso. O caminho deve ser relativo à raiz do pacote de desenho. 
verticalExtent Número FALSE Altura vertical (espessura) do chão ao teto do nível em metros.

featureClass

Propriedade Tipo Necessário Description
dwgLayers Matriz de cadeias de caracteres TRUE O nome de cada camada que define a classe de recurso. Cada entidade na camada especificada é convertida em uma instância da classe de recurso. O dwgLayer nome do qual um recurso é convertido acaba como uma propriedade desse recurso.
featureClassName String TRUE O nome da classe de recurso. Exemplos típicos incluem sala, espaço de trabalho ou parede.
featureClassProperties Matriz de objetos featureClassProperty FALSE Especifica camadas de texto no arquivo DWG associado ao recurso como uma propriedade. Por exemplo, um rótulo que está dentro dos limites de um espaço, como um número de sala.

featureClassProperty

Propriedade Tipo Necessário Description
dwgLayers Matriz de cadeias de caracteres TRUE O nome de cada camada que define a propriedade de classe de recurso. Cada entidade na camada especificada é convertida em uma propriedade. Apenas as entidades DWG TEXT e MTEXT são convertidas em propriedades. Todas as outras entidades são ignoradas.
featureClassPropertyName String TRUE Nome da propriedade da classe de recurso, por exemplo, spaceName ou spaceUseType.

georreferência

Propriedade Tipo Necessário Description
lat Número TRUE Representação decimal de graus de latitude na origem do desenho da instalação. As coordenadas de origem devem estar em WGS84 Web Mercator (EPSG:3857).
lon Número TRUE Representação decimal de graus de longitude na origem do desenho da instalação. As coordenadas de origem devem estar em WGS84 Web Mercator (EPSG:3857).
angle Número TRUE O ângulo no sentido horário, em graus, entre o norte verdadeiro e o eixo vertical (Y) do desenho.

Exemplo de manifesto do pacote de desenho

O JSON neste exemplo mostra o arquivo de manifesto para o pacote de desenho de exemplo. Vá para o pacote de desenho de exemplo v2 para o Azure Maps Creator no GitHub para baixar o pacote inteiro.

Arquivo de manifesto

{
  "version": "2.0",
  "buildingLevels": {
    "dwgLayers": [
      "GROS$"
    ],
    "levels": [
      {
        "filename": "Ground.dwg",
        "levelName": "level 1",
        "ordinal": 0
      },
      {
        "filename": "Level_2.dwg",
        "levelName": "level 2",
        "ordinal": 1
      }
    ]
  },
  "georeference": {
    "lat": 47.63529901,
    "lon": -122.13355885,
    "angle": 0
  },
  "featureClasses": [
    {
      "featureClassName": "room",
      "dwgLayers": [
        "RM$"
      ],
      "featureClassProperties": [
        {
          "featureClassPropertyName": "name",
          "dwgLayers": [
            "A-IDEN-NUMR-EXST"
          ]
        },
        {
          "featureClassPropertyName": "roomType",
          "dwgLayers": [
            "A-IDEN-NAME-EXST"
          ]
        }
      ]
    },
    {
      "featureClassName": "wall",
      "dwgLayers": [
        "A-WALL-EXST",
        "A-WALL-CORE-EXST",
        "A-GLAZ-SILL-EXST",
        "A-GLAZ-SHEL-SILL-EXST",
        "A-GLAZ-SHEL-EXST",
        "A-GLAZ-EXST"
      ]
    },
    {
      "featureClassName": "workspace",
      "dwgLayers": [
        "A-BOMA"
      ]
    },
    {
      "featureClassName": "workspaceFurniture",
      "dwgLayers": [
        "A-FURN-SYTM-EXST"
      ]
    },
    {
      "featureClassName": "buildingFurniture",
      "dwgLayers": [
        "A-FURN-FREE-EXST"
      ]
    }
  ],
  "facilityName": "Contoso Building"
}

Próximos passos

Para obter um guia sobre como preparar seu pacote de desenho, consulte o guia do pacote de desenho.

Saiba mais lendo: