This repository contains the geometry and model kernel for insolation calculation based on Revit API.
Mathematical model of calculation method uses right circular conical approximation of sun's vector-function S(u,v)=p+vg(u) during 24 hours period. Thus, this method ignores the fact that hodograph of vector-function of sun's direction doesn't actually form an ideal circle and is in fact spiral. But 24 hours span is close enough to form a "circle" and so the approximation won't cause a significant measurement error. Thus, this method's study period is limited to 24 hours.
(1) - general cone equation where
- cone's half angle, - apex, - axis vector,
Bounding cone. Is a mathematical method to limit the sun ray hit angle on a surface point. For instance, if a ray hits a building surface point at an angle >85 degrees, then it most likely won't get inside an abstract room. The idea is to use another cone to bound the sun cone. Bounded insolation cone can be found by finding an intersection of two cones with their apex at origin O:
- Let BC be bounding cone with axis (l,m,n) and angle a, let IC be insolation cone with axis (i,j,k) and angle f, apex point of both is (0,0,0).
- Write (1) for each cone as:
Left part of this equation is 'conical' and right is planar with its normal vector collinear to cone's axis.
- If two cones at the same apex point intersect, this intersection is generally can be described with equation of two intersecting planes. This equation can be found by equalizing left part of (2) of both cones.
But because we are only looking for positively defined half of a mathematical cone (along the axis vector) the solution is always a regular plane equation.
3D example graph can be seen in Github page of this repo.
<iframe src="https://www.geogebra.org/classic/kdk6xwfv?embed" width="1000" height="600" allowfullscreen style="border: 1px solid #e4e4e4;border-radius: 4px;" frameborder="0"></iframe>To find a normal of such a plane PN(A,B,C) is to generalize equation (3).
Let:
If axis vectors of BC and IC are unit vector, then both can be simplified as:
Then:
Modulus was ignored since we're only looking for a positively defined plane along BC axis. Thus:
Or simply:
Such plane with N(A,B,C) is a bounding plane by which we can cut insolation cone.
In case the context doesn't defy a bounding cone with angle (0,Pi/2) an insolation cone is still limited by a tangent plane at a given surface point, and it is a more simple subcase of bounding cone method.