Dynamic shading controlled by .csv for daylight simulation, in Honeybee legacy



I am wondering if it is possible to control a dynamic shading system for daylight simulations using a .csv file as input in Honeybee Legacy version? Daysim does seem to have the option aviable: “external shading schedule (control keyword = AnnualShadingSchedule)”, http://daysim.ning.com/page/daysim-shading-control-modes. But I can’t find the place to input this in Honeybee.

If the option is not implemented I am very curious as to what it would take to implement it, since I would be interested in doing that.

Thank you

Best regards Tobias


In addition - a solution in Honeybee+ would also work
Again I’m very interested in helping out, but might need to be pointed in the right direction due to limited programming experince.

Best Tobias


(a detailed reply so that it can be referred to for future queries on this matter)

Hi @tobiaspedersentsp, implementing lighting controls in HB[+] has been on the backburner for quite a while. @mostapha and I have been talking about implementing the lighting controls functionality from Daysim and DaysimPS inside Honeybee[+]. Since Honeybee can practically do any number of window groups, as opposed to only two in Daysim, this can be a real game changer in terms of the way shading systems are evaluated. Additionally, we can also support any number of sensors, BSDFs, cloud-based workflows etc (none of which, again, are possible through Daysim).

Before I became involved with Ladybug Tools, I had posed a question similar to yours on the forum in 2015. You can see @mostapha’s reply here: Python Subprocess vs Windows Batch file performance/preference. The reply to your suggestion about helping out would be the same.

Addressing your question specifically, the two options would be to either expose this option in the Legacy version, or undertake new development in HB[+]. If this is for a one-time office project or something similar, the first option would likely be easier(I would suggest creating an issue for exposing that functionality if it doesn’t exist). If you are working on something long term instead, it might be worth the time and effort to get involved in HB[+]. Compared to the legacy version, HB[+] API is very well documented and the object-oriented framework is pretty stable as well. The core-library in HB[+] was designed to facilitate addition of new features with minimal coding, so, you won’t required to do much coding. The primary effort is required in creating/running test cases in Daysim and then testing if the results match in the replicated functionality in HB[+].


Thank you very much of your reply @sarith

In terms of motivation I am currently doing my final project as BSc Architectural Eng. at Technical University of Denmark in cooporation with MicroShade A/S - the producer of the “micro-perforated shade” seen in here:

The main objective of the project is to develop combined thermal and daylight workflow to be used for generating a large dataset comparing different types of solar shadings, at different location, with different orientations, glazing ratios and so on. Focussing on accuracy and speed.

I have been using Ladybug-Honeybee Legacy for a year and I am happy to contribute now and in the future for HB[+]. Since I’m going to do a lot of simulation and dataanalysis for my project anyway I might as well include validation of the new functionality for HB[+] - it seems like a good starting case for me to start contributing.

I just got my self started with Git and GitHub, read Mostaphas words on contributing and found the API documentation. Any other advice for smoothing the learning curve (first project being ability to assign .csv schedules to dynamic shading) ? And are there any means of commucation on github?

Best Tobias


Hi Tobias, you can continue the discussion here: https://github.com/ladybug-tools/honeybee/issues/211

The first step would be to run an annual HB[+] daylight coefficient calc with at least two window groups. Once you are through with that, let us know on the github thread and we can discuss further.


Hi @tobiaspedersentsp and @sarith,

As I replied on GitHub this is already implemented in Honeybee[+]. Take a look at 3-Phase sample file. In that file I used a sensor to generate the blind states but you can input the values directly from the csv file.

For the legacy version it won’t take a lot of work to implement but since there won’t be so many users who would use such an approach I think we should go with the [+] plugin.


Impressed on how you found this one! I totally forgot that we had this conversation online before the Radiance workshop! :slight_smile:


I see it now - thank you!


I meet same problems for daylight simulation . I want to use .csv file to control the blind’s angle for every hour . Could you tell me how to address it .dynamic_control.gh (593.7 KB)
Thank you in advance!!!


I think there are three problems that needs to be addressed

  1. Closed loop systems.
  2. Short time steps (minutes)
  3. Diffent shading states in the same zone.


In my opinion , I think this tool should be convenient for solve the dynamic control of blind angle like EP’s EMS. But I can not find this forum to discuss to solve this important issue . HaHaHa