/// <summary> /// Creates DynamoAddinData to generate addin for given Revit product /// based on latest Dynamo installed on the system. /// </summary> /// <param name="revit">Revit Product for which addin to be generated </param> /// <param name="dynamos">Dynamo products installed on the system</param> /// <param name="dynamoUninstallPath">dynamo path being uninstalled, can be /// null or empty string</param> /// <returns>DynamoAddinData</returns> public static DynamoAddinData Create(IRevitProduct revit, DynamoProducts dynamos, string dynamoUninstallPath) { //Iterate in reverse order to find the first dynamo that is supported for //this revit product var products = dynamos.Products.Reverse(); foreach (var p in products) { //If the current product is being uninstalled, don't generate addin data if (DynamoInstall.PathEquals(p.InstallLocation, dynamoUninstallPath)) { continue; } var path = Path.Combine(p.InstallLocation, "DynamoRevit.dll"); //Should be 0.6.3 only supported for Revit2014 if (File.Exists(path) && revit.VersionString == "Revit2014") { return(new DynamoAddinData(revit, new DynamoInstall(p.InstallLocation))); } var subfolder = revit.VersionString.Insert(5, "_"); path = Path.Combine(p.InstallLocation, subfolder, "DynamoRevitVersionSelector.dll"); if (File.Exists(path)) { return(new DynamoAddinData(revit, new DynamoInstall(p.InstallLocation))); } } return(null); }
public void DynamoInstallCollection_OldInstall_Latest() { var dynamo1 = new DynamoInstall(DynamoVersions.dynamo_063); var installColl = new DynamoInstallCollection(new List<DynamoInstall> { dynamo1 }); Assert.AreEqual(installColl.GetLatest().Folder, DynamoVersions.dynamo_063); }
public void DynamoInstallCollection_NewInstalls_Latest() { var dynamo1 = new DynamoInstall(DynamoVersions.dynamo_071_x86); var dynamo2 = new DynamoInstall(DynamoVersions.dynamo_07x); var installColl = new DynamoInstallCollection(new List<DynamoInstall> { dynamo1, dynamo2 }); Assert.AreEqual(installColl.GetLatest().Folder, DynamoVersions.dynamo_07x); }
public void DynamoInstallCollection_OldInstall_Latest() { var dynamo1 = new DynamoInstall(DynamoVersions.dynamo_063); var installColl = new DynamoInstallCollection(new List <DynamoInstall> { dynamo1 }); Assert.AreEqual(installColl.GetLatest().Folder, DynamoVersions.dynamo_063); }
public void DynamoInstallCollection_NewInstalls_Latest() { var dynamo1 = new DynamoInstall(DynamoVersions.dynamo_071_x86); var dynamo2 = new DynamoInstall(DynamoVersions.dynamo_07x); var installColl = new DynamoInstallCollection(new List <DynamoInstall> { dynamo1, dynamo2 }); Assert.AreEqual(installColl.GetLatest().Folder, DynamoVersions.dynamo_07x); }
public void AddinDataIsCorrectInstallingOnMultipleRevits() { var existingProds = SomeValidProducts(); var prods = new RevitProductCollection(existingProds); var dynamo1 = new DynamoInstall(DynamoVersions.dynamo_071_x86); var dynamo2 = new DynamoInstall(DynamoVersions.dynamo_07x); var dynamos = new DynamoInstallCollection(new List <DynamoInstall> { dynamo1, dynamo2 }); var addinData = new DynamoAddinData(prods.Products.First(), dynamos.GetLatest()); Assert.AreEqual(addinData.AddinPath, Path.Combine(prods.Products.First().AddinsFolder, "Dynamo.addin")); Assert.AreEqual(addinData.AssemblyPath, Path.Combine(DynamoVersions.dynamo_07x, "Revit_2014\\DynamoRevitVersionSelector.dll")); Assert.AreEqual(addinData.ClassName, "Dynamo.Applications.VersionLoader"); }
/// <summary> /// DynamoAddinData constructor. /// </summary> /// <param name="product">A revit product to target for addin creation.</param> /// <param name="latestDynamoInstall">The newest Dynamo version installed on the machine.</param> internal DynamoAddinData(IRevitProduct product, IDynamoInstall latestDynamoInstall) { //Convert RevitXXXX to Revit_XXXX var subfolder = product.VersionString.Insert(5, "_"); //Pre 0.7.x release if (DynamoInstall.PathEquals(latestDynamoInstall.Folder, DynamoVersions.dynamo_063)) { ClassName = "Dynamo.Applications.DynamoRevitApp"; AssemblyPath = Path.Combine(latestDynamoInstall.Folder, "DynamoRevit.dll"); } else { ClassName = "Dynamo.Applications.VersionLoader"; const string assemblyName = "DynamoRevitVersionSelector.dll"; AssemblyPath = Path.Combine(latestDynamoInstall.Folder, subfolder, assemblyName); } RevitSubfolder = subfolder; AddinPath = Path.Combine(product.AddinsFolder, "Dynamo.addin"); }
public void AddinDataIsCorrectInstallingOnMultipleRevits() { var existingProds = SomeValidProducts(); var prods = new RevitProductCollection(existingProds); var dynamo1 = new DynamoInstall(DynamoVersions.dynamo_071_x86); var dynamo2 = new DynamoInstall(DynamoVersions.dynamo_07x); var dynamos = new DynamoInstallCollection(new List<DynamoInstall> { dynamo1, dynamo2 }); var addinData = new DynamoAddinData(prods.Products.First(), dynamos.GetLatest()); Assert.AreEqual(addinData.AddinPath, Path.Combine(prods.Products.First().AddinsFolder, "Dynamo.addin")); Assert.AreEqual(addinData.AssemblyPath, Path.Combine(DynamoVersions.dynamo_07x, "Revit_2014\\DynamoRevitVersionSelector.dll")); Assert.AreEqual(addinData.ClassName, "Dynamo.Applications.VersionLoader"); }