Question on annual simulation parameter settings



Dear all,

I am still quite new to Honeybee[+] 0.0.04, and I am running an annual daylight simulation with BSDF material. However I was a bit confused about the settings and annual results reading. I listed my questions as below (some may be very basic), and my simplified gh file screenshot as below. Thanks for your patience and help in advance!

  1. Annual recipe: my understanding is in Honeybee[+], the only annual recipe is annualDLRecipe, is it correct?

  2. For annualDLRecipe, the skymtx comes from skyMatrix, in case of true north and Tregenza skywith 8760 hour, the only input needed for skyMatrix is wea, is it correct?

  3. For dmtxPar, if comes from RADParGridBased, Complexity defines how accurate the result would be (?), and what should the recipeType be here? Will this receipeType input determine what method annual run uses?

  4. If it’s yes to question 3, in case of using 3-phase or 5-phase method for annual run, the wGroups input on analysisGrid will need to be connected. In this case, we have a continuous curved glass along the floor perimeter, with 1 layer of curtain is behind the glass, so it cannot meet “Window surfaces in a group should have the same normal direction”. Does it mean we cannot run 3-phase or 5-phase? If so, shall the receipeType on RADParGridBased be set to Point-In-Time or Daylight Coefficient?

  5. For 1 layer of glass and 1 layer of curtain, should they both be Window Group? Or can they just be HBSurfaces with glass or BSDF material?

  6. Read the result: for annual run my understanding is the Outputs can be connected with both annualMetrics and hourlyValues to read the results, is it correct? However the annual Metrics doesn’t work unless with blindStates input. In case on no blind schedule (shade always down), shall I input a full 1 list?

  7. Is there a way to read the results from daylight folder just like in Honeybee?

  8. In case of further data process, I use to open ILL file for annual analysis and process the data in excel. But in Honeybee[+], there are multiple ILL files in gridbased_annual result folder. Is the total…scene…default.ill the result file I should be reading?

Thanks for reading this post and any feedback will be much appreciated!



You can use Daylight coefficient recipe, as well as 3-Phase and 5-Phase recipes for running annual simulation. Annual simulation is the most straight forward one and is the most memory friendly approach. If you are running the study to get the annual daylight metric then the annual recipe is the most efficient to use.


[quote=“Xiufang, post:1, topic:4033”]
3. For dmtxPar, if comes from RADParGridBased, Complexity defines how accurate the result would be (?), [/quote]

Complexity is complexity of the scene. For a more complex scene you will need higher values to get an accurate result. This is probably a useful case-study to get you started. Try room 1 versus room 2.

It is the method. In your case (annual analysis) it is daylight coefficient. See here.

In any case you cannot apply BSDF materials to a nonplanar surface. It will give you inaccuracies. You have to break down the curved wall into smaller planar polygons.

If you want to test several BSDF files then use 3-Phase or 5-Phase otherwise Daylight Coefficient (2-Phase) method is a better choice. See page 8 of this tutorial: An advanced tutorial for daylighting simulations

Window groups are mostly useful if you want to isolate the results from that certain window group otherwise you can model them just as normal window surface with BSDF material. Any window group that is added to the model will add a separate calculation. See this post to understand how Honeybee[+] handles window groups.

Yes. You can see how you can use both components in sample files. I think that will also help you to understand how window groups work.

That shouldn’t be the case. blindStates is an optional input.

See here: How to load the results from a file into Grasshopper using Honeybee[+] API?

Yes. Just keep in mind that unlike the results from daysim every row represents a point and every column is a timestep.


Thanks Mostapha! Your response is very helpful! I tried to fix my simulation based the detailed advice, but there are 2 strange issues I couldn’t fix:

1.I am running only 1 type of BSDF material, so I am using Daylight Coefficient (2-Phase) method, connecting the recipeType 1 from RADParGridBased to annualDLRecipe. The report output is empty, so are radPar and vmtxPar. But dmtxPar and smtxPar have output.

2.I also converted all non-planar surfaces (curtains with BSDF material) to planar polygons. I found a Rhino script here that helps converting curves to straight line segments, in case someone also needs it.

  1. Then I ran an annual run with 108 test surfaces (each has 1-8 test points, screenshot as below). But when I read the result .ill file, there is only 1 row with 8760 columns. I was wondering what went wrong and led to only 1 test point got tested?


  2. The annualMetrics still shows “1. Solution exception:There should be a list of states for each hour. #states[8760] != #hours[0]”.

Please correct me if I were wrong, but I didn’t find any Honeybee[+] example files on Hydra. Would you mind letting me know where the Honeybee[+] sample files live? Thanks!

Thanks so much for your help!


Flatten testPoints and pointVectors unless you want them to be considered as different analysis grids.

Sample files are here:


Thanks Mostapha! The simulation runs well now! Thanks for the link for sample files!