Skip to content

Conversation

@GerjanDorgelo
Copy link
Contributor

@GerjanDorgelo GerjanDorgelo commented Nov 18, 2025

Description

This branch depends on #834 and will therefore feature the same LoadCombination code once again.

This branch is a showcase of what automated steel checks using various formula and multiple sub-checks could look like. Let's discuss the structure openly before I add all other checks using sub-issues (to make sure i'm not making super big PRs).

There is a dependency in how @SZeltaat will leave a few features in his WIP branch. This code requires access to

  • the area, now as heb_profile.section_properties.area
  • the yeild_strength, now aquired by min(element.yield_strength for element in heb_profile.elements). Currently, this uses the local thickness of various elements to see if the entire beam needs to be evaluated as 335 MPa instead of 355.

But even with these two, for now, questions left behind us. How do we want (steel) checks using various formula and multiple sub-checks to be evaluated?

Fixes #830

Type of change

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

Checklist:

  • I have added tests that prove my fix is effective or that my feature works
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • New and existing unit tests pass locally with my changes

@GerjanDorgelo GerjanDorgelo self-assigned this Nov 18, 2025
Copilot AI review requested due to automatic review settings November 18, 2025 14:43
@GerjanDorgelo GerjanDorgelo linked an issue Nov 18, 2025 that may be closed by this pull request
2 tasks
@github-actions
Copy link

Thank you so much for contributing to Blueprints!
Your contributions help thousands of engineers work more efficiently and accurately.

Now that you've created your pull request, please don't go away; take a look at the bottom of this page for the automated checks that should already be running. If they pass, great! If not, please click on 'Details' and see if you can fix the problem they've identified. A maintainer should be along shortly to review your pull request and help get it added!

@GerjanDorgelo GerjanDorgelo marked this pull request as draft November 18, 2025 14:45
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces a showcase implementation of automated steel strength checks for Class 3 I-profiles according to Eurocode 3. The implementation demonstrates a structure for performing multiple sub-checks using various formulas, specifically focusing on normal force resistance checks for both tension and compression cases.

Key changes:

  • Introduces LoadCombination dataclass to represent load combinations with clear sign conventions
  • Implements SteelIProfileStrengthClass3 with a nested NormalForceCheck class for evaluating normal force resistance
  • Provides comprehensive test coverage for both the main check class and the normal force sub-check

Reviewed Changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
blueprints/checks/loads/load_combination.py Defines a frozen dataclass representing load combinations with detailed documentation of axis conventions and sign definitions
blueprints/checks/steel/strength/steel_i_profile_strength_class_3.py Implements the main strength check class with a nested normal force check that applies Eurocode 3 formulas for tension and compression
tests/checks/loads/test_load_combination.py Comprehensive tests for LoadCombination including initialization, equality, and hashability
tests/checks/steel/strength/test_steel_i_profile_strength_class_3.py Tests for both the main check class and the normal force sub-check, including parametrized LaTeX output validation
tests/checks/steel/strength/conftest.py Provides a reusable fixture for creating HEB300 profile instances with section properties

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@codecov
Copy link

codecov bot commented Nov 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (2196f82) to head (3470277).
⚠️ Report is 6 commits behind head on 840-feature-request-add-first-steel-check-to-blueprints.

Additional details and impacted files
@@                                    Coverage Diff                                     @@
##           840-feature-request-add-first-steel-check-to-blueprints      #836    +/-   ##
==========================================================================================
  Coverage                                                   100.00%   100.00%            
==========================================================================================
  Files                                                          393       395     +2     
  Lines                                                        12106     12271   +165     
==========================================================================================
+ Hits                                                         12106     12271   +165     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…enhance LaTeX formatting and improve test cases for compression checks.
…enhance LaTeX formatting for short and detailed outputs.
…improve LaTeX representation and streamline logic for tension and compression checks.
… None area values and ensure correct tension and compression checks.
…leStrengthClass3 for clarity and update corresponding test cases.
@GerjanDorgelo GerjanDorgelo changed the base branch from main to 840-feature-request-add-first-steel-check-to-blueprints November 23, 2025 09:15
…1D class and tests, remove LoadCombination class and related tests
…oordinate-system-for-all-strenthstability-checks' of https://github.com/Blueprints-org/blueprints into 831-feature-request-define-loadcombination-class-with-coordinate-system-for-all-strenthstability-checks
…oordinate-system-for-all-strenthstability-checks' into 830-feature-request-check-for-strength-of-steel-i-profiles-class-3
… for load combinations and add single axis bending moment checks.
… simplified ResultInternalForce1D instantiation
…ompression checks, update latex output validation, and refactor test structure
…rminology, update related tests for consistency, and add validation for invalid axis input.
…k axis summary test in Steel I-Profile strength class 3
…logy for bending moments, and enhance test coverage for various loading scenarios in class 3.
…e parameterized testing for single force permutations, enhancing test coverage and reducing redundancy.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[✨ Feature request]: check for strength of steel (I-)profiles, class 3

3 participants