u can still find some wonky behaviour in GH related to datatrees. My experience is that new users quite quickly get the hang of it once they learn that a tree is in fact not a tree but in the first place set of lists, where the path shows how the pieces of data used to be grouped.
Branch Count checking A component has multiple tree inputs, but has different amount of branches, each having branch count > 2. (While I understand the logic of combining multiple trees, I've not once encounted once that combining a component with e.g. an input of 2 branches and an input of 4 branches to give any kind of sensible output.
Desired behaviour: If a component has branches (each being > 2 path count), the component should throw a warning. ("Strict branches behaviour?). For example: take an offset component, with 6 branches of curves and 5 branches of offsets. It is extremely likely that this is the result of an error earlier in the definition. This works however without a problem - the last branch is repeated again, and it's later on quite hard to discover something went wrong.
Checking branch Count The most important numeric is the amount of branches, and the amount of items in the tree. It's desired that the hovers show the amount of data and the amount of branches.
Desired behaviour
Trees with paths of different rank Trees that contain {0;0} and {0} and {0;0;1} is usually a sign of trouble of not well merged trees, faulty C# components, or just nasty coding habits.
Trim as undo graft instead of flatten Having the trim in the context menu would provide an easy way to undo a graft. Right now the easiest way for many people is to flatten it, and then start all over again - while just getting rid of the last index keeps the underlying history and makes it easier to write reuseable pieces of code when you prepend datatrees to it.
Component to get branch by index, not by path Would be great. Suppose you have a grid of points, grouped by row. It would help to show: "look, this is in the first path, it's called {0;0;1}, it's got 10 points, these points are the first row".
Analogue to using list item to show what is the first point, second point, and so on.
Semantic path names (maybe far fetched) But what if we can add a short name of each method that was executed to the path list, so it can show:
{Slider 0; Series 0; Point 0}{Slider 0; Series 0; Point 1}
{Slider 0; Series 0; Point 2}
{Slider 0; Series 0; Point 3}
{Slider 0; Series 1; Point 0}
{Slider 0; Series 1; Point 1}
{Slider 0; Series 1; Point 2}
{Slider 0; Series 1; Point 3}
Make the input/data matching inside components explicit Can we make it even more obvious that a component is not a black box that's executed once, but in fact an iteration machine that tries to make sense of the inputs that's fed to this box?
Show data combination. How data input A relates to data input B and data input C, is currently very implict and is just plain hard to learn., and required the ability to be able to relate the output back to the input. If we can textually or even graphically show what data matching occured inside a component, it would greatly help the understanding (and debugging) of "what's going on here in this component"
A verbose explanation of the data matching in component A
Iteration one: - Geometry: We take the data item from Branch 0, Position 0: (Point 0,0,0) - Motion: We take the data item from Branch 0, Position 0: (Vector 0,0,0)
Iteration two:
- Geometry: We take the data item from Branch 0, Position 0: (Point 0,0,0)
- Motion: We take the data item from Branch 0, Position 1: (Vector 10,0,0)
Iteration three:
- Geometry: We take the data item from Branch 0, Position 0: (Point 0,0,0)
- Motion: We take the data item from Branch 0, Position 1: (Vector 20,0,0)
etc.
A verbose explanation of the data matching in component B
Iteration one: - Geometry: We take the data item from Branch 0, Position 0: (Point 0,0,0) - Motion: We take the data item from Branch 0, Position 0: (Vector 0,0,0)
..
Iteration seven:
- Geometry: We take the data item from Branch 0, Position 0: (Point 0,0,0)
- Motion: We take the data item from Branch 7, Position 0: (Vector 0,70,0)
..
Iteration 27:
- Geometry: We take the data item from Branch 0, Position 7: (Point 80,0,0)
- Motion: We take the data item from Branch 2, Position 0: (Vector 0,20,0)
…
decided to concentrate my effort today on this problem and manage to come up with a solution !
I will explain it if somebody else is looking for a similar solution.
Finally my only problem was to create an alternating true/false list that inverse at certain index, this what I came up with: I have a list of points and random index , the box and sphere represent true and false, and the blue sphere is the node(index) where I want to see an inversion.
In reality, it was pretty simple, I just didn't know the right modules. (In yellow, it's the most important part of the patch)(Sorry for the spelling mistake)
Here is a diagram of what I did: I created a list going to 1 to [number of lines], here it's 1 to 10, I had node at 3-4 and 7-8. For each node I created a list of 1 repeated [(number of lines)-index] times. Here, 7 (10-3) and 3 (10-7) times.
After grafting everything, I add everything in mass addition module. I had my final list which I checked if it was divisible by two.
It was more of a logic problem than a grasshopper problem.
Here it is the initial shape with what I wanted !
…
ide con m2 y coloca el XY CPlane en este punto, para tener una referencia.
3) Selecciona todas tus lineas con un parámetro de Curvas.
4) Usa un componente de curva, análisis de Perpendicular a la curva y colocado en su inicio de cada curva = linea un CPLane.
5) Usa de XForm, un Orient to a New CPlane. Este componenete te pide, el perfil, el CPlane de referencia, que ya lo tenemos y el Target, que ya lo encontramos.
6) Usa Vector 2Puntos para encontrar los vectores de cada linea y los pones con valor Unitario. Usa un componente de Find Start and End points para encontrar estos 2 puntos.
7) Usa un componente Extrude Curve de Surfaces y a cada perfil le das una magnitud = fuerza etc... NOTA: Puedes encontrar la longitud de cada curva también y crear una lista y usar esta lista para dar el valor del Extrude...
BINGO! creo yo.... es una idea mas...
Saludos
…
h the (1) button. If the data type represents referenced geometry (Curves, Surface, Breps, Meshes, IDs) then you'll be asked to select an object in Rhino.
You can delete all selected items with the (2) button.
If the data type supports textual input (most simple types with the notable exception of points), then you can switch between visual mode (shown above) and text mode using the (3) button.
Data items can be (de)selected by clicking on them, you can use Shift and Control to modify selections. Clicking and dragging on a selected item will allow you to drag all the selected items in one go (4). You can however also drag individual items irrespective of selection state using the grip area (5).
When multiple items are selected, their combined properties will be shown in the grid on the right. When the items have different values for certain properties, the fields will remain blank (6), if they have identical values, those will be displayed (7).
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
as follows.
We have a grid which consists of a collection of columns, where each column consists of a list of points. You said flattening is out of the question, so we need to cull items from each list individually.
Let's say our culling pattern is KDDDKDD (repeat as needed). K = Keep, D = Ditch. If a column contains 18 points, the pattern needs to be repeated until it is 18 items long. In this case:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
K D D D K D D K D D D K D D K D D D
We can now cull each column, but they will all be culled in the same way. By shifting the pattern one more index for each column, we can cycle the culling.
The fix incidentally is to Shift the pattern PRIOR to repeating it. Then it works as expected:
--
David Rutten
david@mcneel.com
Tirol, Austria…
Added by David Rutten at 2:49pm on October 2, 2013
on top of the arms
5. The faces on the bottom of the arms
6. The faces that make up the pentagon or hexagon on top of the shape
7. The faces that make up the pentagon or hexagon on the bottom of the shape.
Then joining these meshes and subdividing and smoothing with Weaverbird.
For the mesh faces on the bottom I'm a bit stuck because I have the points that make up the pentagon or hexagon and I have a single point in the middle so to combine these data streams I have done the following but it needs to cope for 2,3,4,5,6... lines not just for one of these...
How can I do this better?
The whole GH model is a bit messy to be honest... probably some smarter ways of doing this!
…
Added by martyn hogg at 11:05am on January 7, 2014
nd me to kill him but give him my regards anyway) is still around in BirdAir Italy ... talk with him.
3. Hope that you understand that designing the "details" means some decent MCAD app + FEA + this + that. "Fusing" this with some abstract graphic editor like GH ... is ... er ... impossible (in real-life, you know, he he ). Generative Components on the other hand may qualify but requires a lot of time in order to fully master it (approx 2-4 years).
4. FormFinder ... well ... that's utterly Academic but on the other hand ... (good luck).
http://www.formfinder.at/main/software/team/
5. http://tecno.upc.edu/cotens/software.htm
6. This is the second best (after the BirdAir internal stuff) but costs an arm and a leg
http://www.ndnsoftware.com/
7. This is a !%$!%$ in the !%$%!$:
http://www.sofistik.com/no_cache/loesungen/fem/leichte-tragwerke/
My realistic (low cost) advise:
use K1/2 (especially if you are after "parametric" exploitation(s)) ... and then diversify tasks: stuff for the structural department, stuff for whom claims that he can(?) design the "details" ... whilst be in a constant contact with the membrane provider (and in fact: the contractor for doing the real thing as well)
…
you pointed to in your post were solved by simplifying the test plane geometry.
2. In solve-adjacency component, internal construction was provided a boolean value. That was removed.3. HBZones were assigned Radiance materials for Daylight simulation.4. Since cooling and heated energy was requested in simulation parameter, conditioning was set to true.5. The names of materials you added to the library and the names of the materials you were assigning were different. That was fixed.
6. This looks more like an office building. Are you sure of apartment schedule? (Just a thought)
7. You should grow your definition in segments. Make, test one segment, then move to the next. Setting up the whole workflow at once is not a good idea unless you're absolutely confident of it.
Hope this helps!
-Devang…
the same C:\MapWinGIS_installation_folder\gdal-data folder, which is: C:\Program Files\MapWinGIS\gdal-data in your case, I assume.
It seems as now your system is allowing the deletion of the osmconf.ini file, but not the creation of a new osmconf.ini file.
Can we now try the following please:
1) Shut down both Grasshopper and Rhino2) Restart your system.3) Make sure you are logged in as Administrator once the Windows boots up.4) When it boots up, again in your Start menu's search box type: "UAC". Click on it and check if the bar on the left is still set to "Never notify".5) Download the osmconf.ini file attached below.6) Check if downloaded osmconf.ini file has been blocked: right click on it, and choose "Properties". If there is an "Unblock" button click on it, and then click on "OK". If there is no "Unblock" button, just click on "OK".7) Copy the osmconf.ini file to your C:\MapWinGIS_installation_folder\gdal-data folder8) Right-click on "Rhino 5" icon and then choose: "Run as administrator".9) Download and open the newest create_3dbuildings_trees_streets.gh file from here.
What happens?…
Added by djordje to Gismo at 10:38am on April 3, 2017
opper is all these values "recognizing" as similar/same.
I got list of results (n) with following values:
0. -3.2584e-9 1. -4.4992e-9 2. -6.7220e-9 3. -4.5154e-9 4. -4.3325e-9 5. -2.2496e-9 6. -2.2385e-9 7. -6.7525e-9 8. -4.5154e-9
Even though most of these values (maybe all of them) "go" into the second group:
(10^(-9)≤n) and (n>10^(-4))
Grasshopper recognizes all of them as members of the first group:
10^(-4)≥n
I am aware that this kind of very small values are unusual, and maybe Grasshopper is not made for it. But is there any way this can be done?
Take a look:
Thank you.…