I am currently researching BIPV (Building Integrated Photovoltaics) glare issues in urban environments. My workflow is as follows: I create an urban model and a photovoltaic (PV) model using Honeybee (HB) and then run simulations with Grasshopper’s Radiance components.
However, I have encountered a few challenges during my simulations:
Outdoor Glare Simulations: I noticed that Radiance’s annual glare calculations seem more suitable for indoor environments. When applying it to outdoor simulations, it appears I may need to make some custom adjustments.
BSDF Material Generation Issues:
First, I attempted to use Grasshopper Python to read a surface modeled in Rhino and generate a Radiance file (.rad) containing two layers of materials. Unfortunately, I could not accurately define the PV material, so I had to settle for using void glass for one layer and void plastic for the other. When I opened the .rad file in a text editor, the materials did not appear as expected (please see the attached image).
Secondly, I tried using Grasshopper Python to call genBSDF to create a BSDF file, but the resulting file is 0KB with no content.
I would appreciate any guidance on where my process might be going wrong or if there is a more efficient approach I could take. I have attached my code and documentation for reference. I look forward to your advice.
I think here you will just end up with a darkish grey plastic material as you are using the same polygon with both modifiers. If you do intend to go with this approach, it would make more sense if the glass polygon is in front of the plastic panel.
Are you sure your rad file is correctly set up ? You can check this by previewing the file with objview. Additionally, genBSDF requires the input rad file to be placed in a specific way w.r.t to the world coordinates (see tutorial here). Since you are getting a 0kb file, it is likely that the command terminates with error. What is the stderr message from Popen? It is probably easier to troubleshoot if you run genBSDF from commandline initially instead of using Python.
Regards,
Sarith
(PS: It is easier to figure out what is going on if you paste text (instead of screenshots) of Radiance commands, materials etc)
Thank you for your patience! I tried again following your advice, but encountered some new issues in the process. I wonder if you could help clarify these questions?
1.I aimed to create a .rad file with PV glass as the top layer and a photovoltaic cell as the bottom layer. Here are the material definitions I used:
You should make sure the model resides in the -Z half-space, and you can use getbbox to check the bounding box. According to the RAD files you provided, the model resides in the +Z half-space.
if you use the tabular BSDF generated by genBSDF, in particular when reyling on a coarse discretization such as the 145 Klems patches, be aware that this may lead to underestimated luminances (and overestimated solid angles). The Klems BSDF will spread all the reflected light over a minimum apex angle given by its angular resolution, that may be greater than the effect of the PV module. We illustrated the problem a year ago (Figure 4 in the linked article):
Grobe et al. (2023). Modeling reflection by structured building-integrated photovoltaics. Journal of Physics: Conference Series, 2600, 042006. Radware Bot Manager Captcha
Here, we faced the problem that a structured surface produced a distinct widening of reflected light along only one axis, that could not be accounted for by the tabular models. We addressed the problem by modelling the surface structure by modulating the surface normal (texfunc) rather than relying on the tabular BSDF. I do not know if this problem occurs with the PV modules you model.
You can use “bsdfview” to render the BSDF, but I would recommend first running “checkBSDF” on the output, just to see if the reflectances and transmittances are reasonable.