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

Geometry preview - air loops #413

Closed
antoine-galataud opened this issue Aug 19, 2021 · 5 comments · Fixed by #497
Closed

Geometry preview - air loops #413

antoine-galataud opened this issue Aug 19, 2021 · 5 comments · Fixed by #497

Comments

@antoine-galataud
Copy link
Contributor

Enhancement Request

The main idea is to implement following use cases in 3D geometry preview:

  • find by visual inspection thermal zones that have no air loop associated
  • inspect thermal zone / air loop associations to ensure correctness (i.e. AHU dedicated to zones with a specific orientation)

For now only the first use case can be fulfilled with UI by looking into thermal zones tab in OpenStudioApp and scrolling to find those without an air loop. I often revert back to scripting to perform these checks, but I believe 3D view is a good fit for this too.

Possible Implementation

Since a thermal zone can be associated with [0..n] air loops, there is a slight difference with other materials implementation:

  • air loops information in user data will be of array-like type
  • when 'air loop' is selected in 'render by' drop-down, a new drop-down menu could be displayed to select a specific air loop (avoid showing all air loops at once, doesn't make sense if zones are associated with 2 air loops or more).
  • this new drop-down menu would have a 'no air loop' entry, to highlight material without any air loop associated.

Dependencies:

  • it would require a change in OpenStudio too, mainly in ThreeJSForwardTranslator to update user data and ThreeJS materials meta data. A change in ThreeJS is also needed to declare the new structures that will hold air loops information.
@antoine-galataud antoine-galataud added Enhancement Request New feature or request Triage Issue needs to be assessed and labeled, further information on reported might be needed labels Aug 19, 2021
@jmarrec jmarrec added component - Geometry Editor and removed Triage Issue needs to be assessed and labeled, further information on reported might be needed labels Aug 20, 2021
@DavidGoldwasser
Copy link
Contributor

DavidGoldwasser commented Aug 20, 2021

I wonder if most of the work can be in the ViewModel measure? I suppose there may be core changes in ThreeJS in OS core as well to support additional data.

If you wanted to actually edit in geometry editor would need to be in FloorSpaceJS, and then in translators to ThreeJS and then to OSM. This would get more complex on merging if you go back and change it later once HVAC system is in, so maybe not good idea to squeeze into FloorSpaceJS.

I did have an implementation of render by air loop in and old light weight SketchUp Plugin Mockup. It is 6 years old and I'm sure doesn't run now without some changes. Back then E+ only supported one air loop per zone, which isn't the case anymore, so need to handle rendering of zone assigned to multiple air loops. It stored minimal OS data in SketchUp object attributes.

@antoine-galataud
Copy link
Contributor Author

@DavidGoldwasser thank you for your feedback.

I wonder if most of the work can be in the ViewModel measure?

Sure. We could do the same as in #404, @macumber took care of porting the enhancement in the relevant measures. I can do it when dev is done too.

It certainly needs a change in a change in https://github.com/openstudiocoalition/OpenStudioApplication/blob/8a2c08858112355f21b73f75f913603b354078d1/src/openstudio_lib/library/geometry_preview.html, if we want to have this available in the app.

@macumber
Copy link
Collaborator

macumber commented Aug 22, 2021

@DavidGoldwasser the required changes to OS SDK would just be to export more data (e.g. PrimaryAirLoopName) into the ThreeUserData for each surface when the ThreeJS is exported from OSM here

@antoine-galataud
Copy link
Contributor Author

antoine-galataud commented Aug 23, 2021

export more data (e.g. PrimaryAirLoopName)

@macumber I was thinking all air loop names could be returned (vector of strings) to allow searching zones by associated air loop name(s). You seem to suggest we could use the primary air loop of the thermal zone. Question I have is: how do you identify it? First element in vector returned by ThermalZone.airLoopHVACs()?

@macumber
Copy link
Collaborator

Vector is good 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants