Git Product home page Git Product logo

honeybee-grasshopper-energy's Introduction

Build Status

IronPython

honeybee-grasshopper-energy

๐Ÿ ๐Ÿ“— ๐Ÿ”ฅ Honeybee Energy plugin for Grasshopper (aka. honeybee[+]).

This repository contains all energy modeling Grasshopper components for the honeybee plugin. The package includes both the userobjects (.ghuser) and the Python source (.py). Note that this library only possesses the Grasshopper components and, in order to run the plugin, the core libraries must be installed in a way that they can be found by Rhino (see dependencies).

Dependencies

The honeybee-grasshopper-energy plugin has the following dependencies on core libraries:

Other Required Components

The honeybee-grasshopper-energy plugin also requires the Grasshopper components within the following repositories to be installed in order to work correctly:

Installation

See the Wiki of the lbt-grasshopper repository for the installation instructions for the entire Ladybug Tools Grasshopper plugin (including this repository).

honeybee-grasshopper-energy's People

Contributors

antoinedao avatar chriswmackey avatar coditect avatar dependabot-preview[bot] avatar devang-chauhan avatar mostapharoudsari avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

honeybee-grasshopper-energy's Issues

OpaqueMaterial to use `clean_and_id_ep_string()` for identifier

Hi,

In reference to the Post on the discourse forum: "Check for Duplicate Material Names":

User-messages are certainly helpful when this problem occurs, but a possible fix to avoid the issue entirely would be to use clean_and_id_ep_string() on the user-provided name instead of just clean_ep_string()


Existing:

honeybee-grasshopper-energy/honeybee_grasshopper_energy/src/HB Opaque Material.py

. . . 
name = clean_and_id_ep_string('OpaqueMaterial') if _name_ is None else \
    clean_ep_string(_name_) 
. . . 

Proposed:

. . . 
name = clean_and_id_ep_string('OpaqueMaterial') if _name_ is None else \
    clean_and_id_ep_string(_name_)  #<---- Set the identifier to always have an ID number
. . . 

Unless there is another reason that the identifier and the display_name have to always be the same?


Example GH File:

material_test.gh.zip

Figure out how to bypass the lack of a working sqlite3 module on GHPython for Mac

It seems that the sqlite3 module in GHPython for Mac does not work. Whenever it gets to the point where I execute an SQLite query, I get the following error:

Runtime error (EntryPointNotFoundException): LockFileEx assembly:<unknown assembly> type:<unknown type> member:(null)

Creating the connection, pointing the cursor, and everything else succeeds. It's just the execution of the query.

From what I can tell from my quick research, it's specifically because of using IronPython on Mac and there doesn't seem to be any way to get this to work. I verified that the sqlite3 queries work perfectly fine with a standalone installation of Python 3.7 on mac. So it seems that the only way around this might be to add CLI commands to run the SQL module and return dictionaries of the data collections.

@mostaphaRoudsari and @MingboPeng , do you have any thoughts about how we could address this?

Internal heat gains as fixed numbers

Please provide ability to add internal heat gains as fixed numbers, not based on occupancy or area or another variable. For example, 1 person or 500 watts or 200 cfm to a zone irrelevant of its floor area or any other parameter.

Thank you!

Add a "HB Make Plenum" component that enables setting is_conditioned

A component like this will be particularly useful as the default program in the Grasshopper plugin is a generic office.

Just like in legacy, there should be a conditioned_ option that lets people override the default behavior of removing the HVAC system.

I think it would also be nice to make the default behavior keep the infiltration of the existing Room since plenums should still technically have infiltration (just not any other loads). We can add a remove_infil_ option that can remove all loads from the Room if the user so desires.

Add a "HB Peak Loads" component that only runs a design day calculation

It seems the "HB Annual Loads" component has proven extremely useful since, 70% of the time, I am running an energy simulation to see if the overall results make sense and that I set up my model the way that I expected. Only after that sanity check would I move towards adding detailed HVAC or natural ventilation to get metrics like EUI or comfort.

