protected override void SolveInstance(IGH_DataAccess DA) { // --- input var geometries = new List <GeometryBase>(); if (!DA.GetDataList(0, geometries)) { return; } // --- execute var rtree = new RTree(3, geometries.Count); foreach (var geometry in geometries) { var bbox = geometry.GetBoundingBox(true); rtree.Add(bbox.Min, bbox.Max); } rtree.Finish(); rtree.Geometries = geometries; // FIXME: Cleaner solution // --- output DA.SetData(0, rtree); }