ty lots as extrusions with their height depending on perimeter length. Then I added a 'Cull Duplicates' group to avoid properties that had duplicate 'Area' centroid points. That reduced the number of properties from 364 down to 331, though five of those have 'Area' values between 88 and 205, ten have values less than 500 while the average is ~1.3 million!
So the data is still suspect. Some appear to be nested inside of others? But using those 331 properties, I now find 32 that intersect the 'Zoning Districts'. But that's not the same as a list of properties that span two or more 'Zoning Districts'... Not having fun anymore. :)
…
Added by Joseph Oster at 10:40am on January 14, 2016
but as one would imagine after 6 or so 'animals' it gets so large that the machine starts to crawl :/
88% of the resources come from the permutation script, my guess is that if the permutation were calculated on the fly with the counter(the engine) it wont have to pre-compile the list which would be much faster...
If anyone has an idea im all ears....
I attached the file (re-written in C#) …
exact formula is inside /lib/skybright.cal if this can help you to find the name.
{ RCSid: $Id$ } { Sky brightness function for sunny and cloudy skies.
Additional arguments required for calculation of skybright:
A1 - 1 for CIE clear, 2 for CIE overcast, 3 for uniform, 4 for CIE intermediate A2 - zenith brightness A3 - ground plane brightness A4 - normalization factor based on sun direction A5,A6,A7 - sun direction }
cosgamma = Dx*A5 + Dy*A6 + Dz*A7;
gamma = Acos(cosgamma); { angle from sun to this point in sky }
zt = Acos(A7); { angle from zenith to sun }
eta = Acos(Dz); { angle from zenith to this point in sky }
wmean(a, x, b, y) : (a*x + b*y) / (a + b);
skybr = wmean((Dz+1.01)^10, select(A1, sunnysky, cloudysky, unifsky, intersky), (Dz+1.01)^-10, A3);
sunnysky = A2 * (.91 + 10*exp(-3*gamma) + .45*cosgamma*cosgamma) * if( Dz - .01, 1.0 - exp(-.32/Dz), 1.0) / A4;
cloudysky = A2 * (1 + 2*Dz)/3;
unifsky = A2;
intersky = A2 * ( (1.35*sin(5.631-3.59*eta)+3.12)*sin(4.396-2.6*zt) + 6.37 - eta ) / 2.326 * exp(gamma*-.563*((2.629-eta)*(1.562-zt)+.812)) / A4;
…
didn't look at it that closely), other than to say tree data structure is helping you and hurting you.
What I did to fix the file was work backwards. Looking at only the left panel you are trying to create 11 total planar surfaces from edge curves (8 curves per surface). That means you should be generating 11 of each type of curve so that you will have 88 total curves when you attempt to join them.
Tree data was in some cases giving you 121 of each type of curve (lists matching with tree structure...) so I worked backwards from your individual curves to flatten the inputs until ending up with only 11 (the expected number) of each type of curve.
…
i to usb cable and was able to connect Grasshopper with my digital piano realtime through a simple VB.NET component, no need for any other intermediate software. I used this library http://midiservices.codeplex.com/ (but there are several others).
The VB component outputs a list of 88 values that correspond to the intensity of each piano key at the current time (if the pedal is on and a key is depressed the value is halved, if the pedal is off the value is 0).
The rest of the definition is just to do something with this data. It uses these values to display each note as different floating colors that move with the wind (using Kangaroo). The strength of the wind changes as the music dynamics change.
If there are several devices connected you might have to change the line device.Open(0) to another number.
Definition: piano_midi.gh
…
an be given as 88° and 95°. All three angles must sum up to 180, and we're already 3 degrees over balance. Or maybe the user specifies three edge-lengths: 21, 12 and 8. 21 is bigger than 12+8, so even if the triangle was stretched flat, the two short edges cannot reach the ends of the long edge. The above is easy to test for and I add errors to the component if an invalid triangle is provided. However there are also many angle+edge length combinations which result in invalid triangles.
I could of course test for these as well, but the problem is now tolerance. What if the user specifies a redundant angle of 54.7°, whereas the mathematics tell us that the actual angle is 54.7002°. Is that an error? If so, is the angle wrong or is perhaps one of the edges wrong? Or has the triangle simply been over-constrained? Is there a mathematically robust way of dealing with this? And if so, would that also be the most user-friendly way of dealing with it?…
Added by David Rutten at 2:23pm on August 23, 2014
s are identical to those in Grasshopper so I am getting an ambiguous reference error when loading the OpenStudio.dll into my component and using the Point type hint.
private void RunScript(Point3d pt, ref object os3DVector)
{
OpenStudio.Point3dVector points = new OpenStudio.Point3dVector();
points.Add(pt);
}
Error: 'Point3d' is an ambiguous reference between 'Rhino.Geometry.Point3d' and 'OpenStudio.Point3d' (line 88)
Is there any particular reason the Grasshopper reference to Point3D is implicit rather than explicit Is this something that can be changed on my end as it appears to be locked down.
Would like it to read as follows:
private void RunScript(Rhino.Geometry.Point3d pt, ref object os3DVector)
{
OpenStudio.Point3dVector points = new OpenStudio.Point3dVector();
points.Add(pt);
}
Awesome, thanks!…
rkup) as below:
float coeff_perez [] is from Perez's paper in solar energy vol. 50, No.3. pp235-245, 1993.
i would like to adjust A3, A4, A5, A6 and A7 using measurement irradiance data over a whole year for every minute or hour, and update these coefficients under the file perezlum.cal. It means i may need to re-compile gendaylit.exe, which i have no idea how to do it.
i found radiance has another version on gendaymtx.c v2.13. it includes static const double PerezCoeff[8][20]. I am wondering which version of gendaymtx does ladybug GenCumulativeSkyMtx use.
Thanks for your suggestions on honeybee plugin. I will take a look and see how.
Cheers,
Le
…
ts. Ideally, I'd like to set the exact number of points populating the region, ie 211 in GH = 211 visible in rhino.
(I was able to achieve the exact number of points using populate2d instead of sdivide, but could only get this to work with a simple rectangular region)
2) After I have exactly 211 points, I'd like to populate each of the points with a block made in rhino (for example: the stick figure man seen in the view)
(One idea is that I build a dummy geometry and replace later with my block in rhino. But how do I make this change universally over the 211 points?)
…