Organize HVAC library by category
https://openstudio.uservoice.com/forums/308629-openstudio/suggestions/10473030-organize-hvac-library-by-category
Since 1.9.0, the quantity of available library objects when viewing the "HVAC System" makes it really hard to find an object. It'd be great to categorize the objects, for example following the EnergyPlus "Groups" (in the I/O documentation, or when using IDF editors)
You'd have a group for "Setpoint Managers", with all possible setpoints managers under it. One for "Fans" which all fans under it, one for Pumps, one for Condenser Equipment (Cooling Towers, Fluid Coolers, etc)
From @jmarrec: the E+ Idd has a \group thing which we could use as a starting point. all IDD objects between two \group statements belong to the group referenced above. this is used by the IDF Editor

Migrated from UserVoice
Hello: I'm interested in this issue (good first issue) C++ level: beginner Thank you
Hi @damianCaceres that is great! The first thing to do is to get your build environment set up. Have you been able to clone the repo and build locally (see https://github.com/openstudiocoalition/OpenStudioApplication/wiki/Configuring-OpenStudio-Application-Build-Environments)? After that you will want to make a personal fork of this repo where you can commit your work. Let me know when you get those parts done and we'll get in touch with some tips on where to start making changes.
I've built and install successfully OpenStudioApp, develop branch alfa tag. The App opens without segfault. To be honest, I didn't find the instructions. I make everything from scratch. Obviously I need a few weeks to know the environment and to read the wiki page ... Thanks you. Nice day. Ubuntu 20.04
Good morning I've rebuilt QT5 including the ICU staff. I've selected like icu libraries the system's ones. Later on, I've rebuilt OpenStudioApp, and again I've needed to select the path to the system's icu-libraries. But I didn't specified the icudtl.dat file path, because:
icudtl.dat provides support for International Components for Unicode (ICU). It is the Chromium version of ICU, which is not needed if Qt WebEngine was configured to use the system ICU.
The build given me error. I've selected the icudtl included in the code folder, and OpenStudioApp build, install and open. I remain waiting for the release of the amaizing OpenStudioApp 1.2 Thank you
@damianCaceres 1.2.0 should be out shortly. In the meantime, 1.2.0-rc6 is available for testing and is very similar to the final 1.2.0: https://github.com/openstudiocoalition/OpenStudioApplication/releases/tag/v1.2.0-rc6
I don't know if the instructions changed since you last looked but you should not have to build Qt, we use pre-built Qt binaries as described in this wiki: https://github.com/openstudiocoalition/OpenStudioApplication/wiki/Configuring-OpenStudio-Application-Build-Environments#qt
@macumber Last night I received the news of a positive PCR for covid19. Again I am confined, and I cannot make commitments. Thank you very much for your patience and for such a wonderful program. Bye.
Sorry to hear that, I hope you feel better soon.
Hello, this is my first open source contribution and I'd like to take a shot at this one.
Great @Markaeus! We will probably be putting out a release in the November/December time frame. It might be worth considering interaction with a search function similar to that proposed in https://github.com/openstudiocoalition/OpenStudioApplication/issues/562, I was thinking of looking at that one.
Sounds good, I'll get started as soon as I get the environment setup. having Conan issues.
@macumber Hi, I would like to take up this enhancement. I have setup the build environment.
Any idea on how to approach the problem ?
Thanks @manuvarkey, I think the new search bar might have reduced the need for this feature a little bit but I will try to give an overview of how this could be implemented.
- The OSDocument is the main model of the OS App, it configures the main view and the library view when the HVAC tab is selected here: https://github.com/openstudiocoalition/OpenStudioApplication/blob/develop/src/openstudio_lib/OSDocument.cpp#L656
- MainRightColumnController configureForHVACSystemsSubTab sets up the library view (a ModelObjectTypeListView) for the HVAC tab here MainRightColumnController::configureForHVACSystemsSubTab
- ModelObjectTypeListView adds a bunch of ModelObjectTypeItem which are an aggregate of an OSCollapsibleItemHeader and a ModelObjectListView
- One way to go about this would be to make a ModelObjectCategoryListView which would add ModelObjectCategoryItems which are an aggregate of OSCollapsibleCategoryHeader and a ModelObjectTypeItem which has the OSCollapsibleItemHeader and ModelObjectListView. This would make a two-level hierarchy and might be sort of unwieldy.
- Another way to go about this would be to keep the one-level hierarchy and just add a new type of ModelObjectCategoryPlaceholder in between groups of the ModelObjectTypeItem. These would not expand or contract, they would just mark placeholders. You could also make the search bar find objects by their category in addition to type or name. I think I like this second approach better.
Does that make sense?
Thanks @macumber.
I made an attempt to implement the feature through the second approach. ModelObjectTypeListView which is subclassed from OSCollapsibleItemList only accepts ModelObjectTypeItem which is subclassed from OSCollapsibleItem.
So I implemented a new OSCategoryPlaceholder class and modified OSCollapsibleItemList to accept OSCategoryPlaceholder in addition to OSCollapsibleItem. addCategoryPlaceholderItem() function was implemented in OSCollapsibleItemList towards this.
ModelObjectTypeListView was modified to add a new function addModelObjectCategoryPlaceholder() which calls the parent class function addCategoryPlaceholderItem().
Further modifications were made to OSCollapsibleItemList::onSearchTextEdited() function to support filtering by category, type and name.
A screen cast of the implemented functionality is given below.
Screencast from 07-05-24 06:15:06 PM IST.webm
I have commited the changes to my fork at https://github.com/manuvarkey/OpenStudioApplication
Please review and give comments on how this implementation can be improved upon.
At first glance your screenshots look great, I tagged this for 1.8.0 release, and I will take a closer look at it when I am able too. Can you make a pull request back to this repo so we can have a place to have any discussion? The pull request will also ask you to provide another contribution consent for this repo. Thanks!