Hi everyone. I am trying to sort each Brach of a tree (in this case the tree is a GH_Structure
) I have an example to do this for a DataTree
structure Sort a BrepCurve by length this implemetation works great when you work on C# Scrip component and when you use DataTree
.
In My case I am trying to perform the same with GH_Structure
.
//Duplicate curvesTree
GH_Structure<IGH_Goo> sortedCurvesTree = new GH_Structure<IGH_Goo>();
sortedCurvesTree = curvesTree.Duplicate();
for (int i = 0; i < sortedCurvesTree.PathCount; i++)
{
GH_Path pathTree = new GH_Path(0, i);
sortedCurvesTree[pathTree].Sort((a,b) =>
{
return b.GetLength().CompareTo(a.GetLength());
});
}
I run in a couple of issues:
- Error (CS1660): Cannot convert lambda expression to type ‘System.Collections.Generic.IComparer<Grasshopper.Kernel.Types.IGH_Goo>’ because it is not a delegate type (line 79)
- Error (CS1061): ‘Grasshopper.Kernel.Types.IGH_Goo’ does not contain a definition for ‘GetLength’ and no extension method ‘GetLength’ accepting a first argument of type ‘Grasshopper.Kernel.Types.IGH_Goo’ could be found (are you missing a using directive or an assembly reference?) (line 81)
I believe this is because in the GH_Structure implementation the type elements inside each branch are:
System.Collections.Generic.List`1[Grasshopper.Kernel.Types.IGH_Goo]
and each element inside the list is:
Grasshopper.Kernel.Types.GH_Curve
On a previous post Convert GH_Curve to Curve I found that you can access to the curve stored inside the ghcurve. In my case I am struggling to access to the Value
parameter. So far in my case I did not have any luck accessing to it.
I tried trying to access to element using curvesTree.get_DataItem(pathTree, 0)
but Value
is not there as well.
My question is it possible to replicate the sorting technique used in DataTree example for the GH_Structure implementation or should I look for other techniques and approaches?
Every recommendation will be greatly appreciated.
I attached both examples in the GH definition below
DataTree vs GH_Structure_Sorting.gh (429.0 KB)