would like to group the paths based on their item count (n) values resulting in a tree which should look something like this:
{0;0} (3)
{0;1} (2)
{0;2} (2)
{0;3} (1)
in other words, all paths with 2 items are under one path, all with 6 items in another, and so on.
I feel that the pathmapper should be able to do this very easily but cannot figure out what the expression should be... I have tried searching the forum but have not had much luck!
Any ideas? Thanks a ton!…
nch, xno items in one list)2 divide the list lenght value by the numer of items per branch needed3A generate a list with the series component: the step equal to the target numer of items per branch; the no of items equals the number of target branches
3B generate a list with the series component: the first number of the series equals to the number of items needed (-1 to account for the 0 index); the step size again equal to the target number of itmes per branch as 3A4 feed 3A & 3B to a domain component thus identifying the start -3A- and end -3B- of the domains by which the list will be subdivided5 use a subset component with the domains above thus creating 19 branches with lists having 5 items eachfor lists which are subdivided into branches when the target number of branches is not a multiple of the number of items contained in the list:6 identify if the target number of branches is a multiple of the list by using the modulus component fed by the list lenght -1- and the target number of branches7 identify last index in the 3B series with the item component (reversed to take the last value fed)8 add 6+7 above which dill define the start of the domain that will pick up the remanent items not accommodated in 59 add (+1) to 7 above to define the end of the domain that will pick up the the remanent items not accommodated in 510 feed 8 & 9 to a domain component11 include 10 as part of the subset in 5I'm now trying to understand the components mentioned by Michael...
sn
…
lines between them in a parallel manner. I have tried some list commands but still didn't get it. Is there anyway to learn more about how to pick the items that I want? I have been struggling at this. Thank you!…
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.
…
i have tried brep components on a few different surface and it did not split any of them. i tried this in .6 and .7 same result.
here is an example (in .7)
ouldn't the surface component only accept the number 8? it accepts 5 and 7. the grid is 7 points in the x direction and 5 points in the y direction. so shouldn't the u count be either 6 or 8?
it works with the u count at 5. i just don't understand why.
thank you so much for your patience with my questions.
…
Added by pwdarden to gHowl at 6:18pm on September 21, 2013
ll these 12500 points.
Group 1 would represent the point located at 0, 5, 10, 15, 20 etc.
Group 2 - 1, 6, 11, 16, 21 etc.
Group 3 - 2, 7, 12, 17, 22 etc.
Group 4 - 3, 8, 13, 18, 23 etc.
Group 5 - 4, 9, 14, 19, 24 etc.
I can create the pattern but the selection of points are all the points in row 0 and then all the points in row 5 and so on.
I would like the selection of points to start at the bottom left, and sequentially continue to the right and then continue on the 2nd row (left to right & bottom to top). i am hoping the pattern i am trying to achieve is more understood with the quick screen capture I uploaded.
the end goal is to be able to select all the points in the grid that are in each pattern.
Thanks in advance for any guidance with this. …
Added by Alyne Rankin at 6:53am on October 11, 2017