/// <summary> /// Generate new addin files for all applicable /// versions of Revit. /// </summary> /// <param name="products">A collection of revit installs.</param> /// <param name="excludePath">The path that will not be used to search for Dynamo Revit installations</param> internal static void GenerateAddins(IRevitProductCollection products, string excludePath = null) { Console.WriteLine("Generating addins..."); foreach (var prod in products.Products) { var subfolder = prod.VersionString.Insert(5, "_"); Func <string, string> fileLocator = p => Path.Combine(p, subfolder, "DynamoRevitDS.dll"); var dynRevitProducts = Utilities.LocateDynamoInstallations(null, fileLocator); if (null == dynRevitProducts) { Console.WriteLine("Dynamo Revit Not Installed!"); } foreach (KeyValuePair <string, Tuple <int, int, int, int> > dynRevitProd in dynRevitProducts) { if (dynRevitProd.Key == excludePath) { continue; } var path = Path.Combine(dynRevitProd.Key, subfolder, "DynamoRevitVersionSelector.dll"); Console.WriteLine(path); if (File.Exists(path)) { var addinData = DynamoAddinData.Create(prod, dynRevitProd.Key); if (null != addinData) { GenerateDynamoAddin(addinData); } } } } }
public void AddinData_071a() { var prod = CreateRevit2014(); var latest = MockDynamoInstall(DynamoVersions.dynamo_071_x86); var addinData = new DynamoAddinData(prod, latest); Assert.AreEqual(addinData.AddinPath, Path.Combine(prod.AddinsFolder, "Dynamo.addin")); Assert.AreEqual(addinData.AssemblyPath, Path.Combine(DynamoVersions.dynamo_071_x86, "Revit_2014\\DynamoRevitVersionSelector.dll")); Assert.AreEqual(addinData.ClassName, "Dynamo.Applications.VersionLoader"); }
public void AddinData_063() { var prod = CreateRevit2014(); var latest = MockDynamoInstall(DynamoVersions.dynamo_063); var addinData = new DynamoAddinData(prod, latest); Assert.AreEqual(addinData.AddinPath, Path.Combine(prod.AddinsFolder, "Dynamo.addin")); Assert.AreEqual(addinData.AssemblyPath, Path.Combine(DynamoVersions.dynamo_063, "DynamoRevit.dll")); Assert.AreEqual(addinData.ClassName, "Dynamo.Applications.DynamoRevit"); }
public void AddinData_071b_2014() { var prod = CreateRevit2014(); var latest = MockDynamoInstall(DynamoVersions.dynamo_071_x64); var addinData = new DynamoAddinData(prod, latest); Assert.AreEqual(addinData.AddinPath, Path.Combine(prod.AddinsFolder, "Dynamo.addin")); Assert.AreEqual(addinData.AssemblyPath, Path.Combine(DynamoVersions.dynamo_071_x64, "Revit_2014\\DynamoRevitVersionSelector.dll")); Assert.AreEqual(addinData.ClassName, "Dynamo.Applications.VersionLoader"); }
/// <summary> /// Generate new addin files for all applicable /// versions of Revit. /// </summary> /// <param name="products">A collection of revit installs.</param> /// <param name="dynamos">DynamoProducts, a collection of installed Dynamo /// on this system.</param> /// <param name="dynamoUninstallPath">Path of Dynamo being uninstalled</param> internal static void GenerateAddins(IRevitProductCollection products, DynamoProducts dynamos, string dynamoUninstallPath = "") { foreach (var prod in products.Products) { Console.WriteLine("Generating addins in {0}", prod.AddinsFolder); var addinData = DynamoAddinData.Create(prod, dynamos, dynamoUninstallPath); if (null != addinData) { GenerateDynamoAddin(addinData); } } }
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> /// Generate new addin files for all applicable /// versions of Revit. /// </summary> /// <param name="products">A collection of revit installs.</param> /// <param name="dynamos">A collection of dynamo installs.</param> internal static void GenerateAddins(IRevitProductCollection products, IDynamoInstallCollection dynamos) { foreach (var prod in products.Products) { Console.WriteLine("Generating addins in {0}", prod.AddinsFolder); var addinData = new DynamoAddinData(prod, dynamos.GetLatest()); if (prod.ProductName == "Vasari Beta 3") { // Change the addin path because the AddinUtility // reports this incorrectly for vasari var dir = Path.GetDirectoryName(addinData.AddinPath); var newDir = dir.Replace("Revit", "Vasari"); addinData.AddinPath = Path.Combine(newDir, Path.GetFileName(addinData.AddinPath)); } GenerateDynamoAddin(addinData); } }
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"); }