Results#

../../_images/results.png

Result tables are in progress. In this dummy example we will demonstrate:

  • How the results will be accessed

  • How the filters will be used

Read the comments for detailed instructions.

from dlubal.api import rfem

# Connect to the RFEM application
with rfem.Application() as rfem_app:

    rfem_app.create_model(name='results_dummy_data')

    print("All results (from test data):")
    results = rfem_app.get_results(rfem.results.ResultsId.RESULTS_ID_TEST)
    print(results.data)
    print()

    # GetResults returns Table, which is just a convenience wrapper around a Pandas Dataframe,
    # the Dataframe can be directly accessed as .data

    print("Filtered results:")
    results = rfem_app.get_results(
        rfem.results.ResultsId.RESULTS_ID_TEST,
        filters=[rfem.results.ResultsFilter(
            column_id="support_force_p_x",
            filter_expression="max")],
    )

    print(results.data)
    print()

    # Valid filter expressions are: "min", "max", ">value", "<value", and just "value" for equality

    print("Filtered results (simplified syntax):")
    results = rfem_app.get_results(
        rfem.results.ResultsId.RESULTS_ID_TEST,
        support_force_p_x="max")

    print(results.data)
    print()

    print(
        "If you need more than one filter on the same column, have to use the full syntax:"
    )
    results = rfem_app.get_results(
        rfem.results.ResultsId.RESULTS_ID_TEST,
        filters=[
            rfem.results.ResultsFilter(
                column_id="no",
                filter_expression=">1"),
            rfem.results.ResultsFilter(
                column_id="no",
                filter_expression="<5"),
        ],
    )
    print(results.data)

    for row in results:
        print(row["support_force_p_x"])

    print()

    print("Get value(s) of one column:")
    value = rfem_app.get_results(
        rfem.results.ResultsId.RESULTS_ID_TEST,
        support_force_p_z="min",
        no="min"
    )["node_no"]

    print(value)
    print()