Link Cluster with relative Path

is there some way to link a .ghcluster file with a relative filepath?


It seems that gh sometime “search” for the cluster on the same folder of current gh file… unclear to me…

This small c# script pick the first-found cluster on the same group and replace its path with the input string filename.
Cluster_path (7.1 KB)

You can edit this to cover similar but different situations…
Hope it helps!


using System.IO;

private void RunScript(string Cluster_File_Name, ref object Full_path)
    bool searching = true;

    string current_folder = Path.GetDirectoryName(this.GrasshopperDocument.FilePath) + @"\";
    full_path = current_folder + Cluster_File_Name + ".ghcluster";
    Full_path = full_path;

    GH_Document ghdoc = this.GrasshopperDocument;
    for (int i = 0; i < ghdoc.ObjectCount; i++){
      IGH_DocumentObject obj = ghdoc.Objects[i];
      string type = obj.Attributes.DocObject.ToString();
      if(searching && type.Equals("Grasshopper.Kernel.Special.GH_Group")){
        Grasshopper.Kernel.Special.GH_Group groupp = (Grasshopper.Kernel.Special.GH_Group) obj;
        List<System.Guid> guids = groupp.ObjectIDs;
        foreach(System.Guid guid in guids){
          IGH_DocumentObject obj2 = this.GrasshopperDocument.FindObject(guid, true);
          string type2 = obj2.Attributes.DocObject.ToString();
            cluster = (Grasshopper.Kernel.Special.GH_Cluster) obj2;
            this.GrasshopperDocument.ScheduleSolution(5, ReplaceCluster);
            searching = false;
          if(!searching) break;
      if(!searching) break;

  // <Custom additional code> 
  public Grasshopper.Kernel.Special.GH_Cluster cluster;
  public string full_path;
  private void ReplaceCluster(GH_Document doc){

Thats great, thanks a lot