En la ingeniería estructural moderna, la eficiencia no solo se trata de calcular rápido, sino de conectar nuestras herramientas. La API de Midas Gen NX nos permite romper algunas limitaciones de las librerías internas del programa, como por ejemplo si en el programa no se encuentra un espectro normativo en específico como el nuevo espectro de la AIS 100-24 (Nueva propuesta de norma sismorresistente de Colombia), El espectro de la NCh433 (Chile) o el de la E030 (Perú), podemos agregarlos de forma rápida desde Python con la API de midas, incluso para los espectros de período variable, podríamos extraer los períodos fundamentales de la estructura de forma automática y generar el espectro.
1. Entendiendo la interacción API - Python
La API de Midas funciona bajo una arquitectura REST. Imagina que Midas es un servidor que espera órdenes. Python es el mensajero que lleva esas órdenes en un formato llamado JSON (un formato de datos independiente del lenguaje de programación). Ahora bien, para construir ese puente entre nuestro código por ejemplo en Python o Visual básic y Midas Gen NX, debemos tener en cuenta tres pilares fundamentales:
Pilar 1. La Autenticación (Midas-API-Key y URL).
Para que Midas sepa que tiene permiso de recibir órdenes de tu script, usamos una MAPI-Key (Llave de acceso) única encontrada en el menú Apps > API Settings de Midas Gen NX.
BASE_URL = "https://moa-engineers.midasit.com:443/gen"
MAPI_KEY= "xxxxxxxxxxxxxxxxxxxx"

Imagen 1: Configuración de acceso a la API
Imagen 2: Configuración de acceso a la API
Luego estos datos debemos guardarlos para incluirlos en el archivo JASON como se muestra a continuación:
url = f"{BASE_URL}/db/spfc"
headers = {
"MAPI-Key": MAPI_KEY,
"Content-Type": "application/json"
}
Pilar 2: La Dirección y el Método (Endpoints).
La API es una serie de "puertas" llamadas Endpoints. Cada una sirve para algo específico: Una puerta para definir materiales; Una puerta para crear nodos; otra para las cargas.
En Python, usamos la librería “requests” para tocar esas puertas y la estructura para cada acción que deseemos realizar, se puede encontrar en el manual de la API en el siguiente link: https://support.midasuser.com/hc/ko/articles/33016922742937-MIDAS-API-Online-Manual.
Como ejemplo podemos ver la siguiente imagen donde se especifican los Endpoints para crear nodos, elementos o incluso asignar cargas como por ejemplo los espectros definidos por usuario.
Imagen 3: Endpoint para espectro definido por el usuario.
Aquí es donde se hace muy importante el manual online, pues es el "diccionario" dónde buscaremos el Endpoint.
El endpoint “/db/spfc” , se usa para ingresar un espectro de respuesta, si queremos ingresar un espectro definido por el usuario, podemos ver la configuración básica y ejemplos que nos brinda el manual en línea haciendo click en la opción seleccionada en la imagen anterior.
Pilar 3: El Mensaje (JSON).
Python no le envía un archivo de Excel a Midas; le envía un archivo JSON que se conforma principalmente de una lista de "Clave: Valor".
Por ejemplo, si deseamos crear el espectro de la normativa chilena, el mensaje que debemos construir se vería algo así:
payload =
"Assign": {
"ID": {
"NAME": f"{RSName}",
"iTYPE": 1,
"iMETHOD": 0,
"SCALE": 1,
"GRAV": 9.806,
"DRATIO": 0.05,
"DESC": "",
"aFUNC": RSNCH433
}
}
}
Donde la definición de cada campo, el formato admitido (e.g. Texto, número con decimales, Entero, Booleano, etc) y un ejemplo, se especifica en el mismo manual en la sección JSON Schema y Examples. Como ejemplo se hace a continuación una aclaración de los campos en el formato para el archivo JASON y la interfaz del programa.
Este mensaje se le envía a Midas por medio del formato JSON y la función “requests”, que de forma general sería como se muestra a continuación:
requests.post(f"{BASE_URL} /db/spfc", headers=headers, data=json.dumps(payload))
Midas recibe este "paquete", lo desempaqueta y crea el espectro.
- Ejemplo de aplicación:
Para descargar algunos ejemplos de aplicación, registrarse con los datos: