Photovoltaics Components Release



Hi folks,

Last month Honeybee got PV panels simulation components based on EnergyPlus.

Our Ladybug and Honeybee pets love to work together. As a result of this, we are releasing PV simulation components for Ladybug too. They are based on PVWatts v1 online calculator, supporting crystalline silicon fixed tilt photovoltaics.

You can download them from here, or use the Update Ladbybug component instead. If you take the first option, after downloading check if .ghuser files are blocked (right click -> “Properties” and select “Unblock”).

You can download the example files from here.

Video tutorials will follow in the coming period.

In the very essence these components help you answer the question: “How much energy can my roof, building facade, solar parking… generate if I would populate them with PV panels”?

They allow definition of different types of losses (snow, age, shading…) which may affect your PV system:

And can find its optimal tilt and orientation:

Or analyse its performance, energy value, consumption, emissions…

By Djordje Spasic and Jason Sensibaugh, with invaluable support of Dr. Frank Vignola, Dr. Jason M. Keith, Paul Gilman, Chris Mackey, Mostapha Sadeghipour Roudsari, Niraj Palsule, Joseph Cunningham and Christopher Weiss.

Thank you for reading, and hope you will enjoy using the components!

EDIT: From march 27 2017, Ladybug Photovoltaics components support thin-film modules as well.


  1. System losses:

PVWatts v5 Manual, Dobos, NREL, 2014

  1. Sun postion equations by Michalsky (1988):

SAM Photovoltaic Model Technical Reference, Gilman, NREL, 2014

edited by Jason Sensibaugh

  1. Angle of incidence for fixed arrays:

PVWatts Version 1 Technical Reference, Dobos, NREL, 2013

  1. Plane-of-Array diffuse irradiance by Perez 1990 algorithm:

PVPMC Sandia National Laboratories

SAM Photovoltaic Model Technical Reference, Gilman, NREL, 2014

  1. Sandia PV Array Performance Module Cover:

PVWatts Version 1 Technical Reference, Dobos, NREL, 2013

  1. Sandia Thermal Model, Module Temperature and Cell Temperature Models:

Photovoltaic Array Performance Model, King, Boys, Kratochvill, Sandia National Laboratories, 2004

  1. CEC Module Model: Maximum power voltage and Maximum power current from:

Exact analytical solutions of the parameters of real solar cells us…, Jain, Kapoor, Solar Energy Materials and Solar Cells, V81 2004, P269–277

  1. PVFORM version 3.3 adapted Module and Inverter Models:

PVWatts Version 1 Technical Reference, Dobos, NREL, 2013

  1. Sunpath diagram shading:

Using sun path charts to estimate the effects of shading on PV arrays, Frank Vignola, University of Oregon, 2004

Instruction manual for the Solar Pathfinder, Solar Pathfinder TM, 2008

  1. Tilt and orientation factor:

Application for Purchased Systems Oregon Department of Energy

  1. Photovoltaics performance metrics:

Solar PV system performance assessment guideline, Honda, Lechner, Raju, Tolich, Mokri, San Jose state university, 2012

CACHE Modules on Energy in the Curriculum Solar Energy, Keith, Palsule, Mississippi State University

Inventory of Carbon & Energy (ICE) Version 2.0, Hammond, Jones, SERT University of Bath, 2011

The Energy Return on Energy Investment (EROI) of Photovoltaics: Met…, Raugei, Fullana-i-Palmer, Fthenakis, Elsevier Vol 45, Jun 2012

  1. Calculating albedo:
    Metenorm 6 Handbook part II: Theory, Meteotest 2007

  2. Magnetic declination:

Geomag 0.9.2015, Christopher Weiss


Oooo,this is a masterpiece!!! Bravo!


This is going to be a big one Djordje- Thank you for the great work!


BIG MASS, Great JOB Bro.


Excelent upgrade to the bugs!!
Thanks Djordie.


Thank you!!!

This is so great!


Great stuff and congratulations!


This is amazing! Worked like a charm! Great work!


Hello Djordje,

I am using your tool to analyse a pv installation on the roof of a high rise building. Works like a charm and gives all results. However, I have 11 different surfaces as my pv system that I am inputting to the components. The results come out one for each of the surfaces, along with a big number of sunpath shading graphs (I imagine for each). Is there a way to sum these up? I mean I can, and I am, manipulate the data structures when it comes to results. However, I was wondering if we can get a cumulative sunpath shading. Now that I think about it that wouldn’t make much sense. Would it be possible to get different (coloured?) patches on a sunpath shading for each surface?

Thanks in advance!

Kind regards,



Hi Theodoros,

Would you be so kind to open a new topic on this issue?
And attaching your .gh file would make it much more easier to give a reply.
Thank you in advance.


yeah… same problem here.

Multiple surfaces = multiple sunpath shading would be great if this could be summed to one mesh


One more vote on that from me!


Guau!!! great job, Djordje!!! :slight_smile: I’ve tried your components recently and they are awesome!!!

