Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adaptive Joint Rule Components #232

Merged
merged 44 commits into from
Apr 24, 2024
Merged

Adaptive Joint Rule Components #232

merged 44 commits into from
Apr 24, 2024

Conversation

obucklin
Copy link
Contributor

This changes the DirectRule and CategoryRule GH components to adapt dynamically to the joint typ input. The joint type passes the names of the beams' roles to the rule components, which registers the new input parameters. This should simplify defining main_beam and cross_beam and also help with future joints such as mortise/tenon and dovetail.

What type of change is this?

  • Bug fix in a backwards-compatible manner.
  • [x ] 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.

  • [ x] I added a line to the CHANGELOG.md file in the Unreleased section under the most fitting heading (e.g. Added, Changed, Removed).
  • [ x] I ran all tests on my computer and it's all green (i.e. invoke test).
  • [ x] 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)

@obucklin
Copy link
Contributor Author

Adaptive_GH_Components_DEMO.zip
sample file

@obucklin
Copy link
Contributor Author

This is somewhat experimental, so we should test it before pushing into a release. I did a fair amount of testing with various joints, and it seems stable, but I'm not sure about all the various GH events that could impact it...

@obucklin
Copy link
Contributor Author

OK so when opening a saved file with the components, old connections to the beam or category inputs are deleted. I will look into a solution. I'll let you know when it's working, or let me know if you have an idea.

@chenkasirer
Copy link
Contributor

chenkasirer commented Feb 16, 2024

Super cool feature!
Can you please rebase/merge main and take care of linting and formatting so that it's nicer to review? thanks!

Also please stick to PEP8 convention where possible, even in GH components (e.g. snake_case for functions, variables and arguments).

@obucklin
Copy link
Contributor Author

Ok so I solved the issue where connections were severed when opening a saved file with the new components. This has the added benefit of not severing connections if the joint type uses the same beam_names. Included is a new demo GH file.
Adaptive_GH_Components_DEMO_V2.zip

@obucklin
Copy link
Contributor Author

Super cool feature! Can you please rebase/merge main and take care of linting and formatting so that it's nicer to review? thanks!

Also please stick to PEP8 convention where possible, even in GH components (e.g. snake_case for functions, variables and arguments).

ok done

@obucklin
Copy link
Contributor Author

@chenkasirer @jonashaldemann Hey this is ready for review. There are videos and an up-to-date example file.

@chenkasirer
Copy link
Contributor

@chenkasirer @jonashaldemann Hey this is ready for review. There are videos and an up-to-date example file.

please make sure all actions finish successfully

@chenkasirer
Copy link
Contributor

generally this needs to be discussed and agreed upon between @obucklin and @jonashaldemann (and potentially others that are invested in the GH flow).

  • Maybe find a better place for the videos.
  • There's still some code style/naming issues here and there, try to stick to PEP8 where possible.
  • Test on MAC..

@obucklin
Copy link
Contributor Author

I went through the code for all the components and updated the formatting.
I tested the adaptive functionality on mac and it works fine.
removed the videos, may upload to youtube.

Not sure about the actions...

Copy link
Contributor

@chenkasirer chenkasirer left a comment

Choose a reason for hiding this comment

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

Pending:

  1. @jonashaldemann is happy with this flow
  2. another round of testing cause of the latest changes

LGTM.

@obucklin obucklin merged commit f6f7e96 into main Apr 24, 2024
11 checks passed
@obucklin obucklin deleted the adaptive_GH_Components branch April 24, 2024 14:47
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.

2 participants