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);
        }