Skip to content

Conversation

@GerjanDorgelo
Copy link
Contributor

@GerjanDorgelo GerjanDorgelo commented Jan 30, 2026

Description

feature request production method in steel cross section

Fixes #957

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 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

Summary by CodeRabbit

  • New Features

    • Steel cross sections now support designation of section type, allowing users to specify whether sections are rolled or welded (default: rolled).
  • Tests

    • Added test coverage to verify section type functionality.

✏️ Tip: You can customize this high-level summary in your review settings.

@GerjanDorgelo GerjanDorgelo self-assigned this Jan 30, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 30, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
📝 Walkthrough

Walkthrough

A new public field section_type is added to the SteelCrossSection class with a literal type constraint ("rolled" or "welded") and default value "rolled". A corresponding test validates the default value of this field.

Changes

Cohort / File(s) Summary
Field Addition
blueprints/structural_sections/steel/steel_cross_section.py
Adds section_type field with Literal["rolled", "welded"] type and "rolled" default value; includes Literal import and docstring.
Test Coverage
tests/structural_sections/steel/test_steel_cross_section.py
Adds test_fabrication_method test method to validate default section_type value equals "rolled".

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A rolled or welded choice, so fine,
Steel sections now shine in design,
Type fields are set, default's "rolled" with care,
Tests confirm it's there, beyond compare! 🏗️

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title references 'production method' which aligns with the PR objective of adding production_method to steel cross section, but the implementation uses 'section_type' attribute instead, creating a naming mismatch. Clarify whether the title should be updated to reflect 'section_type' or if the implementation attribute naming should be reconsidered for consistency with the issue description.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description follows the template structure with all required sections completed: description provided, issue reference (#957), type of change selected, and checklist items marked.
Linked Issues check ✅ Passed The PR implements the feature requested in issue #957 by adding section_type attribute to SteelCrossSection and providing corresponding tests, meeting both acceptance criteria.
Out of Scope Changes check ✅ Passed All changes directly support the linked issue #957 objective: adding a production_method attribute (implemented as section_type) to indicate rolled or welded sections with corresponding tests.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch 957-feature-request-production_method-in-steel-cross-section

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@GerjanDorgelo
Copy link
Contributor Author

GerjanDorgelo commented Jan 30, 2026

hi @SZeltaat, id like to add production_method as an attribute to the steel cross section, so that i can diff between option a) and d) for shear area

image

Could you give it a check? thanks!

@egarciamendez
Copy link
Member

@CodeRabbit review

@coderabbitai
Copy link

coderabbitai bot commented Jan 30, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@codecov
Copy link

codecov bot commented Jan 31, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (630615e) to head (5148da0).
⚠️ Report is 20 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      #959   +/-   ##
=========================================================================================
  Coverage                                                   100.00%   100.00%           
=========================================================================================
  Files                                                          422       422           
  Lines                                                        13145     13189   +44     
=========================================================================================
+ Hits                                                         13145     13189   +44     

☔ 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.

Copilot AI review requested due to automatic review settings February 1, 2026 18:50
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 adds support for specifying the fabrication method (rolled or welded) for steel cross-sections, addressing feature request #957. The implementation adds a new optional parameter with a default value of "rolled" to maintain backward compatibility.

Changes:

  • Added a fabrication_method attribute to the SteelCrossSection class with type Literal["rolled", "welded"] and default value "rolled"
  • Added test coverage to verify the fabrication method functionality

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
blueprints/structural_sections/steel/steel_cross_section.py Added fabrication_method attribute with type hint and default value
tests/structural_sections/steel/test_steel_cross_section.py Added test case to verify default fabrication method is "rolled"

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

GerjanDorgelo and others added 2 commits February 1, 2026 19:50
Copilot AI review requested due to automatic review settings February 1, 2026 18:51
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

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.


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

Copy link
Contributor

@SZeltaat SZeltaat left a comment

Choose a reason for hiding this comment

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

Hi Gerjan,
I think this is the right place for this attribute, but we should be more carefull with the default. Please see my comment 😉

Copilot AI review requested due to automatic review settings February 2, 2026 15:10
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

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


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

Copilot AI review requested due to automatic review settings February 2, 2026 15:18
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

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


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

Copy link
Contributor

@SZeltaat SZeltaat left a comment

Choose a reason for hiding this comment

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

I think this can be implemented in a much better way. Now, we look for profile's name in the whole database. We can narrow it down more effectively.

In any case, we should have good test cases to test this functionality.

  • For hot rolled
  • For cold-formed
  • For edge cases where name is not found, etc... (so every if-condition)
  • For tricky situations like RHS and RHSCF

If all test cases pass, we can always change the implementation later.

My suggestion for the implementation:

First extract only the first alphabetic part of the name.
Find the corresponding profile class by matching against the cls.name
Then extract the profile name (like you already do, alternatively use the pattern alphabetic, followed by multiple numerics optionally seperated by "x")
Then if any(profile_name == standard_profile.name for standard_profile in cls._database.values()), assign hot-rolled / cold-formed based on cls.name.

Copilot AI review requested due to automatic review settings February 2, 2026 18:25
@GerjanDorgelo
Copy link
Contributor Author

GerjanDorgelo commented Feb 2, 2026

@SZeltaat

For hot rolled -> done
For cold-formed -> done (and also welded)
For edge cases where name is not found, etc... (so every if-condition) -> also testing a none, and an altered named profile.
For tricky situations like RHS and RHSCF -> done

First extract only the first alphabetic part of the name.
Find the corresponding profile class by matching against the cls.name -> difficult with "SHS" being part of "SHSCF". for now i just go trough the entire list.
Then extract the profile name (like you already do, alternatively use the pattern alphabetic, followed by multiple numerics optionally seperated by "x") -> done. also finding corrosion lvl now.
Then if any(profile_name == standard_profile.name for standard_profile in cls._database.values()), assign hot-rolled / cold-formed based on cls.name. -> instead of values, i check the polygon. that should do it.

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

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


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

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings February 2, 2026 18:27
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

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.


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

@GerjanDorgelo GerjanDorgelo changed the title 957 feature request production method in steel cross section PART 2 - 957 feature request production method in steel cross section Feb 7, 2026
…' into 957-feature-request-production_method-in-steel-cross-section
Copilot AI review requested due to automatic review settings February 8, 2026 10:42
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

Copilot reviewed 3 out of 3 changed files in this pull request and generated 9 comments.


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

Copy link
Contributor

@SZeltaat SZeltaat left a comment

Choose a reason for hiding this comment

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

LGTM!

@GerjanDorgelo GerjanDorgelo merged commit 5f48d14 into 840-feature-request-add-first-steel-check-to-blueprints Feb 9, 2026
9 checks passed
@GerjanDorgelo GerjanDorgelo deleted the 957-feature-request-production_method-in-steel-cross-section branch February 9, 2026 08:43
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.

3 participants