The Steel Lion Award is on! Join our contest with your best project.

Section optimization


This script finds optimal sections for an already existing and loaded structure through an iterative process. The optimization is performed on selected structural members, works with the selected section group (IPE, HEA, SHS, CHS, etc.) and steel grade (S235, S355, etc.). The result is the smallest section for every selected member, that gives a utilization that is under the given maximum utilization limit (100% by default). Multiple member groups can be defined with different section groups, steel grades and utilization limits. There is also an option to define subgroups within a member group, where the same section will be applied, which is the largest optimal section within the given subgroup. The list of available sections within a given section group is read out from an Excel spreadsheet, that can be modified before the start of the optimization.

The steps to set up the optimization are the following:
- Member group definition: member selection, section group selection, steel grade selection, utilization limit setting. Multiple member groups can be defined.
- Subgroup definition (optional): results the same section within a subgroup. Multiple subgroups can be defined.
- Analysis and design settings: these settings will be used during the iteration.


The foundation of the optimization algorithm is the section list sorted by the cross-sectional area of a given section group. The script will step the section size by 1 within the list during the iteration. Only those section groups can be optimized safely with this method, where all types of load bearing capacities (NRd, MyRd, VzRd, etc.) are growing proportionally with the cross-sectional area. In other words, where the section list sorted by the cross-sectional area and by the dominant load bearing capacity is the same. This is the reason why the available section groups are limited, e.g., RHS is not available.

The optimization algorithm is the following:
- Initial section: sets an initial section from the selected section group for every member based on static results.
- Iteration:
-- Checks if the current section is adequate (below the given maximum utilization limit).
-- Increases or decreases the section size by 1 within the corresponding section list based on the utilization.
-- Do this until the smallest adequate section size is found. Exit criteria: the current section size is adequate and the next smaller one is not.
-- If the exit criteria are met for every selected member -> finish the script run.

The iteration only calculates critical load combinations to save time. A critical load combination is one that gives the highest utilization for at least 1 member and this utilization is above a given limit (50% be default, but can be changed by the user on the ‘analysis and design settings’ dialogue). After every member is deemed optimal for every critical load combination, the structure is checked for every existing load combination. If at this point a new critical load combination is found, the iteration will continue with the expanded list of critical load combinations.

If a member is selected into more then 1 group, the script will still run, but optimization according to all containing member groups will execute consecutively for that member, and the result from the lastly defined group will stay. The same is true for subgroups.
Subgroups live within their containing member group. If a member is selected into a subgroup, that is not within the containing member group, then that member will be discarded from the subgroup. 

Best practice tips:
- Create portions for member groups and subgroups before starting the script. This way it is easier to select members during the optimization setup. (Member selection through portions directly from script dialogues is planned to be added later.)

Attachment files are saved to the following storage location: C:\Users\[Current User]\Documents\ConSteel\MyDescripts

Current version: 1.0 (release date: 2023.01.20.)

To DOWNLOAD this script, navigate to the MyDescript interface within Consteel, then click the "Edit" button next to the name of the script in the list. From there, the script can be saved to the computer. The availability of the "Edit" button depends on your membership level.
More info about the MyDescript interface and our membership system is available at these links:

The author

Márton Lendvai

Responsible for planning and testing of software features and engineering-related tasks.