Grasshopper

algorithmic modeling for Rhino

Hy Guys,

today I'm working on a VB-Component (in Grasshopper) which can find neighboors in datatrees . The datatree looks like this:

{0}

0:5

1:6

2:7

{1}

0:6

1:7

2:10

{3}

1:4

2:5

3:8

{...}

...

Now I want 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

Views: 440

Replies to This Discussion

You'll have to iterate yourself. The data stored in trees is a black box as far as the DataTree is concerned. It doesn't know how to compare or evaluate the items it carries.

The code you're looking for might look like:

Dim tree As DataTree(Of Integer) = blahblahblah

If (tree.BranchCount < 2) Then Return 

Dim branch0 As List(Of Integer) = tree.Branches(0)

Dim overlap As New List(Of Integer)

For i As Int32 = 0 To tree.BranchCount -1

  Dim N As Integer = 0

  For Each item As Integer in tree.Branches(i)

    If (branch0.Contains(item)) Then N += 1

  Next

  overlap.Add(N)

Next

At this point the overlap list should contain integers that tell you how many items each branch has in common with the first branch.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

Thanks David for your fast reply, I will test this code tomorrow..

Regards Alex

CODE WORKS !! Thanks David

Sorry for the newby question, but why does this not work ??

meshface = x.Faces.Item(j)
Dim vert_int_a As Integer = meshface.A
Dim vert_int_b As Integer = meshface.B
Dim vert_int_c As Integer = meshface.C
Dim vert_int_list As New List(Of Integer)

vert_int_list.Add(vert_int_a)
vert_int_list.Add(vert_int_b)
vert_int_list.Add(vert_int_c)

vert_connection_tree.Branches.Add(vert_int_list)

What I'm trying to create is a Datatree and every vert_int_list should be in a new branch ?!? There is a for-loop around of it so, this is not the problem ;-)

Regards

Alex

Every branch is associated with a specific path. You can use the Branches property to look at existing lists, but adding data should go through the Add and AddRange methods directly on DataTree.

--

David Rutten

david@mcneel.com

Poprad, Slovakia

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service