Пример #1
0
        // managing attachments ======================================================================================
        // attach primary or given clone to revit version
        // @handled @logs
        public static void Attach(int revitYear,
                                  PyRevitClone clone,
                                  int engineVer,
                                  bool allUsers = false,
                                  bool force    = false)
        {
            // make the addin manifest file
            var engine = clone.GetEngine(engineVer);

            if (engine.Runtime)
            {
                logger.Debug(string.Format("Attaching Clone \"{0}\" @ \"{1}\" to Revit {2}",
                                           clone.Name, clone.ClonePath, revitYear));
                RevitAddons.CreateManifestFile(revitYear,
                                               PyRevitConsts.AddinFileName,
                                               PyRevitConsts.AddinName,
                                               engine.AssemblyPath,
                                               PyRevitConsts.AddinId,
                                               PyRevitConsts.AddinClassName,
                                               PyRevitConsts.VendorId,
                                               allusers: allUsers);
            }
            else
            {
                throw new PyRevitException(string.Format("Engine {0} can not be used as runtime.", engineVer));
            }
        }
Пример #2
0
        private static void ReDeployClone(PyRevitClone clone, GitInstallerCredentials credentials)
        {
            // grab clone arguments from inside of clone
            var cloneName       = clone.Name;
            var clonePath       = clone.ClonePath;
            var cloneDeployArgs = clone.DeploymentArgs;

            logger.Debug("Clone Name=\"{0}\", Path=\"{1}\" Args=> {2}", cloneName, clonePath, cloneDeployArgs);

            // delete existing clone
            Delete(clone);

            // re-deploy
            DeployFromImage(
                cloneName: cloneName,
                deploymentName: cloneDeployArgs.DeploymentName,
                branchName: cloneDeployArgs.BranchName,
                imagePath: cloneDeployArgs.Url,
                destPath: clonePath
                );
        }
Пример #3
0
 // return a list of installed extensions found under registered search paths
 // @handled @logs
 public static List <PyRevitExtension> GetShippedExtensions(PyRevitClone clone) => clone.GetExtensions();
Пример #4
0
 public static PyRevitEngine GetEngineFromManifest(RevitAddonManifest manifest, PyRevitClone clone)
 {
     foreach (var engine in clone.GetEngines())
     {
         if (manifest.Assembly.Contains(engine.Path))
         {
             return(engine);
         }
     }
     return(null);
 }