Solar Envelope problem

Dear Boris, Chris, Mostapha,

I have practiced the Solar Envelope example file and it was extremely cool!!

I have several questions as I took a close look at the definition. Could you kindly explain to me?

Thanks in advance!

Hi Maria,

Boris can answer your questions much better than I. Meanwhile I give it a try.

  1. Are you talking about the Grasshopper definition? If so that’s optional. You can choose any other day that you want.

  2. That is again to show how you can use conditional statement to filter sun positions. You can remove it from your file.

  3. As far as I can see it’s because your base curve is located underground.

If you still have questions please also share the grasshopper definition.

Hi Mostapha,

Thanks for your reply.

For Q 1/2. Yes, I am talking about the Grasshopper definition. I thought the default conditional statements were based on the theory which I was not clear. Do you mean they are just randomly?

For Q 3, I have checked my model and the base curve is located on the ground. Could you help me check again? (see attached)

Thanks a lot!!

Dear Mostapha,

The 3dm file is over the up limit file size. Do you have email and thus I can send you via email? Thanks! (421 KB)

Q1-2. Yes. They are just examples.

Q3. Did you try to reverse/flip the curve? I suspect that it’s looking downwards.

Dear Mostapha,

Sorry for my delay in reply. I have checked the curve and corrected the direction for the ground and base curve. The result is the same…


It is not possible to check your case without your geometry. I understand it is heavy size, but i suggest you internalize the Base Surface geometry and at least parts of your surrounding buildings. I believe there isno need of all of it in order to check and understand what is going on.


Dear Abraham,

This is my latest results after deleting some surrounding buildings. I have also attached the 3dm and gh file for you to review. Thanks a lot!!

Site Model_Solar Envelope Analysis_Shanghai_Error testing.3dm (2.19 MB)
SolarEnvelope_Shanghai2_Error (400 KB)


There is no problem at all with your model. If you see the whole south (from SE to SW) is free of obstructions. The lower mesh you get is telling you that your solar elements can be installed at those low heights without being affected by the surroundings. The default low value is -20 m, which is the lower mesh you get. You can input less than that (i did -50) and still get the possibility of having the solar collectors very low.

If you want to test what i’m saying just put some buildings at the south and you’ll see that the solar collection mesh will rise. At an ideal situation you want it as lower as possible. In this way you are granted to receive sun at your plot, since the neighbors are not blocking it from you.

As for the solar envelope something similar but opposite is happening. Your context is pretty much away so you can build high. The default height is 50. You can give a higher number and you’ll see that.

Hope this is clear.


Dear Abraham,

Thanks for your reply. I am much clear now. Could you tell me where can I set the lowest mesh value in my definition? Thanks.

At the maxHeight input of the solar envelope component.



I just wanted to add that the exact values of the conditional statement are left up to your discretion depending on the reason why solar access is important to you. Here are some values that I use for some typical reasons why solar access can be important:

Solar Access for Passive Solar Heating - The conditional statement should request sun vectors for any hours below the balance point of the building (the temperature at which the building starts requiring additional heating). For residences, this can be as high as 18C and for commercial/retail buildings with high internal heat gains, this can be as low as 10C. 16C is around what you might find for some residences with better insulation and is probably the reason why that is chosen in the file.

Solar Access for Outdoor Thermal Comfort - The conditional statement should request sun vectors for any hours below the lower limit of outdoor comfort (UTCI uses 9C for this lower limit).

Solar Access for Health of Plants/Trees in a Park/Garden - This is a bit of the opposite of the other metrics since you want hours of the warmer season. In this case, I usually use solar radiation as the annualHourlyData with the conditional statement and I request hours that are above a certain radiation level (where the plants are benefiting the most). I then use an analysisPeriod to get rid of any months of the year when the trees don’t have leaves on them.

Hope this helps,


Dear Abraham,

Many thanks!

Hi Chris!

May I ask you, how do you input the annualHourlyData (such as the solar radiation) to the Solar Envelope component?

Thank you!

You input that data to the annualHourlyData_ input on the sunpath component to filter the vectors and then provide those vectors to the solar envelope component.


Wow thank you so much!