53 → 53 → 63 → 74 → 74 → 84 → 9
As you can see from the above list the connection sequence comes in waves of three, where each group of similar indices on the left is associated with a group of three incrementing indices on the right.
Some combination of Series components will probably generate this list, but it'll only work for the first ring, the second one will need a different connection pattern. It is perhaps better to just encode the integer pairs by hand. But then you cannot change your mind about the number of sides later.…
Added by David Rutten at 10:39am on October 21, 2015
lections import defaultdict
example_list = [[1,2,4], [1,2,3], [3,4,3], [1,2,3], [5,7,1], [3,4,3], [5,7,1], [1,2,4], [9,4,9], [9,3,9], [9,4,9]]
d = defaultdict(list)
for item in example_list: d[tuple(item)].append(item)
groupedlist = sorted(d[x] for x in d)
print groupedlist
# Returns [[[1, 2, 3], [1, 2, 3]], [[1, 2, 4], [1, 2, 4]], [[3, 4, 3], [3, 4, 3]], [[5, 7, 1], [5, 7, 1]], [[9, 3, 9]], [[9, 4, 9], [9, 4, 9]]]
____________________________________________________
However working with python inside GH the code fails as (I'm assuming the id is included in the list ie.
[<Rhino.Geometry.Point3d object at 0x0000000000000BD0 [1611664.12669822,2952929.94466619,5788.70761766478]>]
If I print my object[0] i get just the vector, i.e [1611664.12669822,2952929.94466619,5788.70761766478]
However if i append my object, (for i in xrange (len(X)... list.append(my object[x])
The id included!?
[<Rhino.Geometry.Point3d object at 0x0000000000000BD0 [1611664.12669822,2952929.94466619,5788.70761766478]>]
Perhaps I'm over complicating this and should just use GH to group objects with the same position...
Also sometimes when getting vectors I receive long numbers such as.. 9.0122222900391e(10), and another times I don't.... Same file, script, geometry etc..
I'm quite a noobie in python for GH so any help or pointers are welcome...
Thank you in advance!
…
0;3} (N = 2)
{0;0;0;4} (N = 2)
{0;0;1;0} (N = 2)
{0;0;1;1} (N = 2)
{0;0;1;2} (N = 2)
{0;0;1;3} (N = 2)
{0;0;1;4} (N = 2)
Flattening this structure using the Flatten component would result in:
{0} (N = 20)
However, using a Path Mapper with the following masks will flatten is somewhat more intelligently:
{A;B;C;D} -> {A;B;C}
Now, you get:
{0;0;0} (N = 10)
{0;0;1} (N = 10)
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 3:19am on December 14, 2009
ee 3)
{5}
0 15
{6}
0 16
And I want to place points at every possible combination of these coordinates, treating Tree 1 as X coordinates, Tree 2 as Y coordinates, and Tree 3 as Z coordinates. Also, I would like the list of points to be a tree with paths corresponding to the coordinates. Wouldn't it be nice if I could plug these trees into a Point XYZ, with a new "branch cross reference" method, and get the following result?
{0:3:5}
0 {10.0, 13.0, 15.0}
{0:3:6}
0 {10.0, 13.0, 16.0}
{0:4:5}
0 {10.0, 14.0, 15.0}
{0:4:6}
0 {10.0, 14.0, 16.0}
{1:3:5}
0 {11.0, 13.0, 15.0}
{1:3:6}
0 {11.0, 13.0, 16.0}
{1:4:5}
0 {11.0, 14.0, 15.0}
{1:4:6}
0 {11.0, 14.0, 16.0}
{2:3:5}
0 {12.0, 13.0, 15.0}
{2:3:6}
0 {12.0, 13.0, 16.0}
{2:4:5}
0 {12.0, 14.0, 15.0}
{2:4:6}
0 {12.0, 14.0, 16.0}
In this form of cross referencing, every combination of individual branches from the different lists is used as separate input, and the output for each combination is put onto a branch in the result whose path is the concatenation of the input branch paths used.…
Added by Andy Edwards at 7:03pm on November 3, 2009