Skip to content

Refactor JointRule process to accomodate PlateJoint - #479

Merged
obucklin merged 101 commits into
mainfrom
plate_joint_GH_comps
Sep 2, 2025
Merged

Refactor JointRule process to accomodate PlateJoint#479
obucklin merged 101 commits into
mainfrom
plate_joint_GH_comps

Conversation

@obucklin

@obucklin obucklin commented Jul 11, 2025

Copy link
Copy Markdown
Contributor

So I wanted to make GH components for the new PlateJoints. This required a rework of the JointRules themselves.

Changes to JointRule application:
I reworked the comply() methods, and realized we had a lot of redundant checks in the process. I tried to rationalize the rule parsing and joint creation a bit.

new workflow:

  1. JointRule creation. No distance, topology, or other compliance checks are done here.
  2. Joint creation via JointRule.try_create_joint. This is where all checks are done. DirectRule.try_create_joint raises a BeamJoiningError if it fails, but the others take a pair of elements and return a Joint if possible, otherwise None.

I removed JointDefinition and FeatureDefinition.

There are 2 other PRs now upon which this depends: #500 and #501. once they are merged we can look at this.

What type of change is this?

  • Bug fix in a backwards-compatible manner.
  • New feature in a backwards-compatible manner.
  • Breaking change: bug fix or new feature that involve incompatible API changes.
  • Other (e.g. doc update, configuration, etc)

Checklist

Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

  • I added a line to the CHANGELOG.md file in the Unreleased section under the most fitting heading (e.g. Added, Changed, Removed).
  • I ran all tests on my computer and it's all green (i.e. invoke test).
  • I ran lint on my computer and there are no errors (i.e. invoke lint).
  • I added new functions/classes and made them available on a second-level import, e.g. compas_timber.datastructures.Beam.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added necessary documentation (if appropriate)

@codecov

codecov Bot commented Jul 11, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 84.89209% with 42 lines in your changes missing coverage. Please review.
✅ Project coverage is 65.97%. Comparing base (b4af5ae) to head (0bd80b2).
⚠️ Report is 102 commits behind head on main.

Files with missing lines Patch % Lines
src/compas_timber/design/workflow.py 89.17% 17 Missing ⚠️
src/compas_timber/connections/t_step_joint.py 25.00% 6 Missing ⚠️
src/compas_timber/connections/y_butt.py 62.50% 6 Missing ⚠️
src/compas_timber/connections/joint.py 63.63% 4 Missing ⚠️
...rc/compas_timber/connections/l_french_ridge_lap.py 81.25% 3 Missing ⚠️
src/compas_timber/model/model.py 87.50% 3 Missing ⚠️
src/compas_timber/connections/solver.py 92.00% 2 Missing ⚠️
src/compas_timber/design/wall_populator.py 66.66% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #479      +/-   ##
==========================================
+ Coverage   65.46%   65.97%   +0.51%     
==========================================
  Files          76       76              
  Lines       11027    11064      +37     
==========================================
+ Hits         7219     7300      +81     
+ Misses       3808     3764      -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.

This comment was marked as outdated.

@obucklin
obucklin removed the request for review from chenkasirer July 14, 2025 07:57
@obucklin

Copy link
Copy Markdown
Contributor Author

@papachap @chenkasirer @Stryzhevska Howdy! I do believe this is ready for a lookyloo! thanks!!

Comment thread src/compas_timber/connections/generic_joint.py
Comment thread src/compas_timber/connections/joint.py Outdated
Comment thread src/compas_timber/connections/t_step_joint.py Outdated
Comment thread src/compas_timber/connections/t_step_joint.py Outdated
Comment thread src/compas_timber/connections/y_butt.py Outdated
Comment thread src/compas_timber/connections/y_butt.py
Comment thread src/compas_timber/connections/y_butt.py
Comment thread src/compas_timber/design/workflow.py
Comment thread CHANGELOG.md
Comment thread src/compas_timber/connections/analyzers.py
Comment thread src/compas_timber/connections/analyzers.py Outdated
Comment thread src/compas_timber/design/workflow.py Outdated
Comment thread src/compas_timber/design/wall_populator.py Outdated
Comment thread src/compas_timber/design/workflow.py
Comment thread src/compas_timber/design/workflow.py Outdated
Comment thread src/compas_timber/model/model.py
Comment thread src/compas_timber/design/workflow.py Outdated
Comment thread src/compas_timber/design/workflow.py Outdated

@chenkasirer chenkasirer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

review

Comment thread src/compas_timber/design/workflow.py
@chenkasirer

Copy link
Copy Markdown
Contributor

@obucklin could you please sort out the merge conflicts so that we see the build runs?

@obucklin

obucklin commented Sep 1, 2025

Copy link
Copy Markdown
Contributor Author

hey @chenkasirer this is getting an error regarding the ipy checks that doesn't make any sense to me. Otherwise it's ready for another look.

@chenkasirer chenkasirer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM!

@obucklin
obucklin merged commit 23a8cbb into main Sep 2, 2025
18 checks passed
@obucklin
obucklin deleted the plate_joint_GH_comps branch September 2, 2025 14:41
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.

Compatibility check at promotion stage Solver and design workflow optimization.

4 participants