Gibt es eine Möglichkeit, dass die Ergebnisse mit “get_result_table()” (Tabellenergebnisse) durch die Verwendung eines Filters direkt auf eine Liste von Stäben reduziert werden kann, ähnlich wie bei "get_results()”
df_results: pd.DataFrame = rfem_app.get_result_table(
table = rfem.results.ResultTable.STATIC_ANALYSIS_MEMBERS_INTERNAL_FORCES_TABLE,
loading = rfem.ObjectId(
no = 1,
object_type = rfem.OBJECT_TYPE_DESIGN_SITUATION,
)
).data
Mein Wunsch wäre der zusätzliche Filter, übernommen von "get_results()”:
member_filter = rfem.results.ResultsFilter(
column_id='member_no',
filter_expression='71,72'
)
Oder muss ich das im Nachgang machen?
Hi Thomas.Entner,
aktuell ist das Vorverarbeiten der Ergebnisse mit Filtern nur in der Methode get_results() möglich. Für die Methode get_result_table() ist eine ähnliche Funktionalität allerdings in Planung.
Beide Methoden liefern ein Pandas DataFrame zurück, wodurch du die leistungsstarken Funktionen von Pandas für die Nachbearbeitung nutzen kannst.
Nachteil dabei ist, dass mehr Daten vom RFEM-Server an den API-Client übertragen werden, was zeitaufwendig sein kann.
Wenn du die Ergebnisse nach einem Array von member_no-Werten filtern möchtest, nachdem du die Tabelle abgerufen hast, kannst du das in Pandas so machen:
import pandas as pd
# Retrieve the result table from RFEM
df_internal_forces_table = rfem_app.get_result_table(
table = rfem.results.ResultTable.STATIC_ANALYSIS_MEMBERS_INTERNAL_FORCES_TABLE,
loading = rfem.ObjectId(
no = 1,
object_type = rfem.OBJECT_TYPE_DESIGN_SITUATION
)
).data
# Convert the result to a Pandas DataFrame
df = pd.DataFrame(df_internal_forces_table)
# Example array of member numbers to filter by
member_numbers = [1, 2, 5, 10] # Array of member numbers you want to filter
# Filter the DataFrame to only include rows where 'member_no' is in the array
filtered_df = df[df['member_no'].isin(member_numbers)]
# Print the filtered table
print(f"Filtered Internal Forces | Table:\n{filtered_df}")
So kannst du die Ergebnisse nach den gewünschten member_no-Werten filtern. Passe das member_numbers-Array einfach entsprechend deiner Anforderungen an.
Meld dich gern, wenn du weitere Unterstützung brauchst!
Cheers, Sören in Namen von
Tomáš Pail