ems in the same way. Lofting was particularly difficult, you had to have a separate loft component for every lofted surface that you wanted to generate because the component would/could only see one large list of inputs. Then came along the data structures in GH v0.6 which allowed for the segregation of multiple input sets.
If you go to Section 8: The Garden of Forking Paths of the Grasshopper Primer 2nd Edition you will find the image above describing the storing of data.
Here you will notice a similarity between the path {0;0;0;0}(N=6) and the pathmapper Mask {A;B;C;D}(i). A is a placeholder for all of the first Branch structures (in this case just 0). B is a place holder for all the second branch structures possibly either 0, 1 or 2 in this case. And so forth.
(i) is a place holder for the index of N. If you think of it like a for loop the i plays the same role. For the example {A;B;C;D}(i) --> {i\3}
{0;0;0;0}(0) --> {0\3} = {0}
{0;0;0;0}(1) --> {1\3} = {0}
{0;0;0;0}(2) --> {2\3} = {0}
{0;0;0;0}(3) --> {3\3} = {1}
{0;0;0;0}(4) --> {4\3} = {1}
{0;0;0;0}(5) --> {5\3} = {1}
{0;0;0;1}(0) --> {0\3} = {0}
{0;0;0;1}(1) --> {1\3} = {0}
{0;0;0;1}(2) --> {2\3} = {0}
{0;0;0;1}(3) --> {3\3} = {1}
{0;0;0;1}(4) --> {4\3} = {1}
{0;0;0;1}(5) --> {5\3} = {1}
{0;0;0;1}(6) --> {6\3} = {2}
{0;0;0;1}(7) --> {7\3} = {2}
{0;0;0;1}(8) --> {8\3} = {2}
...
{0;2;1;1}(8) --> {8\3} = {2}
I'm not entirely sure why you want to do this particular exercise but it goes some way towards describing the process.
The reason for the tidy up: every time the data stream passes through a component that influences the path structure it adds a branch. This can get very unwieldy if you let it go to far. some times I've ended up with structures like {0;0;1;0;0;0;3;0;0;0;14}(N=1) and by remapping the structure to {A;B;C} you get {0;0;1}(N=15) and is much neater to deal with.
If you ever need to see what the structure is there is a component called Param Viewer on the first Tab Param>Special Icon is a tree. It has two modes text and visual double click to switch between the two.
Have a look at this example of three scenarios in three situations to see how the data structure changes depending on what components are doing.
…
Start Rhino, run _Grasshopper.
Officially the edit-and-continue feature allows you to rebuild the code while it's running, but I have never been able to make it work.…
Added by David Rutten at 2:14am on February 24, 2016
ant to find all paths where exactly two items are the same like in branch {1}. How can I solve this in VB? Is there an easy "search in list" class or do I have to iterate over all items by myself ??
Regards Alex…
1) to each length. For example you have a length of ten and you create a domain from 9 to 11. later you want to group all lines by as less as possible domains.
If you have a look to the image...you see 6 lines and their red dotted ranges. to group them by the domain of 3 and 5 would be the best result with the less domains. (here 2)
if you would use the domain of line 0,1 or 3 you could not include line 4 and you would have 3 instead of just 2 groups.....
later on it is important for me to group as much as possible lines in less as possible domains.
I hope this is somehow understandable.…
Added by horst Becker at 11:15am on November 2, 2013
Hi Naoki! Use list item to extract 2 and 3 from original list. Cull item 2 and 3 from original list and then list insert (insert your list item in 4 and 5 indexes). Hope helps. Bests.
o three parts:
branch 1:
{0;0} N = 3
{0;1} N = 3
branch 2:
{1;0} N = 5
{1;1} N = 5
branch 3:
{2;0} N = 30
{2;1} N = 30
parthmapper won't change the length of branch, explode tree won't give me two branches in one output
…