-
Notifications
You must be signed in to change notification settings - Fork 27
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
implemented direct BTLx application #377
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is_joinery_feature
is a good addition, as it is a useful distinction when serializing beams.
With the rest I am a bit conflicted. this somewhat contradicts the idea of deferred processing which I think is what is needed here. main reason is that the beam component is too early to set processings as these stay fixed while the beam may get extended due to joinery downstream.
I understand, but I also think adding a BTLx Processing directly to an element is fundamental and should be supported. In this case one would declare the parameters directly, and those parameters do not change, regardless of when they are declared. It is true that the resulting geometry would not be the same if extensions are added, but the parameters themselves are not changed. I want to be able to see the effect changing the BTLx parameters has on the geometry without needing to go through joints and models. I think a beam should be able to have features without needing to be part of a model. |
plus, we do this in code anyway |
just one more thing, this is related to the deferred processing because it is explicitly not deferred. We only need to defer if we are passing geometry or other params on that would get changed down the road before processing. This declares the params directly and assumes they are not changed again. If we made this a deferred processing, I would still not change the params based on extensions, etc. |
as you mentioned, adding processings directly to a beam is already supported. in fact, that's the only way it works. my concern is specifically for this GH flow, where processings applied to beams need to be applied in the appropriate sequence to ensure a correct result. I do think users should be able to add non-joinery processings (via deferred processings) but the actual application should be managed by the model component to prevent unexpected results. perhaps another component, something like a BTLxPreview (takes |
I understand the concern. However, as I stated earlier, because this workflow allows users to set BTLx Parameters directly, the order of operations doesn't make any difference, because those parameters will not change. I think order only matters for Joints. AFAIK the features don't interact with each other in any way, so order of their application shouldn't matter. They are all applied at the end anyways when the geometry is created. I reckon we had better discuss in person to work it out. :-D |
This PR is working toward removing the
FeatureDefinition
class. TheBTLxFeatureDefinition
GH component previously generated aFeatureDefinition
, but theBTLxProcessing
should (arguably) just be applied to the element directly, as it doesn't have any relationship to theModel
or joinery processes. This makes minor changes toElement
and 'BTLx` and changes a few GH components.What type of change is this?
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.CHANGELOG.md
file in theUnreleased
section under the most fitting heading (e.g.Added
,Changed
,Removed
).invoke test
).invoke lint
).compas_timber.datastructures.Beam
.