From 2b0c820dec20ab21282a4c93e2b7db199c4813ae Mon Sep 17 00:00:00 2001 From: Luiz Henrique Cassettari Date: Wed, 18 Sep 2024 16:53:03 -0300 Subject: [PATCH] Create `Revit.DesignApplication` --- CHANGELOG.md | 7 ++ .../Bundle/RevitAddin.DA.Tester.bundle.zip | Bin 132893 -> 140252 bytes Revit.DesignApplication/DesignApplication.cs | 74 +++++++++++++++ .../DesignApplicationLoader.cs | 87 ++++++++++++++++++ .../IDesignAutomation.cs | 2 +- .../Revit.DesignApplication.csproj | 66 +++++++++++++ RevitAddin.DA.Tester.sln | 6 ++ RevitAddin.DA.Tester/Revit/App.cs | 20 ++-- .../Revit/DesignAutomation.cs | 77 ---------------- .../Revit/DesignAutomationLoadVersion.cs | 79 ---------------- .../RevitAddin.DA.Tester.csproj | 6 +- .../Services/DesignAutomationController.cs | 2 +- 12 files changed, 257 insertions(+), 169 deletions(-) create mode 100644 Revit.DesignApplication/DesignApplication.cs create mode 100644 Revit.DesignApplication/DesignApplicationLoader.cs rename {RevitAddin.DA.Tester/Revit => Revit.DesignApplication}/IDesignAutomation.cs (84%) create mode 100644 Revit.DesignApplication/Revit.DesignApplication.csproj delete mode 100644 RevitAddin.DA.Tester/Revit/DesignAutomation.cs delete mode 100644 RevitAddin.DA.Tester/Revit/DesignAutomationLoadVersion.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 7eadfab..77342c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [1.4.1] / 2025-09-18 +### Features +- Create `Revit.DesignApplication` with `DesignApplication` to load correct version of Revit. +### Updates +- Use `DesignApplication` to load correct version of Revit. + ## [1.4.0] / 2025-08-27 ### Features - Support Bundle multiple versions of Revit using `DesignAutomationLoadVersion`. (#7) @@ -40,6 +46,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - First Release [vNext]: ../../compare/1.0.0...HEAD +[1.4.1]: ../../compare/1.4.0...1.4.1 [1.4.0]: ../../compare/1.3.1...1.4.0 [1.3.1]: ../../compare/1.3.0...1.3.1 [1.3.0]: ../../compare/1.2.0...1.3.0 diff --git a/DesignAutomationConsole/Bundle/RevitAddin.DA.Tester.bundle.zip b/DesignAutomationConsole/Bundle/RevitAddin.DA.Tester.bundle.zip index aaf4471a1cf4142b67bf27effe1b207cb35b4fcb..ecb888a8cb3211c9eff134d97efea98a4fb84ae8 100644 GIT binary patch delta 59083 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 z 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 delta 52035 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 diff --git a/Revit.DesignApplication/DesignApplication.cs b/Revit.DesignApplication/DesignApplication.cs new file mode 100644 index 0000000..1b4231a --- /dev/null +++ b/Revit.DesignApplication/DesignApplication.cs @@ -0,0 +1,74 @@ +using Autodesk.Revit.ApplicationServices; +using Autodesk.Revit.DB; +using DesignAutomationFramework; +using System; + +namespace Revit.DesignApplication +{ + public abstract class DesignApplication : IExternalDBApplication, IDesignAutomation + { + public ControlledApplication Application { get; private set; } + public abstract void OnStartup(); + public abstract void OnShutdown(); + public abstract bool Execute(Application application, string filePath, Document document); + + private IExternalDBApplication designApplication; + public ExternalDBApplicationResult OnStartup(ControlledApplication application) + { + this.Application = application; + + designApplication = DesignApplicationLoader.LoadVersion(this); + + if (designApplication is IExternalDBApplication) + { + return designApplication.OnStartup(application); + } + + Console.WriteLine("----------------------------------------"); + Console.WriteLine($"FullName: \t{this.GetType().Assembly.FullName}"); + Console.WriteLine($"AddInName: \t{this.Application.ActiveAddInId?.GetAddInName()}"); + Console.WriteLine("----------------------------------------"); + + OnStartup(); + DesignAutomationBridge.DesignAutomationReadyEvent += DesignAutomationReadyEvent; + + return ExternalDBApplicationResult.Succeeded; + } + + public ExternalDBApplicationResult OnShutdown(ControlledApplication application) + { + this.Application = application; + + if (designApplication is IExternalDBApplication) + { + try + { + return designApplication.OnShutdown(application); + } + finally + { + DesignApplicationLoader.Dispose(); + } + } + + OnShutdown(); + DesignAutomationBridge.DesignAutomationReadyEvent -= DesignAutomationReadyEvent; + + return ExternalDBApplicationResult.Succeeded; + } + + + private void DesignAutomationReadyEvent(object sender, DesignAutomationReadyEventArgs e) + { + DesignAutomationBridge.DesignAutomationReadyEvent -= DesignAutomationReadyEvent; + + var data = e.DesignAutomationData; + + Console.WriteLine("--------------------------------------------------"); + Console.WriteLine($"RevitApp: {data.RevitApp} \tFilePath: {data.FilePath} \tRevitDoc: {data.RevitDoc} \nAddInName:{data.RevitApp.ActiveAddInId?.GetAddInName()}"); + Console.WriteLine("--------------------------------------------------"); + + e.Succeeded = Execute(data.RevitApp, data.FilePath, data.RevitDoc); + } + } +} \ No newline at end of file diff --git a/Revit.DesignApplication/DesignApplicationLoader.cs b/Revit.DesignApplication/DesignApplicationLoader.cs new file mode 100644 index 0000000..b9e1ebc --- /dev/null +++ b/Revit.DesignApplication/DesignApplicationLoader.cs @@ -0,0 +1,87 @@ +using Autodesk.Revit.DB; +using System; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Runtime.Versioning; + +namespace Revit.DesignApplication +{ + internal static class DesignApplicationLoader + { + private static Assembly loadAssembly; + public static IExternalDBApplication LoadVersion(T designApplication) where T : DesignApplication + { + var type = designApplication.GetType(); + + var similar = AppDomain.CurrentDomain.GetAssemblies().Where(e => e.FullName == type.Assembly.FullName); + if (similar.Count() >= 2) + { + return null; + } + + var location = type.Assembly.Location; + var revitAssemblyReference = type.Assembly.GetReferencedAssemblies().FirstOrDefault(e => e.Name.Equals("RevitAPI")); + var revitAssembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(e => e.GetName().Name.Equals("RevitAPI")); + + var revitReferenceVersion = revitAssemblyReference.Version.Major + 2000; + var revitVersion = revitAssembly.GetName().Version.Major + 2000; + + Console.WriteLine("--------------------------------------------------"); + Console.WriteLine($"DesignApplicationLoader: \t{revitVersion} -> {revitReferenceVersion}"); + + for (int version = revitVersion; version > revitReferenceVersion; version--) + { + var directory = Path.GetDirectoryName(location); + var directoryVersionRevit = Path.Combine(directory, "..", version.ToString()); + var fileName = Path.Combine(directoryVersionRevit, Path.GetFileName(location)); + + //Console.WriteLine($"DesignApplicationLoader Try: \t{version}"); + + if (File.Exists(fileName)) + { + fileName = new FileInfo(fileName).FullName; + Console.WriteLine($"DesignApplicationLoader File Exists: \t{fileName}"); + Console.WriteLine($"DesignApplicationLoader Version: \t{version}"); + Console.WriteLine($"DesignApplicationLoader LoadFile: \t{Path.GetFileName(fileName)}"); + AppDomain.CurrentDomain.AssemblyResolve += LoadAssemblyResolve; + loadAssembly = Assembly.LoadFile(fileName); + break; + } + } + + Console.WriteLine("----------------------------------------"); + + if (loadAssembly is not null) + { + var loadType = loadAssembly.GetType(type.FullName); + + Console.WriteLine($"DesignApplicationLoader Type: {loadType}"); + Console.WriteLine($"DesignApplicationLoader FrameworkName: \t{loadType.Assembly.GetCustomAttribute()?.FrameworkName}"); + Console.WriteLine("----------------------------------------"); + + return Activator.CreateInstance(loadType) as IExternalDBApplication; + } + + return null; + } + + private static Assembly LoadAssemblyResolve(object sender, ResolveEventArgs args) + { + var assemblyName = new AssemblyName(args.Name); + var assemblyPath = Path.Combine(Path.GetDirectoryName(loadAssembly.Location), assemblyName.Name + ".dll"); + if (File.Exists(assemblyPath)) + { + var folderName = Path.GetFileName(Path.GetDirectoryName(assemblyPath)); + Console.WriteLine($"AssemblyResolve LoadFile: {folderName}\\{assemblyName.Name + ".dll"}"); + return Assembly.LoadFile(assemblyPath); + } + return null; + } + + public static void Dispose() + { + AppDomain.CurrentDomain.AssemblyResolve -= LoadAssemblyResolve; + } + } +} \ No newline at end of file diff --git a/RevitAddin.DA.Tester/Revit/IDesignAutomation.cs b/Revit.DesignApplication/IDesignAutomation.cs similarity index 84% rename from RevitAddin.DA.Tester/Revit/IDesignAutomation.cs rename to Revit.DesignApplication/IDesignAutomation.cs index cfb523a..e8df580 100644 --- a/RevitAddin.DA.Tester/Revit/IDesignAutomation.cs +++ b/Revit.DesignApplication/IDesignAutomation.cs @@ -1,7 +1,7 @@ using Autodesk.Revit.ApplicationServices; using Autodesk.Revit.DB; -namespace RevitAddin.DA.Tester.Revit +namespace Revit.DesignApplication { public interface IDesignAutomation { diff --git a/Revit.DesignApplication/Revit.DesignApplication.csproj b/Revit.DesignApplication/Revit.DesignApplication.csproj new file mode 100644 index 0000000..c860d9c --- /dev/null +++ b/Revit.DesignApplication/Revit.DesignApplication.csproj @@ -0,0 +1,66 @@ + + + + Library + latest + + + + + net47;net48;net8.0-windows + true + None + + + + + 2017 + + + + + 2019 + + + + + 2021 + + + + + 2025 + + + + + + + true + true + false + + + + + true + bin\Release\$(RevitVersion) + REVIT$(RevitVersion) + MSB3052 + None + + + + + true + bin\Debug\ + DEBUG;TRACE;REVIT$(RevitVersion) + Full + + + + + + + + diff --git a/RevitAddin.DA.Tester.sln b/RevitAddin.DA.Tester.sln index 2e956d8..ccc3696 100644 --- a/RevitAddin.DA.Tester.sln +++ b/RevitAddin.DA.Tester.sln @@ -16,6 +16,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution", "Solution", "{64 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesignAutomationConsole", "DesignAutomationConsole\DesignAutomationConsole.csproj", "{7F41BE81-4EFB-4FAC-8563-B5EDAEA9F44B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Revit.DesignApplication", "Revit.DesignApplication\Revit.DesignApplication.csproj", "{0966B1C7-6ECE-44D0-A71B-7C26EB598BFF}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -32,6 +34,10 @@ Global {7F41BE81-4EFB-4FAC-8563-B5EDAEA9F44B}.Debug|Any CPU.Build.0 = Debug|Any CPU {7F41BE81-4EFB-4FAC-8563-B5EDAEA9F44B}.Release|Any CPU.ActiveCfg = Release|Any CPU {7F41BE81-4EFB-4FAC-8563-B5EDAEA9F44B}.Release|Any CPU.Build.0 = Release|Any CPU + {0966B1C7-6ECE-44D0-A71B-7C26EB598BFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0966B1C7-6ECE-44D0-A71B-7C26EB598BFF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0966B1C7-6ECE-44D0-A71B-7C26EB598BFF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0966B1C7-6ECE-44D0-A71B-7C26EB598BFF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/RevitAddin.DA.Tester/Revit/App.cs b/RevitAddin.DA.Tester/Revit/App.cs index e1bf6f9..f5436e5 100644 --- a/RevitAddin.DA.Tester/Revit/App.cs +++ b/RevitAddin.DA.Tester/Revit/App.cs @@ -1,31 +1,31 @@ using Autodesk.Revit.ApplicationServices; using Autodesk.Revit.DB; +using Revit.DesignApplication; using RevitAddin.DA.Tester.Services; using System; namespace RevitAddin.DA.Tester.Revit { - public class App : IExternalDBApplication + public class App : DesignApplication { - IDisposable designAutomation; - public ExternalDBApplicationResult OnStartup(ControlledApplication application) + public override void OnStartup() { Console.WriteLine("----------------------------------------"); Console.WriteLine($"FullName: \t{this.GetType().Assembly.FullName}"); Console.WriteLine("----------------------------------------"); Console.WriteLine($"Location: {this.GetType().Assembly.Location}"); Console.WriteLine("----------------------------------------"); - Console.WriteLine($"AddInName: \t{application.ActiveAddInId?.GetAddInName()}"); + Console.WriteLine($"AddInName: \t{Application.ActiveAddInId?.GetAddInName()}"); Console.WriteLine("----------------------------------------"); - - designAutomation = new DesignAutomationLoadVersion(); - return ExternalDBApplicationResult.Succeeded; } - public ExternalDBApplicationResult OnShutdown(ControlledApplication application) + public override void OnShutdown() + { + + } + public override bool Execute(Application application, string filePath, Document document) { - designAutomation?.Dispose(); - return ExternalDBApplicationResult.Succeeded; + return new DesignAutomationController().Execute(application, filePath, document); } } } \ No newline at end of file diff --git a/RevitAddin.DA.Tester/Revit/DesignAutomation.cs b/RevitAddin.DA.Tester/Revit/DesignAutomation.cs deleted file mode 100644 index 34f6473..0000000 --- a/RevitAddin.DA.Tester/Revit/DesignAutomation.cs +++ /dev/null @@ -1,77 +0,0 @@ -using DesignAutomationFramework; -using System; -using System.Linq; - -namespace RevitAddin.DA.Tester.Revit -{ - public class DesignAutomation : DesignAutomation where T : IDesignAutomation - { - public DesignAutomation() : base(Activator.CreateInstance(typeof(T))) - { - - } - public DesignAutomation(T instance) : base(instance) - { - - } - } - - public class DesignAutomation : IDisposable - { - private readonly object instance; - - public DesignAutomation(Type type) - { - this.instance = Activator.CreateInstance(type); - Initialize(); - } - - public DesignAutomation(object instance) - { - this.instance = instance; - Initialize(); - } - - public virtual void Initialize() - { - Console.WriteLine($"{nameof(DesignAutomation)} Initialize: \t{instance}"); - DesignAutomationBridge.DesignAutomationReadyEvent += DesignAutomationReadyEvent; - } - - public void Dispose() - { - Console.WriteLine($"{nameof(DesignAutomation)} Dispose: \t{instance}"); - DesignAutomationBridge.DesignAutomationReadyEvent -= DesignAutomationReadyEvent; - } - - private void DesignAutomationReadyEvent(object sender, DesignAutomationReadyEventArgs e) - { - DesignAutomationBridge.DesignAutomationReadyEvent -= DesignAutomationReadyEvent; - - var data = e.DesignAutomationData; - - Console.WriteLine("--------------------------------------------------"); - Console.WriteLine($"RevitApp: {data.RevitApp} FilePath: {data.FilePath} RevitDoc: {data.RevitDoc}"); - Console.WriteLine("--------------------------------------------------"); - - try - { - var method = instance.GetType().GetMethods() - .Where(e => e.Name.Equals(nameof(IDesignAutomation.Execute))) - .FirstOrDefault(e => e.GetParameters().Count() == 3); - - Console.WriteLine($"Invoke: {method}"); - - var result = method.Invoke(instance, new object[] { data.RevitApp, data.FilePath, data.RevitDoc }); - - if (result is bool resultBool) - e.Succeeded = resultBool; - } - catch (Exception ex) - { - Console.WriteLine($"{nameof(DesignAutomation)} Invoke Exception: \t{ex.Message}"); - throw; - } - } - } -} \ No newline at end of file diff --git a/RevitAddin.DA.Tester/Revit/DesignAutomationLoadVersion.cs b/RevitAddin.DA.Tester/Revit/DesignAutomationLoadVersion.cs deleted file mode 100644 index 1d68b7d..0000000 --- a/RevitAddin.DA.Tester/Revit/DesignAutomationLoadVersion.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Runtime.Versioning; - -namespace RevitAddin.DA.Tester.Revit -{ - public class DesignAutomationLoadVersion : DesignAutomationLoadVersion where T : IDesignAutomation - { - public DesignAutomationLoadVersion() : base(typeof(T)) - { - - } - } - - public class DesignAutomationLoadVersion : IDisposable - { - readonly IDisposable designAutomation; - readonly Assembly loadAssembly; - - public DesignAutomationLoadVersion(Type type) - { - var location = type.Assembly.Location; - var revitAssemblyReference = type.Assembly.GetReferencedAssemblies().FirstOrDefault(e => e.Name.Equals("RevitAPI")); - var revitAssembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(e => e.GetName().Name.Equals("RevitAPI")); - - var revitReferenceVersion = revitAssemblyReference.Version.Major + 2000; - var revitVersion = revitAssembly.GetName().Version.Major + 2000; - - Console.WriteLine($"DesignAutomationLoadVersion: \t{revitVersion} -> {revitReferenceVersion}"); - - for (int version = revitVersion; version > revitReferenceVersion; version--) - { - var directory = System.IO.Path.GetDirectoryName(location); - var directoryVersionRevit = System.IO.Path.Combine(directory, "..", version.ToString()); - var fileName = System.IO.Path.Combine(directoryVersionRevit, System.IO.Path.GetFileName(location)); - - Console.WriteLine($"DesignAutomationLoadVersion Try: \t{version}"); - - if (File.Exists(fileName)) - { - fileName = new FileInfo(fileName).FullName; - Console.WriteLine($"DesignAutomationLoadVersion File Exists: \t{fileName}"); - Console.WriteLine($"DesignAutomationLoadVersion Version: \t{version}"); - Console.WriteLine($"DesignAutomationLoadVersion LoadFile: \t{Path.GetFileName(fileName)}"); - AppDomain.CurrentDomain.AssemblyResolve += LoadAssemblyResolve; - loadAssembly = Assembly.LoadFile(fileName); - type = loadAssembly.GetType(type.FullName); - break; - } - } - - Console.WriteLine("----------------------------------------"); - Console.WriteLine($"DesignAutomationLoadVersion Type: {type}"); - Console.WriteLine($"DesignAutomationLoadVersion FrameworkName: \t{type.Assembly.GetCustomAttribute()?.FrameworkName}"); - designAutomation = new DesignAutomation(type); - } - - private Assembly LoadAssemblyResolve(object sender, ResolveEventArgs args) - { - var assemblyName = new AssemblyName(args.Name); - var assemblyPath = Path.Combine(Path.GetDirectoryName(loadAssembly.Location), assemblyName.Name + ".dll"); - if (File.Exists(assemblyPath)) - { - var folderName = Path.GetFileName(Path.GetDirectoryName(assemblyPath)); - Console.WriteLine($"AssemblyResolve LoadFile: {folderName}\\{assemblyName.Name + ".dll"}"); - return Assembly.LoadFile(assemblyPath); - } - return null; - } - - public void Dispose() - { - designAutomation?.Dispose(); - AppDomain.CurrentDomain.AssemblyResolve -= LoadAssemblyResolve; - } - } -} \ No newline at end of file diff --git a/RevitAddin.DA.Tester/RevitAddin.DA.Tester.csproj b/RevitAddin.DA.Tester/RevitAddin.DA.Tester.csproj index 9c0a625..da7f0b3 100644 --- a/RevitAddin.DA.Tester/RevitAddin.DA.Tester.csproj +++ b/RevitAddin.DA.Tester/RevitAddin.DA.Tester.csproj @@ -75,7 +75,7 @@ RevitAddin.DA.Tester - 1.4.0 + 1.4.1-alpha {7C324916-9F8D-43B0-B226-DA67D2504393} @@ -132,6 +132,10 @@ + + + + True diff --git a/RevitAddin.DA.Tester/Services/DesignAutomationController.cs b/RevitAddin.DA.Tester/Services/DesignAutomationController.cs index b05bf10..d966e5a 100644 --- a/RevitAddin.DA.Tester/Services/DesignAutomationController.cs +++ b/RevitAddin.DA.Tester/Services/DesignAutomationController.cs @@ -9,7 +9,7 @@ namespace RevitAddin.DA.Tester.Services { - public class DesignAutomationController : IDesignAutomation + public class DesignAutomationController { public bool Execute(Application application, string filePath = null, Document document = null) {