Idea Statica
  • Aço
  • Betão
  • Apoio e aprendizagem
  • Preços
  • Empresa
  • Visão geral do aço
  • Design de conexão
  • Conceção dos membros
  • Conceção paramétrica
  • Estudos de casos de aço
  • Vista geral do concreto
  • Conceção da ancoragem
  • Estudos de casos concretos
  • Centro de apoio
  • E-learning e certificação
  • Blog
  • Transferências e licenças
  • Planos
  • Ferramenta gratuita da comunidade
  • Clientes empresariais
  • Estudantes e educadores
  • Sobre nós
  • Contacto
  • Investigação e desenvolvimento
  • Revendedores autorizados
  • Conheça os nossos clientes
  • Aço
    Visão geral do açoDesign de conexãoConceção dos membrosConceção paramétricaEstudos de casos de aço
  • Betão
    Vista geral do concretoConceção da ancoragemEstudos de casos concretos
  • Apoio e aprendizagem
    Centro de apoioE-learning e certificaçãoBlogTransferências e licenças
  • Preços
    PlanosFerramenta gratuita da comunidadeClientes empresariaisEstudantes e educadores
  • Empresa
    Sobre nósContactoInvestigação e desenvolvimentoRevendedores autorizadosConheça os nossos clientes
Teste de 14 Dias
Teste de 14 Dias

Subscreva a nossa newsletter

Empresa

  • Sobre nós
  • Parcerias
  • Carreiras
  • Tecnologia patenteada para engenheiros estruturais

Recursos

  • Projetos de clientes
  • Casos de estudo
  • IDEA StatiCa Connection Library
  • Livros de verificação

Legal

  • IDEA StatiCa CONTRATO DE LICENÇA DE UTILIZADOR FINAL
  • Política de privacidade global
  • Termos de Serviço – IDEA StatiCa Viewer
  • Licenciamento

Ajuda

  • Contato
  • Pedido de cotação
  • Revendedores
  • Downloads
FacebookInstagramLinkedInYouTube

© IDEA StatiCa 2009-2026

Confiado e utilizado em todo o mundo por engenheiros, fabricantes e consultores.

Centro de SuporteTutoriaisComo começar com a API - Importação em lote de combinações 02
Como começar com a API - Importação em lote de combinações 02
SteelConnection designTutorialsConnectionIDEA Open Model (API)

Como começar com a API - Importação em lote de combinações 02

Este artigo também está disponível em
ENCZDEESFRITPTNLHUROKRPLTHTRVIZH
Traduzido por IA do inglês

O objetivo do tutorial é importar vários casos de carga numa ligação existente.

Primeiros passos

Recomendamos que consulte o tutorial Como começar com a API - Básicos 01, que ensina sobre a API e como configurar o ambiente.

Ficheiro de ligação 

Primeiro, crie uma junta de duas secções transversais ocas RHS 300/200/8 e altere os parâmetros de acordo com as imagens seguintes.

Agora, vá ao separador Developer e guarde-o como modelo com o nome tutorial 02.contemp.  Iremos utilizá-lo no próximo tutorial.

Volte ao separador Design, clique com o botão direito em Operações  / Eliminar Tudo, e guarde este ficheiro vazio com o nome tutorial 02 - empty.ideaCon. 

Folha Excel com combinações de carga

Como passo seguinte, prepare uma folha Excel com as cargas que pretende importar para o ficheiro .ideaCon. Pode descarregá-la no final desta página.

Utilize exatamente os mesmos nomes das colunas que são usados no script Python.

Cliente Python

Execute o "IdeaStatiCa.ConnectionRestApi.exe" no CMD dentro da pasta correta do IDEA StatiCa e abra a ferramenta IDE da sua preferência.

  • Crie um novo ficheiro e importe os pacotes que permitirão o uso do cálculo e a ligação com o URL do localhost. 

Código fonte:

## Import of API package
from enum import member # Python library to improve code readability by replacing strings with meaningful names
from openpyxl import load_workbook # Python library to read/write Excel
import ideastatica_connection_api.connection_api_service_attacher as connection_api_service_attacher
from ideastatica_connection_api.models.con_load_effect import ConLoadEffect
from ideastatica_connection_api.models.con_load_effect_member_load import ConLoadEffectMemberLoad
from ideastatica_connection_api.models.con_load_effect_position_enum import ConLoadEffectPositionEnum
from ideastatica_connection_api.models.con_load_effect_section_load import ConLoadEffectSectionLoad

  • Configure o registo através da variável "baseUrl", que irá aceder ao seu localhost. No segundo passo, associe o caminho absoluto do seu ficheiro IDEA StatiCa Connection.

Código fonte:

## Configure logging
baseUrl = "http://localhost:5000"
## Absolute path into a folder with your python script and connection module
project_file_path = r"C:\Users\*username*\Documents\IDEA\API\Tutorial 02\tutorial 02 - empty.ideaCon"

  • Associe o cliente a um serviço já em execução. Utilize o bloco try/except - uma vez que o bloco try gera um erro, o bloco except será executado. Na primeira fase, é necessário abrir o projeto e encontrar o ID do projeto, que é único para cada projeto IDEA StatiCa. Ao executar o script, pode ler o caminho impresso, o ID único (1), o número de elementos associados (2) e o número atual de cargas (3).

Código fonte:

# Create a client attached to an already running service
with connection_api_service_attacher.ConnectionApiServiceAttacher(baseUrl).create_api_client() as api_client:

    try:

       ## Open the project
       print("Opening project %s" % project_file_path)
       #api_client.project.active_project_id  - ID of opened project
       openedProject = api_client.project.open_project_from_filepath(project_file_path)
       #openedProject.connections = [  {Con1}, {Con2}, {Con3} ....      ]
       firstConId = openedProject.connections[0].id
       activeProjectId = api_client.project.active_project_id
       print("Active project ID: %s" % activeProjectId, firstConId)
       #get members in project
       members = api_client.member.get_members(activeProjectId, firstConId)
       sum= len(members)
       print("Number of members in the project:", sum)
       #get number of current load effects in the joint
       loads = api_client.load_effect.get_load_effects(activeProjectId, firstConId)
       nr = len(loads)
       print("Number of current loads in the project:", loads[nr-1].id)

  • Abra a folha Excel e leia o número de linhas com cargas. 

