algorithmic modeling for Rhino

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


2) Sun postion equations by Michalsky (1988):

SAM Photovoltaic Model Technical Reference, Gilman, NREL, 2014

edited by Jason Sensibaugh


3) Angle of incidence for fixed arrays:

PVWatts Version 1 Technical Reference, Dobos, NREL, 2013


4) Plane-of-Array diffuse irradiance by Perez 1990 algorithm:

PVPMC Sandia National Laboratories

SAM Photovoltaic Model Technical Reference, Gilman, NREL, 2014


5) Sandia PV Array Performance Module Cover:

PVWatts Version 1 Technical Reference, Dobos, NREL, 2013


6) Sandia Thermal Model, Module Temperature and Cell Temperature Models:

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

7) 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


8) PVFORM version 3.3 adapted Module and Inverter Models:

PVWatts Version 1 Technical Reference, Dobos, NREL, 2013


9) 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


10) Tilt and orientation factor:

Application for Purchased Systems Oregon Department of Energy


11) 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

12) Calculating albedo:
Metenorm 6 Handbook part II: Theory, Meteotest 2007


13) Magnetic declination:

Geomag 0.9.2015, Christopher Weiss

Views: 12164

Replies are closed for this discussion.

Replies to This Discussion

Hi djordje,

Thank you for replying so promptly. It worked!

I have another question. How do you display the isocurves in the Tilt And Orientation Factor, and how do you display the quadrant Shading Percents?

Thank you.

Hi Erik,

Both of your issues deal with component's output previews.

To display the isocurve in the Tilt And Orientation Factor component, just turn on the preview of the whole component.

Displaying quadrantShadingPercents can be done in two ways:
a) less visually appealing - in Grasshopper. It requires hiding of "sunWindowMesh" output and plugging the "Text tag" component to the particular outputs.

b) more visually appealing (the example that you can see in the initial reply of this topic) - just bake the component's results (set the "bakeIt_" input to True).

I attached a .gh file in here which replicates the upper suggestions.

Also it's a bit tricky to answer your questions without your .gh and .3dm files. I understand that you are using the Ladybug Photovoltaics Sample files, but sometimes users change something which affects the final result.
For any future questions I would be grateful if you could attach your .gh and .3dm files (in case you are using .3dm files). Thank you.

Hi djordje,

Thank you very much for your response. I will keep in mind to attach the .gh files in the future.

However, the isocurves still don't appear, even in the .gh file you sent me.

The visually appealing display of the shading percents do not really seem to work either. It doesn't bake it when the boolean toggle is set to True. I don't know what I'm doing wrong.

Here's your .gh file I've edited, in case I'm overseeing something.

Thank you.


Hi Eric,

I already turned off the Sunpath shading component's outputs. You didn't have to turn it by yourself. Sorry if my explanation wasn't good enough.

For baking: by default, when Ladybug components geometry is baked, the last parent layer is turned off. So what you have to do is to turn it on.
Sometimes you even have to turn off the very last child layer. I think this may be a bug with Rhino.
Also make sure that you choose Shaded or Rendered display mode instead of Wireframe. Here is a screenshots of the mentioned steps:

For the isocurves issue: the file I attached in my last reply creates them. Here is a screenshot:

Can you please post a screenshot of what you are getting?

Hi djordje,

Thank you for helping me out.

I have taken some screenshots you can have a look at here below. It's better, but here's still a problem in displaying things... The first picture is in the Ghosted mode, as in your screenshot. But I'm obtaining it better in the Rendered mode (second screenshot). Might this be related to the display problem I was talking about earlier?

And then for the isocurves, there are still not appearing, even when baked...

It's better, but here's still a problem in displaying things... The first picture is in the Ghosted mode, as in your screenshot. But I'm obtaining it better in the Rendered mode (second screenshot). Might this be related to the display problem I was talking about earlier?

You are ok. You have the "mesh wires" enabled in the first display mode, and do not have them in the second one. So use the second one (that being Rendered I suppose).

And then for the isocurves, there are still not appearing, even when baked...

Can you please:
a) attach the .3dm file which contains the baked results of the TOF component?

b) internalize the data, coming out of the TOF component's geometry output, and then attach that .gh file?
So basically you right click on the geometry parameter and choose Internalise data. Then save the .gh file an attach it:

Here you are djordje.


Both your Ladybug discussion.3dm and Ladybug_Photovoltaics_TOF_results_preview internalized show correct results.

Which means that everything is ok with your Ladybug Photovoltaics components, but that something is wrong with your Rhino display modes.

In Rhino application menu, choose: Tools -> Options -> View -> Display Modes -> then choose the one you are currently using (Rendered if I remember correctly).
See if "show curves" check box is enabled. If it is not, enable it:

I really don't know what's wrong...

Try looking for the solution of your problem on Rhino forum:

Attach the Ladybug discussion.3dm file and show them how it looks like on my PC, and then post the screenshot of how it looks like on yours. I think they will solve your Rhino curves preview issue.

Ok will do. Thank you djordje.

Short info about some updates to Ladybug Photovoltaics components:

Up until now Ladybug Photovoltaics components have only be able to use a default-defined modules, with "Photovoltaics Module" component.
Thanks to Jason Sensibaugh, now it is possible to chose more than 500 custom crystalline silicon and thin film modules from Sandia Modules Library, with the new "Import Sandia Photovoltaics Module" component. A small example is attached below.
So yes, from now on, the Ladybug Photovoltaics component supports thin-film modules as well.

Also "Tilt and Orientation Factor" component now has an analysisPeriod_ input to support calculations of optimal tilt and azimuth angles for particular time of the year, instead of it being fixed to the whole year period, which was previously the case.







  • Add Photos
  • View All

© 2022   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service