Idea Statica
  • Stal
  • Beton
  • BIM i przepływy pracy
  • Wsparcie i nauka
  • Cennik
  • Firma
  • Przegląd stali
  • Projektowanie połączeń
  • Projektowanie elementów
  • Projektowanie parametryczne
  • Studium przypadków – stal
  • Przegląd betonu
  • Ściany i strefy nieciągłości
  • Projektowanie zakotwień
  • Studium przypadków – beton
  • Przegląd BIM
  • Obsługiwane integracje
  • Checkbot
  • Viewer
  • API
  • Centrum wsparcia
  • E-learning i certyfikacja
  • Blog
  • Pliki do pobrania i licencjonowanie
  • Plany
  • Bezpłatne narzędzie społecznościowe
  • Klienci korporacyjni
  • Studenci i wykładowcy
  • Ile zaoszczędzisz?
  • O nas
  • Kontakt
  • Badania i rozwój
  • Autoryzowani resellerzy
  • Poznaj naszych klientów
  • Stal
    Przegląd staliProjektowanie połączeńProjektowanie elementówProjektowanie parametryczneStudium przypadków – stal
  • Beton
    Przegląd betonuŚciany i strefy nieciągłościProjektowanie zakotwieńStudium przypadków – beton
  • BIM i przepływy pracy
    Przegląd BIMObsługiwane integracjeCheckbotViewerAPI
  • Wsparcie i nauka
    Centrum wsparciaE-learning i certyfikacjaBlogPliki do pobrania i licencjonowanie
  • Cennik
    PlanyBezpłatne narzędzie społecznościoweKlienci korporacyjniStudenci i wykładowcyIle zaoszczędzisz?
  • Firma
    O nasKontaktBadania i rozwójAutoryzowani resellerzyPoznaj naszych klientów
14-dniowy okres próbny
14-dniowy okres próbny

Zapisz się do naszego newslettera

Firma

  • O nas
  • Partnerstwa
  • Kariera
  • Opatentowana technologia dla inżynierów konstruktorów

Zasoby

  • Projekty klientów
  • Studium przypadków
  • IDEA StatiCa Connection Library
  • Weryfikacja poprawności obliczeń

Prawne

  • IDEA StatiCa UMOWA LICENCYJNA UŻYTKOWNIKA KOŃCOWEGO
  • Globalna polityka prywatności
  • Warunki korzystania z usługi – IDEA StatiCa Viewer
  • Licencjonowanie

Pomoc

  • Kontakt
  • Prośba o wycenę
  • Dystrybutorzy
  • Pliki do pobrania
FacebookInstagramLinkedInYouTube

© IDEA StatiCa 2009-2026

Zaufany i używany na całym świecie przez inżynierów, producentów i konsultantów.

Centrum wsparciaSamouczkiJak rozpocząć pracę z API - Wsadowy import kombinacji 02
Jak rozpocząć pracę z API - Wsadowy import kombinacji 02
SteelConnection designTutorialsConnectionIDEA Open Model (API)

Jak rozpocząć pracę z API - Wsadowy import kombinacji 02

Ten artykuł jest również dostępny w
ENCZDEESFRITPTNLHUROKRPLTHTRVIZH
Przetłumaczono przez AI z języka angielskiego

Celem samouczka jest zaimportowanie kilku przypadków obciążeń do istniejącego połączenia.

Pierwsze kroki

Zalecamy zapoznanie się z samouczkiem How to get started with API - Basics 01, który wprowadza w zagadnienia API oraz konfigurację środowiska.

Plik Connection 

Najpierw utwórz złącze dwóch przekrojów zamkniętych RHS 300/200/8 i zmień parametry zgodnie z poniższymi rysunkami.

Następnie przejdź do zakładki Developer i zapisz plik jako szablon o nazwie tutorial 02.contemp.  Użyjemy go w kolejnym samouczku.

