Blog | MIDASoft Latinoamérica

Automatización de Espectros Sísmicos con Midas API y Python.

Escrito por Fabio Andrés Tavera Yunda | Apr 27, 2026 4:15:07 PM

 

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.

 

  1. Ejemplo de aplicación:

Para descargar algunos ejemplos de aplicación, registrarse con los datos:

 

 

 ⚠️ Nota importante sobre los ejemplos de código: Todo el código Python y los ejemplos de aplicación mostrados a continuación se proporcionan únicamente con fines ilustrativos para enseñar cómo interactuar con nuestra API. El uso de estos ejemplos es responsabilidad exclusiva del usuario. MIDAS no se hace responsable de ningún fallo, daño o problema derivado de la implementación de estos ejemplos en sus propios proyectos o sistemas de producción. 

 

 

Referencias

 

  • Asociación Colombiana de Ingeniería Sísmica (AIS). (2024). AIS 100-24: Propuesta de Reglamento Colombiano de Construcción Sismo Resistente. Bogotá, Colombia: AIS
  • Instituto Nacional de Normalización (INN). (1996). NCh433.Of1996: Diseño Sísmico de Edificios (incluye Modificación de 2009 y Decreto Supremo n.º 61 de 2011). Santiago, Chile: INN.
  • Ministerio de Vivienda, Construcción y Saneamiento. (2018). Norma Técnica E.030: Diseño Sismorresistente. Reglamento Nacional de Edificaciones (RNE). Lima, Perú: SENCICO.
  • MIDAS IT. (2026). MIDAS API Online Manual: Response Spectrum Functions: https://support.midasuser.com/hc/ko/articles/33016922742937-MIDAS-API-Online-Manual.