So I think we will want to add a "HB Peak Loads" component that similarly runs a quick calculation aimed at just producing loads and load balances for the heating + cooling design days. This will not only allow for quick sanity checks of sizing calculations but it will give all of the users who are using E+ primarily to size systems a quick/optimized path towards this end.

Add a component to Run OSM and add measures to Run OSW component

We should add a component that allows one to start from an OSM file since I imagine that some users may export an OpenStudio model from honeybee, edit some of the HVAC properties in the OpenStudio GUI, and then want to run it and import the results to Grasshopper.

We should also edit the component that currently starts from an OSW file to accept additional measures and handle the case of a reporting measure in the OSW.

Add a Component to get ProgramType and ConstrucitonSet objects off a Room

It's very easy to get the ID or name of a ProgramType or ConstructionSet object from a Room right now using the honeybee-grasshopper-core "Visualize" components. However, there are a lot of cases where you'd rather have the object instead of the ID. So we should probably add a component under 0 :: Basic Properties for this.

Hot water bug in HB Thermal Load Balance

Hi,

I believe the following two lines of code

new_hw = [hw * 0.25 for hw in hot_water_]
for hw in new_hw:
should read

        hot_water_ = [hw * 0.25 for hw in hot_water_]
        for hw in hot_water_:

That way here:

load_bal_obj = LoadBalance(
rooms, cooling_, heating_, lighting_, electric_equip_, gas_equip_, process_,
hot_water_, people_gain_, solar_gain_, infiltration_load_, mech_vent_load_,
nat_vent_load_, face_energy_flow_, units_system(), use_all_solar=is_model)
the processed hot water is referenced, as opposed to the original hot water.

Kind regards,
Marc

After some time has passed, clean up HVAC component dictionaries

Right now, the three template HVAC components contain dictionaries with a lot of extra keys that were meant to help deal with a couple breaking changes that we made in honeybee-schema. The extra dictionaries include the hvac_dict and the vintages dictionary. In another two stable releases after we aren't so concerned about people using the old dropdown list of the HVAC enumerations, we should just simplify the code in these components. We can probably get rid of the hvac_dict and reduce the keys in the vintages dictionary.

Bake/Internalize Honeybee GH object

We should be providing these:
-Bake Honeybee GH geometry object to Honeybee Rhino geometry object.
-Internalize Honeybee GH object in HBObject primitive.

Separate Result Parsing/Visualization from Simulate Tab

Now that we're not as concerned about running out of space by cramming both Radiance and Energy into a single Honeybee tab, I think we should break the HB-Energy simulation tab into two and clearly differentiate the components that run/set parameters of the simulation and the components that parse results.

Add Wind Speed metric to HB Read Environment Matrix

Hi Legends,

It'll be great to have Wind Speed as one of the metric to be available through HB Read Environment Matrix. It can be very useful for the cases, which use CFD to calculate the wind speed for every simulation grid point.

I suppose this feature should be easy to implement as the CVSs are available in the Conditions folder alongside all others.

Thank you for looking into this.

Cheers
Dmitry

Change Room-Applying Components to use Longest List Logic

It seems many people would appreciate not having to use Grasshopper data trees to apply properties to Rooms.

And, because I found a way to implement the longest list logic in a way that makes the code much cleaner/read-able, this can be implemented cleanly. So I think I'll use this longest list logic in a few components that apply properties to rooms:

  • HB Window Opening
  • HB Apply Load Values
  • HB Apply Setpoint Values
  • HB Apply Room Schedules
  • HB Apply ProgramType

I should also make sure the HB Apply Modifier Set has this functionality too.

But I plan to not touch the components that apply properties to surfaces like the "HB Make Adiabatic" or the "HB Apply Opaque Construction" since these components use a different interpretation of list logic (applying different properties to surfaces that face different orientations if a list is input). If people need the same capabilities with these components, they can use Data Trees.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.