Just in case someone else have the problem that I found (and it took me many hours to realize…) : the PV surface should be oriented with the normal vector to the sun direction (it’s SO obvious but I was founding an error and didn’t know it was that stupid detail ;))


Hi Eli 2xLee,

Yes, the surface normal direction should always be checked. Otherwise we would end up with a surface which would produce electricity on both of its sides.

Glad it worked for you. It would be useful to check the example files too. They are really simple. Here is a graphical preview of the two example files.


Great work Djordje!

I had a problem regarding the optimum tilt and azimuth angle. I tried to run the same simulation as the figure in the description (Portland, OR) but something is wrong with the results. Even when I changed the weather file to any location in the northern hemisphere, the optimum tilt and orientation are 45 and 180 respectively. Is it possible to attach your .gh file in the example folder?

Another issue would be the same as discussed in the previous replies. Adding more than one PV surface will cause a problem of overlapping between the different shading diagrams.

Other than that, the components are very handy and helpful!


Hi Marwan,

Both “Tilt and Orientation Factor” and “Sunpath shading” components have “precision” input.
It controls how smooth the calculation mesh is, and therefor how precise the results are.
I am attaching a similar example definition to initial topic’s photo.

As for the numerous PV surfaces inputed: Each output geometry for each PV surface is located in its own branch. So you just need to use the grasshopper “Tree branch” (or “Explode tree”) component to identify the shading diagram you would like to see. Check the attached Photovoltaics shaded

Thank you for the kind words. (444 KB)
Photovoltaics shaded (883 KB)


Hi Marwan,

The new outputGeometryIndex_ input has been introduced to Sunpath shading component. It now makes the usage of previously explained Tree branch component redundant.
It will generate the geometry output paramters for a chosen index of the _analysisGeometry input
Check the attached file below:

@ Hi Theodoros Galanos, Dimitrios Papadopoulos, Atis Sedlenieks:
On issue about having a single graphical representation for a couple of PVsurfaces:

Sunpath shading component is essentially replicating the Solapath finder tool. Each PVsurface will have its own numeric shading value (annualShading output).
If you would like to know the average shading value of all those PV surfaces all together, you can just average all of them.
However making an average graphic shading representation of all of them is not something Solapath finder tool does, and I think there is a good reason for that: that kind of averaged geometry would be “unreadable” due to overlapping from all PV surfaces shading meshes.
Here is a bit extreme example:

Just to mention that two new components have been added:
PV SWH System Size and Photovoltaics Module.

PV SWH System Size enables creating the PVsurface from an initial size of the system in kilowatts.
Photovoltaics Module enables defining the settings of the PV module (temperature coefficient, efficiency, module type…)
You can see how they are used in the file attached below:

Happy Holidays and Happy New Year everybody!! (889 KB) (453 KB)


thanks djordje,

Amazing job…i wanted to ask, is it possible to reintegrate the sandia model calculations of the PV surfaces back to the Heat balance of the space gains in Honeybee to calculate the effect of these panels on the inner simulated zone?


Hi Mohamed,

Thank you for the kind words.
I actually haven’t tried doing that, but I think it is possible.
One way might be to directly calculate the conductive heat transfer through the roof/facade construction beneath the PV array.
I the attached an example below, of residential wood roof construction filled with insulation layer in between the roof rafters:

If “heatGainPerYear” output is negative (like in attached .gh file for Calgary) it means the PV’s are not increasing the heat gains of the room beneath them. But that again depends on the room temperature, which you could alter with “Tinside” input.

Have in mind that this kind of calculation is only valid for “moduleType = 0” (insulated back PV module):

In cases of “close roof” and “open rack” mount types (moduleType = 1,2,3), probably some cfd simulation would have to be performed to get more precise results. (455 KB)


Hi Djordje and everyone,

I am greatly enjoying these wonderful components. It is refreshing to be able to produce performance-based analyses of PV systems, as opposed to ideal analyses from programs like Tsol.

I have a couple of requests or suggestions, if I may:

  1. The components seem to be doing a lot of heavy duty calculations, especially relating to the number of surfaces that are used (I have noticed a correlation with working time and number of input surfaces). In generally, the workflow can get quite time consuming. I was wondering then if it is possible to allow for parallel computation for these tools? Especially in the case of number of surfaces it should provide with a significant improvement (different surfaces assigned to different processors)?

  2. As discussed, the performance-based results according to the specific geometry of the site and building is the greatest advantage of these tools, along with them being integrated to the HB/LB and Rhino/GH community. However, for practical reasons, programs like TSol have very detailed databases for equipment characteristics. I am not entirely sure but I believe that the data for these (propriatory) databases has been extracted from open sources. I was wondering if anyone knows if this is true. If yes, is there a way we can assist in creating a database for these tools in order to quickly and easily select equipment characteristics for our PV systems?

Thank you for all the great work, testing, and feedback!

Kind regards,


Ladybug_Sunpath Shading (SunpathShading)