Código fonte:   

 #open Excel sheet
       excel_file = r"C:\Users\*username*\Documents\IDEA\API\Tutorial 02\tutorial 02 - loads.xlsx"
       workbook = load_workbook(excel_file)
       sheet = workbook.active
       #get the number of rows in the Excel sheet
       rowCount = sheet.max_row
       print("Number of new rows with loads:", rowCount-1)

  •  Inicie um ciclo para detetar as linhas com o mesmo nome de combinação de carga (1). Dentro deste ciclo, é iniciado outro ciclo que adiciona cargas a cada elemento (2). Após cada ciclo, é adicionada uma linha com as cargas (3).

       #Set initial name of load
       newLoadEffect = ConLoadEffect()
       newLoadEffect.name = "initial"
 
       #reading rows according to load effects names
       newLoadEffect_name_previous = None
       for i in range(2, rowCount+1):
        #print("Checking load effect", sheet[i][0].value)  
        if sheet[i][0].value != newLoadEffect_name_previous:
            #condition for skipping first row   
            if newLoadEffect.name != "initial":
                api_client.load_effect.add_load_effect(activeProjectId, firstConId, newLoadEffect)
                nr = nr +1
            # Load effect creation
            newLoadEffect_name_previous = newLoadEffect.name
            newLoadEffect = ConLoadEffect()
            newLoadEffect.name = sheet[i][0].value
            newLoadEffect.id = nr
            newLoadEffect.active = True
            newLoadEffect.is_percentage = False
            newLoadEffect.member_loadings = []

        print("Reading load effect:",newLoadEffect.name )    
        newLoadEffect_name_previous = newLoadEffect.name 

        #read Id of member          
        for member in members:
            loaded_member_id = member.id
            loaded_member_name = member.name
            #match member name and Id
            if member.name != sheet[i][1].value:
                #member name and Id do not match
                continue
            else:
                #read loads for given member
                cell_value = ConLoadEffectSectionLoad()
                cell_value_position = sheet[i][2].value
                cell_value.n = sheet[i][3].value*1000    
                cell_value.vy = sheet[i][4].value*1000    
                cell_value.vz = sheet[i][5].value*1000    
                cell_value.mx = sheet[i][6].value*1000
                cell_value.my = sheet[i][7].value*1000                
                cell_value.mz = sheet[i][8].value*1000      

            # Member load
            newLoad = ConLoadEffectMemberLoad()
            newLoad.member_id = loaded_member_id
            newLoad.position = ConLoadEffectPositionEnum(cell_value_position)
            newLoad.section_load = cell_value

            #add ConLoadEffectMemberLoad to Load effect
            newLoadEffect.member_loadings.append(newLoad)    

  • Crie um novo ficheiro e guarde o projeto atualizado com as combinações recentemente adicionadas. É adicionada uma nota sobre a verificação do equilíbrio.

Código fonte:

#Create new ideaCon file and add new loads
updated_file_name = r'C:\Users\AlexanderSzotkowski\Documents\IDEA\API\Tutorial 02\tutorial 02 with loads.ideaCon'
      #Add last iteration of load effect (Comb3)
       api_client.load_effect.add_load_effect(activeProjectId, firstConId, newLoadEffect)
       # Saving the updated project
       api_client.project.download_project(activeProjectId, updated_file_name )  
       print("New project with loads ",updated_file_name)
       print('!!! Please check the equilibrium for loaded combinations in IDEA Connection.')

    except Exception as e:
       print("Operation failed : %s\n" % e)   

Agora, pode verificar o novo ficheiro para confirmar se foi bem-sucedido.

Transferências Anexadas

  • tutorial 02 - loads from excel.py (PY, 5.4 KB)

  • tutorial 02 - empty.ideaCon (IDEACON, 38.4 KB)

  • tutorial 02 - loads.xlsx (XLSX, 9.1 KB)

Artigos relacionados

Site de documentação API/Developer
  • Aço
  • Concreto
  • IDEA Open Model (API)
  • v25.1
  • v23.1
  • +5
  • Aço
  • Concreto
  • IDEA Open Model (API)
  • v25.1
  • v23.1

Knowledge base

Site de documentação API/Developer

Ler mais
Como começar com a API - Noções básicas 01
  • Aço
  • Connection
  • IDEA Open Model (API)
  • +3
  • Aço
  • Connection
  • IDEA Open Model (API)

Tutorials

Como começar com a API - Noções básicas 01

Ler mais
Projeto paramétrico no IDEA StatiCa Connection - Noções básicas (01)
  • Aço
  • Connection
  • Connection Library
  • Parametric design
  • IDEA Open Model (API)
  • +5
  • Aço
  • Connection
  • Connection Library
  • Parametric design
  • IDEA Open Model (API)

Tutorials

Projeto paramétrico no IDEA StatiCa Connection - Noções básicas (01)

Ler mais
Ligação API Grasshopper - como criar um ficheiro IOM IDEA StatiCa para importações (01)
  • Aço
  • Connection
  • IDEA Open Model (API)
  • Grasshopper
  • +4
  • Aço
  • Connection
  • IDEA Open Model (API)
  • Grasshopper

Tutorials

Ligação API Grasshopper - como criar um ficheiro IOM IDEA StatiCa para importações (01)

Ler mais