Data – how it’s stored, accessed, and associated – is the threshold that separates you from fluid execution and powerful routines in Grasshopper. Beginning with a presentation on the main principles of working with Data Trees, this webinar will incrementally unpack a diverse set of Data-related techniques through a series of “live” exercises. With two instructors offering guided curriculum and continuous support it is our goal to provide you with an in-depth and personal learning experience. Additional topics covered will include: what is a Data Structure, why Data Trees look the way they do, and how to navigate, manipulate, and grow your Data Tree in an organized way.
Topics:
What are Data Trees? What do all of those index values mean?
If I have a Data Tree, How can I precisely navigate through it?
My Data Tree is wild! How can I tame it and make its structure clear?
What else are Trees good for? How can I use my Data Tree to create unique labels?
Details:
Level: Some experience suggested. Beginners can review our Introduction to Grasshopper Webinar here: https://vimeo.com/album/2103407
Suitable For: All Creative Professionals: Artists, Architects, Designers, Engineers, Programmers, Students.
Software: Rhino 4SR9 or Rhino5Beta + Grasshopper 0.9.
Instructors: Ronnie Parsons + Gil Akos | Partners, Studio Mode
Pricing: $99/$59 : Professional/Student Rate. Register now to Access the Full Webinar Content and Videos: http://modelab.nu/?p=7233.…
ning with a presentation on the main principles of working with NURBS surfaces, this webinar will incrementally unpack a diverse set of surface-related techniques through a series of “live” exercises with Grasshopper. With two instructors offering guided curriculum and continuous support it is our goal to provide you with an in-depth and personal learning experience. Additional topics covered will include: how to move through “surface space”, creating and analyzing simple surface panels, and how to create custom panels on a surface.
Topics:
What is a Surface? How do I make one and what are its parts?
Wait!.. A Surface has its own Space? How can I navigate this Space?
How can I divide my Surface into Panels? Can I ensure they are flat -or- How do I keep them curvy?
I just tested all of my Panels for planarity but what do those numbers mean? How can I more intuitively visualize the results?
Now I have simple Panels, but can I create my own custom Panel Object at each original Panel location?
Details:
Level: Some experience suggested. Beginners can review our Introduction to Grasshopper Webinar here: vimeo.com/album/2103407
Suitable For: All Creative Professionals: Artists, Architects, Designers, Engineers, Programmers, Students.
Software: Rhino 4SR9 or Rhino5Beta + Grasshopper 0.9.
Instructors: Ronnie Parsons + Gil Akos | Partners, Studio Mode
Pricing: $99/$59 : Professional/Student Rate. Register now to Access the Full Webinar Content and Videos: http://modelab.nu/?p=7238.…
.5,-3.0; 2.1,-6.7;0.35: 2: 7.2,-8.1; 6.2,-7.0; 5.7,-2.3;0.5: 0: 1.5,3.5; 2.3,-0.4; 2.6,-1.2;0.5: 1: 5.6,-3.1; 5.2,-1.5; 6.3,-6.0;0.5: 2: -3.4,6.4; -3.0,5.5; -2.9,7.6;The first number of each line is the z value. Each z value is used multiple times with a list of x,y values. That second number is the index of the list of points for the z value, and the following ordered pairs are the x,y values.
I attached my script, which outputs each line of data as a branch containing the points on that line (paired with the z value at the start of the line). The paths output are {0;0;#} where # ranges from 0 to 799. I'd like to collect all the lines with the same z values into one branch, however, resulting in something like {0;$;#} where $ ranges from 0 to 7 (the number of different z values) and # ranges from 0 to 99 (the number of lists of points associated with each z value), rather than having them all compressed into one list.
I'm reading the input line by line, but if I read it all at once, I could create a loop that examines each line's z value and stores the line into a list specific to that z value, then output all those lists of lists as a list/DataTree? Is that what you are suggesting, David Stasiuk? …
Added by Mark Bank at 2:55pm on September 27, 2012
y to heaven (or hell) is full of pain,frustration and tears. In plain English: if you are not totally committed (and willing to pay the heavy price) ... well ... what about forgetting all that freaky stuff? (the best option, trust me)
Note: 99% of beginners dream to learn programing in order to make geometry. But the truth is that this is the least (and rather the most insignificant) that you can achieve especially when working in teams with lot's of CAD/MCAD apps (and verticals) in the practice of tomorrow (bad news: tomorrow is already yesterday).
Anyway: How to go to Hell in just 123 easy steps
Step 1: get the cookiesThe bible PlanA: C# In depth (Jon Skeet).The bible PlanB: C# Step by step (John Sharp).The bible PlanC: C# 5.0 (J/B Albahari) > my favoriteThe reference: C# Language specs ECMA-334The candidates:C# Fundamentals (Nakov/Kolev & Co)C# Head First (Stellman/Greene)C# Language (Jones)Step 2: read the cookies (computer OFF)Step 3: re-read the cookies (computer OFF)...
Step 122: re-read the cookies (computer OFF)Step 123: Open computer > burn computer > computers are a bad thing (not to mention the Skynet trivial thingy).May The Force (the Dark Option) be with you.
…
ore simplest way, for example i need to declare min distance (minDist) like huge number to avoid overlapping values. may be find way do not use second loop in script at all . In the neoarchaic's script has line 99 (j = pts.ClosestIndex(pt)) but i have no idea how to do it in C#.
2. In a file i prepared GH+Hoopsnake and GH+Anemone solution for this script . Can i use the same principle in C# (shipt list with wrap values )? This solution I need for studying list operations in C#.
Thank you for helping .
ps..My script:
int num = x.Count; double minDist,dist; int minI = 0; int i = 0;
Point3d pt; List<Point3d> z = new List<Point3d>();
while (i < num) { i++; z.Add(x[minI]); pt = x[minI]; minDist = 1000000000000; x.RemoveAt(minI);
for (int n = 0; n < x.Count; n++){
dist = x[n].DistanceTo(pt);
if ( dist < minDist) { minI = n; minDist = dist; } } } A = z;
…
oxes in the most efficient way within boundaries of object and follow the following constraints. The Goal: To fit 125 boxes in the most efficient way inside the total area. Starting Variables: (1) 40% of the Boxes need to be between 60 and 85MSQ. (2) 40% of the boxes need to be between 86 and 110MSQ.
(3) 20% of the boxes need to be between 111 and 125mSQ. The breakdown doesn’t have to be exact to give the script some flexibility. Meaning you can have 41% +39% +20% = 100%.
Constraints:
1. A total MAXIMUM area of approximately 1600M per layer.
2. A maximum of 8 layers for a total of 12,800M per layer. Optimization can make as little or as many as 8 layers vertical to accommodate all boxes. So if script can achieve with 3 levels great. If needed all 8 levels, that's fine too. However, pay attention to next constraint (#3).
3. Approximately 15% of that space on each layer is off limits. (internal area) (blue area in example script) and the shape of the boundary cannot be modified to accommodate box design resulting in jagged lines for the internal area.
4. All generated squares/rectangles must have at least 3m touching an outside border (The Green lines).
5. All boxes must also be touching minimum 1M of border of the blue line.
6. If the boxes generated go outside the green boundary, they must be fillet to maintain the straight lines of the green boundaries.
7. Get as many of the boxes as possible a view towards the dots.
Could any one provide me a method or a way to start, if there are any useful links, please share with me. Thank you!…
Boxes in the most efficient way within boundaries of object and follow the following constraints.
The Goal: To fit 125 boxes in the most efficient way inside the total area. Starting Variables:
(1) 40% of the Boxes need to be between 60 and 85MSQ. (2) 40% of the boxes need to be between 86 and 110MSQ.
(3) 20% of the boxes need to be between 111 and 125mSQ. The breakdown doesn’t have to be exact to give the script some flexibility. Meaning you can have 41% +39% +20% = 100%.
Constraints:
1. A total MAXIMUM area of approximately 1600M per layer.
2. A maximum of 8 layers for a total of 12,800M per layer. Optimization can make as little or as many as 8 layers vertical to accommodate all boxes. So if script can achieve with 3 levels great. If needed all 8 levels, that's fine too. However, pay attention to next constraint (#3).
3. Approximately 15% of that space on each layer is off limits. (internal area) (blue area in example script) and the shape of the boundary cannot be modified to accommodate box design resulting in jagged lines for the internal area.
4. All generated squares/rectangles must have at least 3m touching an outside border (The Green lines).
5. All boxes must also be touching minimum 1M of border of the blue line.
6. If the boxes generated go outside the green boundary, they must be fillet to maintain the straight lines of the green boundaries.
7. Get as many of the boxes as possible a view towards the dots.
Could any one provide me a method or a way to start, if there are any useful links, please share with me. Thank you!
…
re is my problem... I need to arrange Boxes in the most efficient way within boundaries of object and follow the following constraints.
The Goal: To fit 125 boxes in the most efficient way inside the total area. Starting Variables:
(1) 40% of the Boxes need to be between 60 and 85MSQ. (2) 40% of the boxes need to be between 86 and 110MSQ.
(3) 20% of the boxes need to be between 111 and 125mSQ. The breakdown doesn’t have to be exact to give the script some flexibility. Meaning you can have 41% +39% +20% = 100%.
Constraints:
1. A total MAXIMUM area of approximately 1600M per layer.
2. A maximum of 8 layers for a total of 12,800M per layer. Optimization can make as little or as many as 8 layers vertical to accommodate all boxes. So if script can achieve with 3 levels great. If needed all 8 levels, that's fine too. However, pay attention to next constraint (#3).
3. Approximately 15% of that space on each layer is off limits. (internal area) (blue area in example script) and the shape of the boundary cannot be modified to accommodate box design resulting in jagged lines for the internal area.
4. All generated squares/rectangles must have at least 3m touching an outside border (The Green lines).
5. All boxes must also be touching minimum 1M of border of the blue line.
6. If the boxes generated go outside the green boundary, they must be fillet to maintain the straight lines of the green boundaries.
7. Get as many of the boxes as possible a view towards the dots.
Could any one provide me a method or a way to start, if there are any useful links, please share with me. Thank you!
…
ce issue with Rhino and shouldn't make an issue with EnergyPlus but just to have cleaner geometries, I untrimmed base surfaces so zones are closed brep now.
I also noticed that when you are adding multiple openings to a surface, the surface doesn't show-up in the output of createHBZoneFromHBSurfaces. The surfaces are there though and show up once you explode the zone! Again should be a tolerance issue for join. I need to take a closer look to both of these.
Also, in a number of the zones you had wall surfaces connected to createZoneFromHBSurfaces both before and after adding glazing. I removed parent surfaces so you don't end up having duplicate surfaces.
Back to adjacency which was your question, the issue happens since you have couple of zones with the same name so component was assuming them to be the same zone so it wouldn't solve the adjacency (Yes! it shouldn't. That was a bug which is fixed now). I changed the names and now it should find the surfaces that you are looking for.
Moreover, once you solve the adjacency, next solveAdjacency won't overwrite the BC unless you set remCurrentAdj to True.
Mostapha…
correct:
- the right value in the 0. path {0;77} is the smallest one.
- right value in the 1. path {0;78} is the value which is closest to the chosen value in the preceding path
- ..and so on for {0;79} and {0;80}
but when the paths change their first level, the iteration should start from the beginning:
- right value in the 4. path {1;32} is the smallest one.
- right value in the 5. path {1;33} is the closest to the chosen one in {1;32}.
- right value in the 5. path {1;34} is the closest to the chosen one in {1;33}.
..to be continued.
..this is, what I want to achive in the VB code, I implemented at the beginning of the discussion.
..and this is how I designed the input-parameter of the VB-element:
if someone could help me .. super-great!
…