Photovoltaics Components Release



Hi Theodoros,

I am glad to hear that you are enjoying the Photovoltaics components!

You mentioned TSol. Is this the T*SOL from Valentin software? Isn’t it specific for solar thermal energy analysis? Are you working on a PV system which will power a domestic hot water boiler?

To answer your questions:

1) Each grasshopper component (ghpython being one of those too) is using grasshopper’s data matching algorithm. This algorithm takes care of complex issues which may arise from combining lists with single items, data trees with different number of items per branch and so on.
I think there is a way of introducing a call to other processor’s threads per each inputted surface, but this will be a very difficult job, as it will require writing a custom data matching algorithm. I do not think I am up to that task.
Instead I tried to introduce the multithread only to the final part of the PVsurface component and one of its time consuming parts: calculation of sun angles, solar radiation and ac/dc power output.
I attached the test file below, but sadly it didn’t go well: the multithreaded version mostly runs at the same time as the regular version.
I do not think I am qualified enough to answer why is that so, but I think that it may have something to do with the type of the function that the multithreading is applied to: the code is suppose to run few separate functions a couple of thousand times, and work with a couple of lists. From my experience, the multithreading works the best when a single list or two are supplied to a single function. I may be wrong on this.
I am very sorry to say that I can not implement this feature.

2) I am not familiar if open source PV modules database has been released.
But one can always download the data for specific modules from producers websites. It can then easily be transferred to a .csv file or other text file.

Ladybug Photovoltaics are based on NREL’s PVWatts model.
In comparison with other commercial software applications, PVWatts offers a more generalized system model, with some of the values and characteristics being assumed or embedded.
The Fuentes empirical thermal model we are currently using follows the same logic: it generalizes the Module characteristics. The following characteristics are only editable: module efficiency, temperature coefficient and module mount type.
It may be possible to replace Fuentes with some other, less generalized 5 parameter thermal model. But as an architect, I would definitively need help on this.

Sorry if my reply did not fulfill your expectations, and thank you for the kind words! (461 KB)


Hi Djordje,

Thank you for the informative answer. I will test the attached script during this week and share my experiences.

Also, I understand now better the modeling process of the PV systems. I guess I was only thinking to open a discussion in case someone was already working on compiling such a database of different installations, etc. But it’s not really a problem inhibiting me using these awsome components.

Kind regards,



Hi there,

This is probably may not be related to Ladybug, rather to my display settings.

It’s a problem I have been facing all along in Rhino.

Every time my shaded view looks all glossy and translucent when orbiting, even when my display settings are set to default. I only have this issue on my laptop.

Could someone please help me out?



Hi Erik,

I think your display settings are fine.

The precision_ input of both “Ladybug Photovoltaics” and “Ladybug Tilt And Orientation Factor” components ranges from 2 to 100, where 2 is the default value.
Increase the precision_ input of both components. This will increase the number of the resulting mesh faces, and therefor will remove the blurry-like effect.


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.

Ladybug_Photovoltaics_TOF_results_preview (494 KB)


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.

Ladybug discussion.3dm (3.4 MB)
Ladybug_Photovoltaics_TOF_results_preview internalized (1.45 MB)


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.


The thermal model mentioned in the reply above should be: Sandia, instead of Fuentes.
The link to the publication is correct though. Apologies for the correction.


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.

new_Import Sandia Photovoltaics (459 KB)


Hi Djordje,

This is amazing news! Having a library of PV modules was probably the most important thing missing, at least for me, from these wonderful tools concerning PV system analysis on real projects.

Thanks for your work!

Kind regards,



Hi Theodore,

It’s Jason Sensibaugh’s “fault”.
Glad you find it useful!!


Another update to PV components:

Again, thanks to diligent and ingenious work by Jason Sensibaugh, it is now possible to chose from almost 14000 custom crystalline silicon and thin film modules from California Energy Commission Modules Library, with the new “Import CEC Photovoltaics Module” component.

Not only USA module producers are included but also those from other countries like: China, Japan, South Korea, Spain, Germany, Australia etc.
This is an addition to the previously available 500 modules from Sandia Modules Library.

A small .gh file example is attached below, along with CEC Modules Library file.

Previously named “Photovoltaics module” component is now called “Simplified Photovoltaics module”, to distinguish itself from the new “Import CEC Photovoltaics Module” and “Import Sandia Photovoltaics Module” components.

So to recapitulate:
The “Simplified Photovoltaics Module” component is used to define general crystalline silicon module.
While new “Import Sandia Photovoltaics Module” and “Import CEC Photovoltaics Module” components enable picking a custom module from Sandia and CEC module libraries: (467 KB)
sam-library-cec-modules-2015-6-30.csv (2.17 MB)