Would you like to sign out?

Select Country

  • Afghanistan English
  • Albania English
  • Algeria English
  • American Samoa English
  • Andorra English
  • Angola English
  • Anguilla English
  • Antarctica English
  • Antigua and Barbuda English
  • Argentina Español
  • Armenia English
  • Aruba English
  • Australia English
  • Austria English
  • Azerbaijan English
  • Bahamas English
  • Bahrain English
  • Bangladesh English
  • Barbados English
  • Belarus English
  • Belgium English
  • Belize English
  • Benin English
  • Bermuda English
  • Bhutan English
  • Bolivia Español
  • Bosnia and Herzegovina English
  • Botswana English
  • Bouvet Island English
  • Brazil Español
  • British Indian Ocean Territory English
  • British Virgin Islands English
  • Brunei English
  • Bulgaria English
  • Burkina Faso English
  • Burundi English
  • Cambodia English
  • Cameroon English
  • Canada English
  • Cape Verde English
  • Caribbean Netherlands English
  • Cayman Islands English
  • Central African Republic English
  • Chad English
  • Chile Español
  • Christmas Island English
  • Cocos (Keeling) Islands English
  • Colombia Español
  • Comoros English
  • Congo English
  • Cook Islands English
  • Costa Rica Español
  • Côte d’Ivoire English
  • Croatia English
  • Cuba Español
  • Curaçao English
  • Cyprus English
  • Czech Republic English
  • Democratic Republic of the Congo English
  • Denmark English
  • Djibouti English
  • Dominica English
  • Dominican Republic Español
  • Ecuador Español
  • Egypt English
  • El Salvador Español
  • Equatorial Guinea English
  • Eritrea English
  • Estonia English
  • Ethiopia English
  • Falkland Islands English
  • Faroe Islands English
  • Fiji English
  • Finland English
  • France English
  • French Guiana Español
  • French Polynesia English
  • French Southern Territories English
  • Gabon English
  • Gambia English
  • Georgia English
  • Germany English
  • Ghana English
  • Gibraltar English
  • Greece English
  • Greenland English
  • Grenada English
  • Guadeloupe Español
  • Guam English
  • Guatemala Español
  • Guernsey English
  • Guinea English
  • Guinea-Bissau English
  • Guyana English
  • Haiti Español
  • Heard Island and McDonald Islands English
  • Honduras Español
  • Hong Kong English
  • Hungary English
  • Iceland English
  • India English
  • Indonesia English
  • Iran English
  • Iraq English
  • Ireland English
  • Isle of Man English
  • Israel English
  • Italy English
  • Jamaica English
  • Japan 日本語
  • Jersey English
  • Jordan English
  • Kazakhstan English
  • Kenya English
  • Kiribati English
  • South Korea 한국어
  • Kuwait English
  • Kyrgyzstan English
  • Laos English
  • Latvia English
  • Lebanon English
  • Lesotho English
  • Liberia English
  • Libya English
  • Liechtenstein English
  • Lithuania English
  • Luxembourg English
  • Macau English
  • Madagascar English
  • Malawi English
  • Malaysia English
  • Maldives English
  • Mali English
  • Malta English
  • Marshall Islands English
  • Martinique Español
  • Mauritania English
  • Mauritius English
  • Mayotte English
  • Mexico Español
  • Micronesia English
  • Moldova English
  • Monaco English
  • Mongolia English
  • Montenegro English
  • Montserrat English
  • Morocco English
  • Mozambique English
  • Myanmar English
  • Namibia English
  • Nauru English
  • Nepal English
  • Netherlands English
  • New Caledonia English
  • New Zealand English
  • Nicaragua Español
  • Niger English
  • Nigeria English
  • Niue English
  • Norfolk Island English
  • Northern Mariana Islands English
  • Norway English
  • Oman English
  • Pakistan English
  • Palau English
  • Palestine English
  • Panama Español
  • Papua New Guinea English
  • Paraguay Español
  • Peru Español
  • Philippines English
  • Pitcairn Islands English
  • Poland English
  • Portugal Español
  • Puerto Rico Español
  • Qatar English
  • Réunion English
  • Romania English
  • Russia English
  • Rwanda English
  • Saint Barthélemy Español
  • Saint Helena English
  • Saint Kitts and Nevis English
  • Saint Lucia English
  • Saint Martin Español
  • Saint Pierre and Miquelon English
  • Saint Vincent and the Grenadines English
  • Samoa English
  • San Marino English
  • Sao Tome and Principe English
  • Saudi Arabia English
  • Senegal English
  • Serbia English
  • Seychelles English
  • Sierra Leone English
  • Singapore English
  • Sint Maarten English
  • Slovakia English
  • Slovenia English
  • Solomon Islands English
  • Somalia English
  • South Africa English
  • South Georgia English
  • South Sudan English
  • Spain Español
  • Sri Lanka English
  • Sudan English
  • Suriname English
  • Svalbard and Jan Mayen English
  • Eswatini English
  • Sweden English
  • Switzerland English
  • Syria English
  • Taiwan English
  • Tajikistan English
  • Tanzania English
  • Thailand English
  • Togo English
  • Tokelau English
  • Tonga English
  • Trinidad and Tobago English
  • Tunisia English
  • Turkey English
  • Turkmenistan English
  • Turks and Caicos Islands English
  • Tuvalu English
  • U.S. Virgin Islands English
  • Uganda English
  • Ukraine English
  • United Arab Emirates English
  • United Kingdom English
  • United States of America English
  • U.S. Minor Outlying Islands English
  • Uruguay Español
  • Uzbekistan English
  • Vanuatu English
  • Vatican City English
  • Venezuela Español
  • Vietnam English
  • Wallis and Futuna English
  • Western Sahara English
  • Yemen English
  • Zambia English
  • Zimbabwe English
  • Åland Islands English
  • East Timor English
  • Netherlands Antilles English
  • Serbia and Montenegro English
  • North Macedonia English
  • Timor-Leste English

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

Apr 28, 2026 1:15:07 AM

 

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.

Susbcribe
MIDAS Newsletter

Thank you, See you soon!
Share
Comentarios
Sigue explorando ideas de ingeniería