u isolate specific mesh lines then along the intersections, without having to bake the whole thing first?
wbEdges, and then sort them out of the list.. how? By trial & error? I wouldn't know how to identify the ones I'd need to feed to the Kangaroo Engine with a different stiffness...
That's a picture of my original attempt. The relaxed KGRO Mesh (red) being turned into brep, sliced with multiple planes at once to gain a new series of breps (someones neat python script), and as a patch-surface via Mesh UV fed back to KGRO again, resulting in further relaxed meshes (green).
Doesn't look proper since the last meshes via Mesh UV ether overlap from the patch surface or are to short (as above), but the basic principle worked.
Maybe the last resulting mesh would fit if I get it to work via surface from 4 curves instead of the patching solution? I have the breps borders duped to generate a surface from them , but when exploded I get more than 20 little line-like curves and not 4 curves for the 4 surface edges ( I just made a patch surface instead,... I think I should solve this sooner or later though).
Best would be to slice a mesh with multiple planes and get a series of meshes(thereby avoiding going from mesh to brep to mesh), but I couldn't figure out how or if that is possible.
In any case, thanks a lot..... .. and I remain curious about the new release of KGRO! :)
…
the loops haven't even started yet. This is a one time overhead - re-starting the loops after that doesn't have this long delay until you close and re-open the file.
Second, I got some encouraging results rather quickly but then spent WAY TOO MUCH TIME trying to replace the inner loop with a "Fast Loop". These are not well behaved in the sense that they don't respond to <ESC> like the "Classic" loops do so you can't stop them; and I never got the same results as the "Classic", no matter what I tried - but ultimately, I just got too frustrated with "Fast Loop" causing Rhino/GH and my whole laptop to freeze up - VERY BAD!!!!!!!!!!
I re-wired the loops slightly so that the hour used by your 'analysisPeriod' cluster is determined by the 'D0' value inside the inner loop.
I added a "Loop On / Loop Off" switch to stop/start the looping (which was useless with "Fast Loop" - grrr....).
I 'Simplified' the 'D1' output of the inner loop and enabled 'Record data' and 'Output after the last' on the outer loop.
And I got this - four buildings over three hours takes about 20 seconds:
Eleven buildings over three hours takes about one minute.
I'm not sure what will happen when I increase the hours and number of buildings but will try it when I have more time. It might be a good idea to avoid writing to Excel inside the loops and wait for the end results before writing them to an Excel file?
There are more possibilities for re-wiring based on simplifying various outputs but I'm tired of this for now and have other things to do. The exponential slowdown you observed might be due in part to Anemone adding an extra branch path every time it loops; adding 'Simplify' might help this?
P.S. 11 buildings over 13 hours (6am to 6pm) took 5 minutes 38 seconds.…
Added by Joseph Oster at 12:54pm on January 18, 2016
. Truth is that in 99.9999% of cases is just a couple of code lines specifically written for ...er ... a specific case (meaning that is useless for other cases). Making a Jack for all trades capable to manage ANY situation ... means quite a few hours of brain(?) storming ... and anyway this is not the way that I approach things because I have absolutely no interest to do GH "plug-in" type of stuff.
See the left vertical bar and imagine doing business with the small S: There's 2 "clash" situations occurring: the upper has meaning (where cat VS dog and dog VS cat yields a valid "split") but the lower yields an invalid solid since that "portion" of the S can't split the bar (it only just "penetrates" into the solid).
In order to fix things we need to gather information about things called BrepTrims ("indexed" Curves per BrepFace - so to speak) that (in this case anyway) are either Mated or Boundary ... or ... hmm ... Seam (but should not be any Seam in fact).
This C# for instance gets the invalid breps (per recursive split) and samples these mysterious BrepTrims in an object type of Data Tree: the main dimension is the Brep face index, the equivalent second dim 0 contains the BrepTrim curve and the other has booleans for an 1:1 "rating" of the trim based on a simple question: are you a Seam? (== bad boy)).
Thus "reconstructing" an invalid brep is rather easy based on what that Tree tells us :
What all the above ultra freaky and.or confusing and/or off-topic things mean? Well ... I have about 20 C# that do any imaginable Brep "opp"/query ... but are all classified as internal > thus > as I said, one of these days I'll try to remove "some" lines of code and post something that can do a thing or two more on that matter.…
Added by peter fotiadis at 12:35am on September 13, 2016
he original epw file. The next one contains your dataset. The dataset to be replaced needs to be contained in a csv file as attached. You can replace more data from the original file by addiing additional columns in that CSV and assiging the correct column number in the grasshopper file. The ordering of columns in an EPW file is shown in the last image. For example, Direct-Normal rad is column -21 and Diff-Horz rad is -20. All of this will be clearer once you check the attached gh file.:
By the way, that theory about diffuse radiation being 10-40% of direct does not really hold. In a place like Seattle, one can expect to go without seeing the sun for extended periods of time and only see visible radiation from the sky.
(PS: I am sure there are probably more elegant ways to do this..I just wrote it this way to check if it was at all possible to do this with grasshopper).
…
ny Agents are within it after each iteration and their centroid attract Agents). So, I basically came up with a small .dll where I wrote classes for Agent, ZOne, Cell and SystemSetting. I reference this .dll into my VB component but then the majority of the functions and subs that describe this system interaction are written directly in this VB component.
The system works fine, but I cannot achieve the effect of having the system to redraw after each iteration. For example :
'''////////////////////////////////////'''
Call InitializeEverything()
For i=0 to 19 'say, Iwant to run my system for 20 times
Call UpdateZones() 'updates attractor values of Zones
Call RelocateAgents() 'say, code that does all the evolutionary job
Dim agentSrf As New List (Of OnNurbsSurface) 'want to collect the surface_
representation of all agents and visualize it
For j= 0 to agents.count-1
agentSrf.Add(agents(i).MySurface() 'collect the Agent representations
Next
A=agentSrf
Next
'''////////////////////////////////////'''
So, in this case I will only see the surfaces of the agents after this last iteration. I was trying to use timer and target my VB component but I have my initialization function there as well so it just reruns everything from the very beginning. Or I tried to:
A=agentSrf
System.Threading.Thread.Sleep(5000)
but this didn't give me much either.
I'm sure that there is a relatively simple solution to that but I cannot find it.
Would you please give me your thoughts on that?
Thanks A lot,
Dima…
tList2) End Sub '<Custom additional code> Function Network(ptList1 As list(Of On3dPoint), ptList2 As List(Of On3dPoint)) As OnLine Dim line2 As New OnLine Dim dist As Double 'variable to store distance between points Dim maxDist As Double Dim minDist As Double maxDist = 20 minDist = 10 Dim count1 As Integer count1 = ptList1.Count()'set length of list for loop Dim count2 As Integer count2 = ptList2.Count() Dim newPtList1 As List(Of On3dPoint) Dim newPtList2 As List(Of On3dPoint) newPtList1 = ptList1 newPtList2 = ptList2 ptList1.RemoveAll ptList2.RemoveAll For i As Integer =0 To count2 - 1 For j As Integer = 0 To count1 - 1 Dim pt2 As On3dPoint pt2 = newPtList2(i) Dim pt1 As On3dPoint pt1 = newPtList1(i) dist = pt2.DistanceTo(pt1) If (dist < maxDist & dist > minDist) Then line2 = New OnLine(pt2, pt1) ptList2.Add(pt1) Else ptList1.Add(pt1) End If Next Next Dim count As Integer count = ptList1.Count() If (count > 0) Then Call Network(ptList1, ptList2, lineNet) End If End FunctionWhat i have as input are two lists of points (the first one having n-items inside while the other one has only one starting point). It s supposed to work as a recursive function always returning one or more lines in the end.The error i m getting is because of the ptList1/ptList2.RemoveAll command.Does anyone have a clue why i can t remove the items from the lists? What i'm basically trying to do is just clean them of all content.I've attached the def with the code as well.Thank you in advance,Tudor…
pper" in the command line in Rhino:
"Unable to load Grasshopper.dll plug-in: Rhino version not specified."
Details of the command line are as follows:
Command: GrasshopperRhino.NET plug-in: C:\Program Files\Rhinoceros 4.0\Plug-ins\Grasshopper\Grasshopper.dll> - referenced assembly count: 20> - mscorlib> - Microsoft.VisualBasic> - System.Windows.Forms> - GH_IO> - System.Drawing> - System> - RhinoCommon> - GH_Util> - OpenTK.GLControl> - QWhale.Editor> - QWhale.Syntax> - QWhale.Syntax.Parsers> - System.Core> - System.Design> - System.Xml> - System.Data> - OpenTK> - QWhale.Common> - System.Xml.Linq> - System.ServiceModel> Rhino.NET error: unable to locate a reference to Rhino_DotNET.DLL> Unable to load Grasshopper.dll plug-in: Rhino version not specified.
I tried creating the new user and looks like that one works too, but I do need my current "user" profile as there are a lot of things already set up well, do not want to miss those.
If someone could advise me on where to look for the problem?
Thank you,
Artem
…
duino code generator works fine, but when exporting, it doesn't seem to work? Could some one please tell me what is FFcasts.h, and if that could be effecting my code? Or if there is anything wrong in general with the export.
{0}
0. /* Firefly Code Generator by Andy Payne Copyright 2011 All Rights Reserved Code Generated on 03/04/2013 20:46:37 Special thanks to Panagiotis Michalatos. For more information visit: www.fireflyexperiments.com */
#include "FFCasts.h" #include <Servo.h>
//******************* Begin Function Definitions *******************
//Remap Number Function: Remap a value into a new numeric domain. double Remap_Numbers(double x, Interval _in, Interval _out) { return (x - _in.t0) * (_out.t1 - _out.t0) / (_in.t1 - _in.t0) + _out.t0; }
//Constrain Function: Constrains a number to a specific numeric range. double Constrain(double _v1, Interval _in){ double _min, _max, result; if (_in.t0 < _in.t1){ _min = _in.t0; _max = _in.t1; }else{ _min = _in.t1; _max = _in.t0; } if (_v1 < _min){ result = _min; }else if (_v1 > _max){ result = _max; }else{ result = _v1; }return result; }
double Smoothing_pval_0 = 0;
//Smoothing Function: Returns a smoothed value that is the sum of the weighted average of the previous observations and the current value. double Smoothing_Temporal(double _v1, double _sf, double *_pval){ *_pval *= _sf; return *_pval += _v1 *(double)(1.0 - _sf); }
//******************** End Function Definitions ********************
Servo servo9;
void setup() { servo9.attach(9); }
void loop() { int APin0 = analogRead(0); servo9.write(Smoothing_Temporal(Remap_Numbers(Constrain(APin0,Interval(10,130)),Interval(10,130),Interval(0,180)),5.0, &Smoothing_pval_0)); }
…
per has few limits.
And you get the benefits of "OpenBIM" with the opportunity to utilize the data in a multitude of software.
Here's some links to help you with learning IFC :
http://geometrygym.blogspot.com/2013/02/the-end-of-babel.html
A video recorded 20 years ago explaining the intent of IFC
http://collectivebim.com/grasshopper-revit-interoperability-adaptive-components-geometry-gym/
A blog post by Michael McCune (CASE) introducing and explaining the Geometry Gym GH plugin
http://geometrygym.blogspot.com/2013/01/ifc-what-it-is-and-why-you-should-care.html
Chrisopher Zoog of HOK presenting to New York City Revit User Group about IFC.
http://bim42.com/
Simon Moreau of Oger International also has some blog posts introducing and demonstrating the Grasshopper plugin
http://www.buildingsmart-tech.org/ifc/IFC2x4/rc4/html/annex/annex-b/alphabeticalorder_entities.htm
Maybe a little technical, but it contains descriptions and diagrams explaining the IFC types and their attributes and relationships (I will start adding links to relevant page from components).
If you have other online (or offline) references or helpful material, please post.
Note I am planning on shortly enabling more BIM in Rhino (not using GH)…
ky.exe did not accept -p parameter and made empty sky.cal file.
----
Edit: solved run problem, Bee did not download OpenStudioMasterTemplate.idf
Get it here: https://github.com/mostaphaRoudsari/Honeybee/issues/119
Now get empty HDR:
C:\ladybug\prox\imageBasedSimulation>rpict -i -t 10 -vtv -vp 245.129 -226.458 20 0.405 -vd -0.549 0.656 -0.518 -vu -0.332 0.397 0.855 -vh 42.862 -vv 26.991 -v l 0 -vs 0 -vl 0 -x 800 -y 600 -af prox_RAD_Perspective.amb -ps 8 -pt 0.15 -pj 0.6 -dj 0 -ds 0.5 -dt 0.5 -dc 0.25 -dr 0 -dp 64 -st 0.85 -ab 2 -ad 1024 -as 175 -ar 150 -aa 0.200 -lr 4 -lw 0.050 -av 0 0 0 prox_RAD.oct 1>prox_RAD_Perspectiv e.unf rpict: 0 rays, 0.00% after 0.0000 hours rpict: skybright`c__ladybug_skylib_cumulativeSkies_SINGAPORE_SGP_SINGAPORE_SGP_1 : undefined variable rpict: 1020 rays, 4.91% after 0.0000 hours
----
Hi friends,
trying to get a cumulative sky image metric to run and encountered an issue with the image-based metrics component. It throws:
Runtime error (KeyNotFoundException): honeybee_materialLib Traceback: line 768, in main, "<string>" line 1442, in script
I guess this is some sort of setup issue on my end, or I messed up the definition? Any help appreciated.
Thanks,
Max
…