Wróć do zakładki Design, kliknij prawym przyciskiem myszy na Operacje  / Usuń wszystko i zapisz ten pusty plik pod nazwą tutorial 02 - empty.ideaCon. 

Arkusz Excel z kombinacjami obciążeń

W kolejnym kroku przygotuj arkusz Excel z obciążeniami, które chcemy zaimportować do pliku .ideaCon. Możesz go pobrać na dole tej strony.

Należy używać dokładnie takich samych nazw kolumn, jakie są stosowane w skrypcie Python.

Klient Python

Uruchom plik "IdeaStatiCa.ConnectionRestApi.exe" w wierszu poleceń CMD w odpowiednim folderze IDEA StatiCa i otwórz wybrane środowisko IDE.

  • Utwórz nowy plik i zaimportuj pakiety umożliwiające wykonywanie obliczeń oraz połączenie z lokalnym adresem URL. 

Kod źródłowy:

## 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

  • Skonfiguruj rejestrowanie za pomocą zmiennej "baseUrl", która wskaże lokalny adres hosta. W drugim kroku podaj bezwzględną ścieżkę do pliku IDEA StatiCa Connection.

Kod źródłowy:

## 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"

  • Połącz klienta z już uruchomioną usługą. Użyj bloku try/except – jeśli blok try zgłosi błąd, zostanie wykonany blok except. W pierwszej fazie należy otworzyć projekt i znaleźć identyfikator projektu, który jest unikalny dla każdego projektu IDEA StatiCa. Po uruchomieniu skryptu można odczytać wydrukowaną ścieżkę, unikalny identyfikator (1), liczbę dołączonych elementów (2) oraz aktualną liczbę obciążeń (3).

Kod źródłowy:

# 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)

  • Otwórz arkusz Excel i odczytaj liczbę wierszy z obciążeniami. 

Kod źródłowy:   

 #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)

  •  Uruchom pętlę wykrywającą wiersze o tej samej nazwie kombinacji obciążeń (1). W ramach tej pętli uruchamiana jest kolejna pętla dodająca obciążenia do każdego elementu (2). Po każdej iteracji pętli dodawany jest jeden wiersz z obciążeniami (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)    

  • Utwórz nowy plik i zapisz zaktualizowany projekt z nowo dodanymi kombinacjami. Dodana jest uwaga dotycząca sprawdzenia równowagi.

Kod źródłowy:

#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)   

Teraz możesz sprawdzić nowy plik, aby upewnić się, że operacja zakończyła się pomyślnie.

Załączone pliki do pobrania

  • 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)

Powiązane artykuły

Strona dokumentacji API/Developer
  • Stal
  • Beton
  • IDEA Open Model (API)
  • v25.1
  • v23.1
  • +5
  • Stal
  • Beton
  • IDEA Open Model (API)
  • v25.1
  • v23.1

Knowledge base

Strona dokumentacji API/Developer

Czytaj więcej
Jak zacząć pracę z API - Podstawy 01
  • Stal
  • Connection
  • IDEA Open Model (API)
  • +3
  • Stal
  • Connection
  • IDEA Open Model (API)

Tutorials

Jak zacząć pracę z API - Podstawy 01

Czytaj więcej
Projektowanie parametryczne w IDEA StatiCa Connection - Podstawy (01)
  • Stal
  • Connection
  • Connection Library
  • Parametric design
  • IDEA Open Model (API)
  • +5
  • Stal
  • Connection
  • Connection Library
  • Parametric design
  • IDEA Open Model (API)

Tutorials

Projektowanie parametryczne w IDEA StatiCa Connection - Podstawy (01)

Czytaj więcej
Grasshopper API link - jak utworzyć plik IDEA StatiCa IOM do importu (01)
  • Stal
  • Connection
  • IDEA Open Model (API)
  • Grasshopper
  • +4
  • Stal
  • Connection
  • IDEA Open Model (API)
  • Grasshopper

Tutorials

Grasshopper API link - jak utworzyć plik IDEA StatiCa IOM do importu (01)

Czytaj więcej