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

Add hosted element area to parameters in Revit. #3539

Open
wants to merge 12 commits into
base: dev
Choose a base branch
from

Conversation

ks-cph
Copy link
Contributor

@ks-cph ks-cph commented Jun 27, 2024

Description & motivation

Refers to Issue #3530
This change adds the Area of hosted elements within a host to a parameter. So far, no such parameter is available. This becomes especially important for windows and doors where the Area of removed elements can be essential. For instance, prefabricated timber elements are normally produced as a whole, and then these parts are removed, which is somewhat wasteful (even though they may be re-used).

Others will benefit from this change as such essential information is not yet available in Speckle.

Changes:

  • Add a method to get the Area of a Hosted element in a Host
  • Add the Area as a new Parameter to the Base object

To-do before merge:

We chose to use the approach described in https://thebuildingcoder.typepad.com/blog/2015/03/ifcexportutils-methods-determine-door-and-window-area.html. However, this solution refers to the Revit.APIIFC.dll which is not part of the Revit Converters or Dynamo Converters, yet.

  • The code requires the RevitAPIIFC.dll

Validation of changes:

The contribution has been verified with several Revit models where windows and doors are added to walls.

Checklist:

  • My pull request follows the guidelines in the Contributing guide?
  • My pull request does not duplicate any other open Pull Requests for the same update/change?
  • My commits are related to the pull request and do not amend unrelated code or documentation.
  • My code follows a similar style to existing code.
  • I have added appropriate tests.
  • I have updated or added relevant documentation.

@ks-cph ks-cph marked this pull request as ready for review June 27, 2024 09:31
@martinromby
Copy link

Any comments for this PR, @AlanRynne or @teocomi?

@teocomi teocomi requested a review from bimgeek August 13, 2024 10:31
@teocomi
Copy link
Member

teocomi commented Aug 13, 2024

Hey @ks-cph @martinromby thanks for the ping, sorry this slipped through!
@bimgeek is looking to add a review for this in the coming dev cycles and we'll keep you posted 🙏
Thanks again for your contributions!

In the meantime please update with our base branch.

@martinromby
Copy link

Any feedback for us in the review @bimgeek ?

@didimitrie
Copy link
Member

From a quick glance: my hesitation centres around performance as we're introducing a new calculation to this. I appreciate the need for precision in your case, but how strong is it?

@didimitrie
Copy link
Member

note: this breaks sending of hosted elements that are not on a wall, will fix

@didimitrie
Copy link
Member

Fixed the last few bits; and added a poc comment around the units - cutout area is always extracted out in meters, but that's all i have bandwidth for now. Maybe @clairekuang can help set them correctly?

We can consider merging this if @bimgeek discovers no large performance implications. Regarding our next gen connectors, how important is this number for y'all @martinromby? Since it's doing an extra calculation, we would extract this out as an opt-in extra setting, but ideally we'd not extract it out at all!

@ks-cph
Copy link
Contributor Author

ks-cph commented Nov 11, 2024

Having this knowledge, especially on windows and doors, is essential for reliable quantity-takeoff. We would therefore highly appreciate it if you could merge this in - potentially with the opt-in option.

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.

5 participants