O Geo-Zone-Tool disponibiliza uma API baseada em GraphQL que permite consultar dados de zonas de neve, vento e sismo diretamente a partir de aplicações próprias, scripts ou fluxos de cálculo, sem necessidade de abrir a interface web.
Introdução
A API pode ser utilizada de três formas. Para Python e C# estão disponíveis bibliotecas cliente prontas a usar que tratam automaticamente da autenticação, construção de consultas e processamento de respostas. Escreve uma chamada de função tipificada na sua linguagem e recebe um objeto de dados estruturado como resposta. Em alternativa, pode enviar consultas GraphQL diretamente para o endpoint HTTPS, independentemente da linguagem de programação ou plataforma utilizada.
Documentação e Recursos
A documentação completa da API, com explorador de esquema interativo, consultas disponíveis e exemplos de pedidos, pode ser encontrada na Documentação da API.
Autenticação
Algumas consultas, como a listagem de normas e zonas de carga disponíveis de um país, podem ser utilizadas sem autenticação. Para a consulta de valores de carga calculados de um local específico, é necessário um token de API associado ao seu pacote Geo-Zone Tool. Este token corresponde à chave de API e é descrito na secção Gestão de Chaves.
Por cada consulta de carga, o contingente é reduzido em uma unidade. Para poder realizar consultas de carga sem restrições, necessita de um pacote Geo-Zonen-Tool.
Início Rápido (Python)
De seguida, mostra-se como obter dados de zonas de carga com a biblioteca Python. Instale primeiro a biblioteca cliente:
pip install dlubal.api.geo-zone-tool
Para a consulta de valores de carga concretos, é necessário um token de API. O exemplo seguinte determina a carga de neve segundo a DIN EN 1991-1-3 para um local em Munique. Para tal, estão atualmente disponíveis os tipos de carga SNOW, WIND, SEISMIC e TORNADO:
from dlubal.api import geo_zone_tool
from dlubal.api.geo_zone_tool import LoadZoneType, Language
gzt = geo_zone_tool.GeoZoneTool("")
result = gzt.get_load_zone_characteristics(
#parâmetros necessários
address="45.985,14.734", #endereço ou coordenadas (latitude, longitude)
load_zone_type=LoadZoneType.SNOW, #WIND SNOW SEISMIC TORNADO
#parâmetros opcionais
# standard="EN 1991-1-3",
# annex="Germany",
# layer_id=1,
# language=Language.EN
)
#print(result)
print(result.geo_location.city)
for chars in result.characteristics:
print(f"{chars.standard} / {chars.annex}")
zone = chars.zone_characteristics
print(f" Zona: {zone.zone.value}")
for c in zone.characteristics:
print(f" {c.name} = {c.calculated_value}")
A resposta contém o local resolvido, a zona de carga de neve atribuída e o valor característico s_k em kN/m². Sem parâmetros opcionais, é utilizado o mapa atual para o endereço selecionado. A estrutura consistente da resposta permite utilizar o mesmo código também para cargas de vento e sismo.
Munich
EN 1991-1-3 / DIN EN 1991-1-3
Zona: 1a*
s_k = 1.15