Dynamo API - Set User Packages Location

@oliver.green The below seems to work for me. It adds the new path to the Custom Folder, then loads the packages for any “pkg.json” files it finds.

        string NewPackageLocation = "C:\\Temp2";

        List<IExtension> extensions = startupParams.ExtensionManager.Extensions.ToList();
        PackageManagerExtension dynamoPackageManager = extensions.FirstOrDefault(x => x.Name == "DynamoPackageManager") as PackageManagerExtension;

        List<string> CurrentPackagePaths = startupParams.Preferences.CustomPackageFolders;

        if (!CurrentPackagePaths.Contains(NewPackageLocation) && System.IO.Directory.Exists(NewPackageLocation))
        {
            startupParams.Preferences.CustomPackageFolders.Add(NewPackageLocation);

            foreach (string PkgFile in Directory.GetFiles(NewPackageLocation, "pkg.json", SearchOption.AllDirectories))
            {
                dynamoPackageManager.PackageLoader.Load(dynamoPackageManager.PackageLoader.ScanPackageDirectory(PkgFile.Replace("pkg.json", "")));
            }
        }
3 Likes