Ladybug Hourly Plot (Formerly 3D Chart)

Hello,

I’m recreating workflows from the Legacy components in 1.4.0. I noticed the LB 3D chart has been swapped out in favor of the LB Hourly Plot.

Are there plans to recreate outputs from the old 3D Chart component? For example, I found the ConditionalHOY useful.

Hi @victorbrac ,

There are more elegant ways of doing this in the LBT plugin, though it admittedly takes a line of code with GHPython:


conditional_hoys.gh (29.5 KB)

Let me think if we can add a dedicated component to give you the hoys from data collections so that you don’t need a custom GHPython component like above. I am fairly certain that we wouldn’t want to put this output onto the Hourly Plot component, though, since dumping long lists of hoys into the Grasshopper UI can really slow down the component, particularly when rendering several plots at once. So it’s nice to only get this hoy data only when you actually need it.

In the meantime, the file above should give you what you need.

1 Like

I decided that a component to give you the HOYs from data collections is going to be broadly useful so I added it to the development version of the plugin:

1 Like

Hi Chris,

I appreciate this post on multiple levels.

  1. thanks for the prompt reply
  2. thanks for providing .gh script with custom GHPython component. I was not familiar with creating GHPython components so I recreated the component for fun / to build understanding. Do you typically point LBT community members interested in learning Python/ LBT libraries to any particular references?

Makes sense to only apply functionality when you need it rather than weigh down the Hourly Component.

I tried running output of the HOYS component back through the LB_Apply Conditional Statement component with another conditional to return only hours of year between 8 am and 8 pm. I could do this with operators, but wanted to better understand the LB_Apply Conditional Statement component.

Does the “LB_Apply Conditional Statement” component “_data” input only accept special type of LBT list called “data collection”? From searching on forum, this appears to be LBT output with header + values. If you have a moment, would you mind confirming the meaning of the “data collection” input?

Yes, if you are interested in creating your own GHPython components on top of the Ladybug Tools software, you should consult the Ladybug Tools SDK docs here:

https://discourse.ladybug.tools/pub/ladybug-tools-core-sdk-documentation

There is also searchable documentation on all of the existing LBT components here:

https://discourse.ladybug.tools/pub/lbt-grasshopper-doc

Yes, you can create your own data collections from lists of values using the components under the Ladybug Analyze Data tab.

Hi Chris,

Maybe this is an easy one… I used Pollination Rhino plugin to set up model and set zone names. Then I imported into .gh and ran simulation. I checked model in gh right before running the HB Model to OSM component and the zone names were intact. However, after running simulation and plotting results w/ hourly plot I find that the generic zone name is used and not the zone name I’ve set.

Do you have a tip for how to carry through zone names to plot with hourly component?

Example from one of the zones below.

Hey @victorbrac ,

Sorry that your question here fell through the cracks. Every honeybee object has both a display_name (that helps with human-readability) and a unique identifier that is used to match the object to simulation results and coordinate things with other file formats (like the IDF or OSM). Display names can be whatever you want. They can have special characters or non-ASCII characters in other languages and they don’t have to be unique. However, identifiers have to follow a lot of rules. Namely they can only use non-special ASCII characters, not have spaces, and they must be unique.

What you are seeing in the hourly plot is the unique identifier that the Rhino plugin generates by default. However, you can change the identifier to be derived from the Room display_name by using the PO_ResetIdentifier command. That should give you what you want.

1 Like