From 214c87f48828558191e0e5c10d02032fbbc39772 Mon Sep 17 00:00:00 2001 From: Matteo Cominetti Date: Thu, 9 Mar 2023 16:14:30 +0100 Subject: [PATCH 1/6] chore: reference the 2023 project --- SampleLibrary/SampleLibrary.csproj | 11 +- xUnitRevitUtilsShared/xru.cs | 328 ++++++++++++++--------------- 2 files changed, 172 insertions(+), 167 deletions(-) diff --git a/SampleLibrary/SampleLibrary.csproj b/SampleLibrary/SampleLibrary.csproj index 49261bb..9ea3cd4 100644 --- a/SampleLibrary/SampleLibrary.csproj +++ b/SampleLibrary/SampleLibrary.csproj @@ -74,10 +74,15 @@ - - {977e0b63-5706-4c2b-9c01-3c02d9ebe377} - xUnitRevitUtils2021 + + {e0bf38c2-13bc-4acc-b0f2-4dfe82965db4} + xUnitRevitUtils2023 + + + 2023.0.0 + + \ No newline at end of file diff --git a/xUnitRevitUtilsShared/xru.cs b/xUnitRevitUtilsShared/xru.cs index 6c4bd00..e886c37 100644 --- a/xUnitRevitUtilsShared/xru.cs +++ b/xUnitRevitUtilsShared/xru.cs @@ -1,52 +1,52 @@ -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; -using Xunit; - -namespace xUnitRevitUtils -{ - /// - /// Utility class with methods and properties used by the xUnit Revit plugin - /// - public static class xru - { - public static UIApplication Uiapp { get; set; } - private static IList Queue { get; set; } - private static ExternalEvent EventHandler { get; set; } - public static SynchronizationContext UiContext { get; set; } - public static void Initialize(UIApplication uiapp, SynchronizationContext uiContext, ExternalEvent eventHandler, IList queue) - { - Uiapp = uiapp; - UiContext = uiContext; - EventHandler = eventHandler; - Queue = queue; - } - - #region utility methods - - /// - /// Returns the selected elements in the active document - /// - /// - public static IList GetActiveSelection() - { - Assert.NotNull(Uiapp); - - if (Uiapp.ActiveUIDocument != null) - return Uiapp.ActiveUIDocument.Selection.GetElementIds().Select(x => Uiapp.ActiveUIDocument.Document.GetElement(x)).ToList(); - return new List(); - } - /// - /// Opens and activates a document if not open already - /// - /// Path to the file to open - public static Document OpenDoc(string filePath) - { - Assert.NotNull(Uiapp); - Document doc = null; - //OpenAndActivateDocument only works if run from the current context - UiContext.Send(x => doc = Uiapp.OpenAndActivateDocument(filePath).Document, null); - Assert.NotNull(doc); - return doc; +using Autodesk.Revit.DB; +using Autodesk.Revit.UI; +using Xunit; + +namespace xUnitRevitUtils +{ + /// + /// Utility class with methods and properties used by the xUnit Revit plugin + /// + public static class xru + { + public static UIApplication Uiapp { get; set; } + private static IList Queue { get; set; } + private static ExternalEvent EventHandler { get; set; } + public static SynchronizationContext UiContext { get; set; } + public static void Initialize(UIApplication uiapp, SynchronizationContext uiContext, ExternalEvent eventHandler, IList queue) + { + Uiapp = uiapp; + UiContext = uiContext; + EventHandler = eventHandler; + Queue = queue; + } + + #region utility methods + + /// + /// Returns the selected elements in the active document + /// + /// + public static IList GetActiveSelection() + { + Assert.NotNull(Uiapp); + + if (Uiapp.ActiveUIDocument != null) + return Uiapp.ActiveUIDocument.Selection.GetElementIds().Select(x => Uiapp.ActiveUIDocument.Document.GetElement(x)).ToList(); + return new List(); + } + /// + /// Opens and activates a document if not open already + /// + /// Path to the file to open + public static Document OpenDoc(string filePath) + { + Assert.NotNull(Uiapp); + Document doc = null; + //OpenAndActivateDocument only works if run from the current context + UiContext.Send(x => doc = Uiapp.OpenAndActivateDocument(filePath).Document, null); + Assert.NotNull(doc); + return doc; } /// /// Closes the provided Revit document @@ -64,62 +64,62 @@ namespace xUnitRevitUtils var result = false; UiContext.Send(x => result = doc.Close(saveChanges), null); return result; - } - - /// - /// Creates a new empty document - /// - /// Path to the project template - /// Path where to save the new doc - /// If true overwrites existing files with same name - /// - public static Document CreateNewDoc(string templatePath, string filePath, bool overwrite = true) - { - Assert.NotNull(Uiapp); - Document doc = null; - - try - { - if (overwrite && File.Exists(filePath)) - File.Delete(filePath); - } + } + + /// + /// Creates a new empty document + /// + /// Path to the project template + /// Path where to save the new doc + /// If true overwrites existing files with same name + /// + public static Document CreateNewDoc(string templatePath, string filePath, bool overwrite = true) + { + Assert.NotNull(Uiapp); + Document doc = null; + + try + { + if (overwrite && File.Exists(filePath)) + File.Delete(filePath); + } catch { - } - - //OpenAndActivateDocument only works if run from the current context - UiContext.Send(x => - { - //if already open, just use it - if (!File.Exists(filePath)) - { - doc = Uiapp.Application.NewProjectDocument(templatePath); - doc.SaveAs(filePath); - doc.Close(); - } - - doc = Uiapp.OpenAndActivateDocument(filePath).Document; - } - , null); - Assert.NotNull(doc); - return doc; - } - - /// - /// Runs an Action in a Revit transaction, uses TaskCompletionSource to communicate when done - /// - /// Action to run - /// Revit Document - /// Transaction Name - /// Enable to swallow all warnings generated by the transaction and prevent them from being raised within Revit - /// - public static Task RunInTransaction(Action action, Document doc, string transactionName = "transaction", bool ignoreWarnings = false) - { - var tcs = new TaskCompletionSource(); - Queue.Add(new Action(() => - { - try - { + } + + //OpenAndActivateDocument only works if run from the current context + UiContext.Send(x => + { + //if already open, just use it + if (!File.Exists(filePath)) + { + doc = Uiapp.Application.NewProjectDocument(templatePath); + doc.SaveAs(filePath); + doc.Close(); + } + + doc = Uiapp.OpenAndActivateDocument(filePath).Document; + } + , null); + Assert.NotNull(doc); + return doc; + } + + /// + /// Runs an Action in a Revit transaction, uses TaskCompletionSource to communicate when done + /// + /// Action to run + /// Revit Document + /// Transaction Name + /// Enable to swallow all warnings generated by the transaction and prevent them from being raised within Revit + /// + public static Task RunInTransaction(Action action, Document doc, string transactionName = "transaction", bool ignoreWarnings = false) + { + var tcs = new TaskCompletionSource(); + Queue.Add(new Action(() => + { + try + { using var transaction = new Transaction(doc, transactionName); transaction.Start(); @@ -131,64 +131,64 @@ namespace xUnitRevitUtils } action.Invoke(); - transaction.Commit(); - } - catch (Exception e) - { - tcs.TrySetException(e); - } - tcs.TrySetResult(""); - })); - - EventHandler.Raise(); - - return tcs.Task; - } - - /// - /// Runs an Action, uses TaskCompletionSource to communicate when done - /// - /// Action to run - /// Revit Document - /// - public static Task Run(Action action, Document doc) - { - var tcs = new TaskCompletionSource(); - Queue.Add(new Action(() => - { - try - { - action.Invoke(); - } - catch (Exception e) - { - tcs.TrySetException(e); - } - tcs.TrySetResult(""); - })); - - EventHandler.Raise(); - - return tcs.Task; - } - - /// - /// A failures preprocesser that clears any failures that occur within a transaction - /// - internal class IgnoreAllWarnings : IFailuresPreprocessor - { - public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor) - { - var failList = failuresAccessor.GetFailureMessages(); - - foreach (FailureMessageAccessor failure in failList) - { - failuresAccessor.DeleteWarning(failure); - } - - return FailureProcessingResult.Continue; - } - } - #endregion - } -} + transaction.Commit(); + } + catch (Exception e) + { + tcs.TrySetException(e); + } + tcs.TrySetResult(""); + })); + + EventHandler.Raise(); + + return tcs.Task; + } + + /// + /// Runs an Action, uses TaskCompletionSource to communicate when done + /// + /// Action to run + /// Revit Document + /// + public static Task Run(Action action, Document doc) + { + var tcs = new TaskCompletionSource(); + Queue.Add(new Action(() => + { + try + { + action.Invoke(); + } + catch (Exception e) + { + tcs.TrySetException(e); + } + tcs.TrySetResult(""); + })); + + EventHandler.Raise(); + + return tcs.Task; + } + + /// + /// A failures preprocesser that clears any failures that occur within a transaction + /// + internal class IgnoreAllWarnings : IFailuresPreprocessor + { + public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor) + { + var failList = failuresAccessor.GetFailureMessages(); + + foreach (FailureMessageAccessor failure in failList) + { + failuresAccessor.DeleteWarning(failure); + } + + return FailureProcessingResult.Continue; + } + } + #endregion + } +} From f786a0a67e9d4dfd080e9368b2d4857da113befd Mon Sep 17 00:00:00 2001 From: Matteo Cominetti Date: Thu, 9 Mar 2023 18:24:53 +0100 Subject: [PATCH 2/6] feat: adds submodule --- .gitmodules | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitmodules b/.gitmodules index e69de29..f1653d3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "speckle.xunit.runner.wpf"] + path = speckle.xunit.runner.wpf + url = git@github.com:specklesystems/speckle.xunit.runner.wpf.git From 77908870915796087ea4300c9dc8d5facf83b903 Mon Sep 17 00:00:00 2001 From: Matteo Cominetti Date: Thu, 9 Mar 2023 18:25:14 +0100 Subject: [PATCH 3/6] chore: reorg solution --- SampleLibrary/SampleLibrary.csproj | 13 +- azure-pipelines.yml | 53 --- xUnitRevit.sln | 341 +++++++++------ xUnitRevit/xUnitRevit.csproj | 262 ------------ .../Properties/AssemblyInfo.cs | 19 +- .../xUnitRevitRunner2019.csproj | 94 +++++ .../Properties/AssemblyInfo.cs | 36 ++ .../xUnitRevitRunner2020.csproj | 94 +++++ .../Properties/AssemblyInfo.cs | 36 ++ .../xUnitRevitRunner2021.csproj | 94 +++++ .../Properties/AssemblyInfo.cs | 36 ++ .../xUnitRevitRunner2022.csproj | 94 +++++ .../Properties/AssemblyInfo.cs | 36 ++ .../xUnitRevitRunner2023.csproj | 94 +++++ .../xUnitRevitRunnerShared}/App.cs | 136 +++--- .../xUnitRevitRunnerShared}/Assets/icon.png | Bin .../xUnitRevitRunnerShared}/Assets/icon16.png | Bin .../xUnitRevitRunnerShared}/Assets/icon32.png | Bin .../CmdAvailabilityViews.cs | 44 +- .../xUnitRevitRunnerShared}/Command.cs | 46 +-- .../xUnitRevitRunnerShared}/Configuration.cs | 26 +- .../ExternalEventHandler.cs | 86 ++-- .../xUnitRevitRunnerShared}/Runner.cs | 120 +++--- .../config_sample.json | 0 .../xUnitRevitRunner.addin | 2 +- .../xUnitRevitRunnerShared.projitems | 34 ++ .../xUnitRevitRunnerShared.shproj | 13 + .../Directory.Build.props | 6 +- .../xUnitRevitUtils2019.csproj | 0 .../xUnitRevitUtils2020.csproj | 0 .../xUnitRevitUtils2021.csproj | 0 .../xUnitRevitUtils2022.csproj | 4 +- .../xUnitRevitUtils2023.csproj | 4 +- .../xUnitRevitUtilsShared}/xru.cs | 388 +++++++++--------- 34 files changed, 1329 insertions(+), 882 deletions(-) delete mode 100644 azure-pipelines.yml delete mode 100644 xUnitRevit/xUnitRevit.csproj rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunner2019}/Properties/AssemblyInfo.cs (70%) create mode 100644 xUnitRevitRunner/xUnitRevitRunner2019/xUnitRevitRunner2019.csproj create mode 100644 xUnitRevitRunner/xUnitRevitRunner2020/Properties/AssemblyInfo.cs create mode 100644 xUnitRevitRunner/xUnitRevitRunner2020/xUnitRevitRunner2020.csproj create mode 100644 xUnitRevitRunner/xUnitRevitRunner2021/Properties/AssemblyInfo.cs create mode 100644 xUnitRevitRunner/xUnitRevitRunner2021/xUnitRevitRunner2021.csproj create mode 100644 xUnitRevitRunner/xUnitRevitRunner2022/Properties/AssemblyInfo.cs create mode 100644 xUnitRevitRunner/xUnitRevitRunner2022/xUnitRevitRunner2022.csproj create mode 100644 xUnitRevitRunner/xUnitRevitRunner2023/Properties/AssemblyInfo.cs create mode 100644 xUnitRevitRunner/xUnitRevitRunner2023/xUnitRevitRunner2023.csproj rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/App.cs (90%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/Assets/icon.png (100%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/Assets/icon16.png (100%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/Assets/icon32.png (100%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/CmdAvailabilityViews.cs (95%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/Command.cs (95%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/Configuration.cs (96%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/ExternalEventHandler.cs (95%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/Runner.cs (93%) rename {xUnitRevit => xUnitRevitRunner/xUnitRevitRunnerShared}/config_sample.json (100%) rename xUnitRevit/xUnitRevit.addin => xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunner.addin (91%) create mode 100644 xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunnerShared.projitems create mode 100644 xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunnerShared.shproj rename Directory.Build.props => xUnitRevitUtils/Directory.Build.props (94%) rename {xUnitRevitUtils2019 => xUnitRevitUtils/xUnitRevitUtils2019}/xUnitRevitUtils2019.csproj (100%) rename {xUnitRevitUtils2020 => xUnitRevitUtils/xUnitRevitUtils2020}/xUnitRevitUtils2020.csproj (100%) rename {xUnitRevitUtils2021 => xUnitRevitUtils/xUnitRevitUtils2021}/xUnitRevitUtils2021.csproj (100%) rename {xUnitRevitUtils2022 => xUnitRevitUtils/xUnitRevitUtils2022}/xUnitRevitUtils2022.csproj (84%) rename {xUnitRevitUtils2023 => xUnitRevitUtils/xUnitRevitUtils2023}/xUnitRevitUtils2023.csproj (79%) rename {xUnitRevitUtilsShared => xUnitRevitUtils/xUnitRevitUtilsShared}/xru.cs (96%) diff --git a/SampleLibrary/SampleLibrary.csproj b/SampleLibrary/SampleLibrary.csproj index 9ea3cd4..de37428 100644 --- a/SampleLibrary/SampleLibrary.csproj +++ b/SampleLibrary/SampleLibrary.csproj @@ -15,6 +15,7 @@ + 8.0 true @@ -73,16 +74,16 @@ - - - {e0bf38c2-13bc-4acc-b0f2-4dfe82965db4} - xUnitRevitUtils2023 - - 2023.0.0 + + + {637136c9-ab5d-4f00-948e-c68fae2682d0} + xUnitRevitUtils2023 + + \ No newline at end of file diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 944c291..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,53 +0,0 @@ -# .NET Desktop -# Build and run tests for .NET Desktop or Windows classic desktop solutions. -# Add steps that publish symbols, save build artifacts, and more: -# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net - -trigger: - branches: - include: - - master - - refs/tags/* - -pool: - vmImage: 'windows-latest' - -variables: - solution: '**/*.sln' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -steps: -- task: NuGetToolInstaller@1 - -- task: NuGetCommand@2 - inputs: - restoreSolution: '$(solution)' - -- task: VSBuild@1 - inputs: - solution: '$(solution)' - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' - -# - task: VSTest@2 -# inputs: -# platform: '$(buildPlatform)' -# configuration: '$(buildConfiguration)' - -- task: NuGetCommand@2 - inputs: - command: 'pack' - packagesToPack: '**/xUnitRevitUtils*.csproj' - versioningScheme: 'off' -- task: PublishBuildArtifacts@1 - inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)' - ArtifactName: 'artifact' - publishLocation: 'Container' - -- powershell: | - If ($env:BRANCH.StartsWith('refs/tags/')) { nuget push -ApiKey $env:APIKEY -Source https://api.nuget.org/v3/index.json $(Build.ArtifactStagingDirectory)/**/*.nupkg } - env: - APIKEY: $(nuget-apikey) - BRANCH: $(Build.SourceBranch) \ No newline at end of file diff --git a/xUnitRevit.sln b/xUnitRevit.sln index 0697209..ee1ff09 100644 --- a/xUnitRevit.sln +++ b/xUnitRevit.sln @@ -3,26 +3,46 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.2.32630.192 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "xUnitRevit", "xUnitRevit\xUnitRevit.csproj", "{27A79ACA-7EA8-4406-8BB8-216578CC3AB7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2021", "xUnitRevitUtils2021\xUnitRevitUtils2021.csproj", "{977E0B63-5706-4C2B-9C01-3C02D9EBE377}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2020", "xUnitRevitUtils2020\xUnitRevitUtils2020.csproj", "{0DEF0F23-8AE2-461B-B014-8A0DA7494088}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2019", "xUnitRevitUtils2019\xUnitRevitUtils2019.csproj", "{02399359-9CA0-4B47-B467-541E290E700F}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleLibrary", "SampleLibrary\SampleLibrary.csproj", "{C3A8684E-15BB-4B8B-B46C-35ACE3729C35}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2023", "xUnitRevitUtils2023\xUnitRevitUtils2023.csproj", "{E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2022", "xUnitRevitUtils2022\xUnitRevitUtils2022.csproj", "{78770414-4F6B-4429-BD8F-F0F64A349551}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{F5A2849D-7C58-4894-B9C5-8488E244B7CF}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig - Directory.Build.props = Directory.Build.props EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "xUnitRevitUtils", "xUnitRevitUtils", "{EDC05463-E574-4FF0-8518-D93D70EC138C}" + ProjectSection(SolutionItems) = preProject + xUnitRevitUtils\Directory.Build.props = xUnitRevitUtils\Directory.Build.props + EndProjectSection +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2023", "xUnitRevitUtils\xUnitRevitUtils2023\xUnitRevitUtils2023.csproj", "{637136C9-AB5D-4F00-948E-C68FAE2682D0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2022", "xUnitRevitUtils\xUnitRevitUtils2022\xUnitRevitUtils2022.csproj", "{1FBB8939-AEF1-4ED6-906D-AEB676BB683E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2021", "xUnitRevitUtils\xUnitRevitUtils2021\xUnitRevitUtils2021.csproj", "{441C42B5-400D-4EA3-9F2A-26B80CF37E8E}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2020", "xUnitRevitUtils\xUnitRevitUtils2020\xUnitRevitUtils2020.csproj", "{6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitUtils2019", "xUnitRevitUtils\xUnitRevitUtils2019\xUnitRevitUtils2019.csproj", "{469F8B29-F14E-49E8-B145-8C4FEF9D68CA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "speckle.xunit.runner.wpf", "speckle.xunit.runner.wpf\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf.csproj", "{B6404BAD-9314-45F9-9F4D-A644D986FC37}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extra", "Extra", "{B01105F5-963D-42C3-BFA7-2D26AC375D07}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "xUnitRevitRunner", "xUnitRevitRunner", "{CF685C5E-70E1-40C5-BCFD-1E27695F0364}" +EndProject +Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "xUnitRevitRunnerShared", "xUnitRevitRunner\xUnitRevitRunnerShared\xUnitRevitRunnerShared.shproj", "{2B4F4767-CF26-485B-ADB3-751250EB1CDB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "xUnitRevitRunner2023", "xUnitRevitRunner\xUnitRevitRunner2023\xUnitRevitRunner2023.csproj", "{748653C4-D89A-4DBD-B190-6F221FEC980B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "xUnitRevitRunner2022", "xUnitRevitRunner\xUnitRevitRunner2022\xUnitRevitRunner2022.csproj", "{6C7200FA-4541-4AFD-B297-6C13E29968D5}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "xUnitRevitRunner2021", "xUnitRevitRunner\xUnitRevitRunner2021\xUnitRevitRunner2021.csproj", "{0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "xUnitRevitRunner2020", "xUnitRevitRunner\xUnitRevitRunner2020\xUnitRevitRunner2020.csproj", "{D15EC3E8-9387-4870-AA3B-A47432982B07}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "xUnitRevitRunner2019", "xUnitRevitRunner\xUnitRevitRunner2019\xUnitRevitRunner2019.csproj", "{D11AD4C7-D302-44DC-AE02-840788391FE9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -32,126 +52,203 @@ Global Debug2022|Any CPU = Debug2022|Any CPU Debug2023|Any CPU = Debug2023|Any CPU Release|Any CPU = Release|Any CPU - Release2019|Any CPU = Release2019|Any CPU - Release2020|Any CPU = Release2020|Any CPU - Release2021|Any CPU = Release2021|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug|Any CPU.ActiveCfg = Debug2021|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug|Any CPU.Build.0 = Debug2021|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2019|Any CPU.ActiveCfg = Debug2019|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2019|Any CPU.Build.0 = Debug2019|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2020|Any CPU.ActiveCfg = Debug2020|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2020|Any CPU.Build.0 = Debug2020|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2021|Any CPU.ActiveCfg = Debug2021|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2021|Any CPU.Build.0 = Debug2021|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2022|Any CPU.ActiveCfg = Debug2022|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2022|Any CPU.Build.0 = Debug2022|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2023|Any CPU.ActiveCfg = Debug2023|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Debug2023|Any CPU.Build.0 = Debug2023|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|Any CPU.ActiveCfg = Release2021|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release|Any CPU.Build.0 = Release2021|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release2019|Any CPU.ActiveCfg = Release2019|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release2019|Any CPU.Build.0 = Release2019|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release2020|Any CPU.ActiveCfg = Release2020|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release2020|Any CPU.Build.0 = Release2020|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release2021|Any CPU.ActiveCfg = Release2021|Any CPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7}.Release2021|Any CPU.Build.0 = Release2021|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Debug|Any CPU.Build.0 = Debug|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Debug2021|Any CPU.Build.0 = Debug|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Release|Any CPU.ActiveCfg = Release|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Release|Any CPU.Build.0 = Release|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Release2019|Any CPU.ActiveCfg = Release|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Release2020|Any CPU.ActiveCfg = Release|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Release2021|Any CPU.ActiveCfg = Release|Any CPU - {977E0B63-5706-4C2B-9C01-3C02D9EBE377}.Release2021|Any CPU.Build.0 = Release|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Debug2020|Any CPU.Build.0 = Debug|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Release|Any CPU.Build.0 = Release|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Release2019|Any CPU.ActiveCfg = Release|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Release2020|Any CPU.ActiveCfg = Release|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Release2020|Any CPU.Build.0 = Release|Any CPU - {0DEF0F23-8AE2-461B-B014-8A0DA7494088}.Release2021|Any CPU.ActiveCfg = Release|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug2019|Any CPU.Build.0 = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug2022|Any CPU.Build.0 = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Debug2023|Any CPU.Build.0 = Debug|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Release|Any CPU.Build.0 = Release|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Release2019|Any CPU.ActiveCfg = Release|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Release2019|Any CPU.Build.0 = Release|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Release2020|Any CPU.ActiveCfg = Release|Any CPU - {02399359-9CA0-4B47-B467-541E290E700F}.Release2021|Any CPU.ActiveCfg = Release|Any CPU {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2019|Any CPU.Build.0 = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2020|Any CPU.Build.0 = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2021|Any CPU.Build.0 = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2022|Any CPU.Build.0 = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2019|Any CPU.ActiveCfg = Debug2019|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2019|Any CPU.Build.0 = Debug2019|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2020|Any CPU.ActiveCfg = Debug2020|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2020|Any CPU.Build.0 = Debug2020|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2021|Any CPU.ActiveCfg = Debug2021|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2021|Any CPU.Build.0 = Debug2021|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2022|Any CPU.ActiveCfg = Debug2022|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2022|Any CPU.Build.0 = Debug2022|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2023|Any CPU.ActiveCfg = Debug2023|Any CPU + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Debug2023|Any CPU.Build.0 = Debug2023|Any CPU {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Release|Any CPU.ActiveCfg = Release|Any CPU {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Release|Any CPU.Build.0 = Release|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Release2019|Any CPU.ActiveCfg = Release|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Release2019|Any CPU.Build.0 = Release|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Release2020|Any CPU.ActiveCfg = Release|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Release2020|Any CPU.Build.0 = Release|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Release2021|Any CPU.ActiveCfg = Release|Any CPU - {C3A8684E-15BB-4B8B-B46C-35ACE3729C35}.Release2021|Any CPU.Build.0 = Release|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Debug2023|Any CPU.Build.0 = Debug|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Release|Any CPU.Build.0 = Release|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Release2019|Any CPU.ActiveCfg = Release|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Release2020|Any CPU.ActiveCfg = Release|Any CPU - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}.Release2021|Any CPU.ActiveCfg = Release|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Debug|Any CPU.Build.0 = Debug|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Debug2022|Any CPU.Build.0 = Debug|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Release|Any CPU.ActiveCfg = Release|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Release|Any CPU.Build.0 = Release|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Release2019|Any CPU.ActiveCfg = Release|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Release2020|Any CPU.ActiveCfg = Release|Any CPU - {78770414-4F6B-4429-BD8F-F0F64A349551}.Release2021|Any CPU.ActiveCfg = Release|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {637136C9-AB5D-4F00-948E-C68FAE2682D0}.Release|Any CPU.Build.0 = Release|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E}.Release|Any CPU.Build.0 = Release|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E}.Release|Any CPU.Build.0 = Release|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8}.Release|Any CPU.Build.0 = Release|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Release|Any CPU.Build.0 = Release|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6404BAD-9314-45F9-9F4D-A644D986FC37}.Release|Any CPU.Build.0 = Release|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {748653C4-D89A-4DBD-B190-6F221FEC980B}.Release|Any CPU.Build.0 = Release|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5}.Release|Any CPU.Build.0 = Release|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34}.Release|Any CPU.Build.0 = Release|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D15EC3E8-9387-4870-AA3B-A47432982B07}.Release|Any CPU.Build.0 = Release|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2019|Any CPU.ActiveCfg = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2019|Any CPU.Build.0 = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2020|Any CPU.ActiveCfg = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2020|Any CPU.Build.0 = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2021|Any CPU.ActiveCfg = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2021|Any CPU.Build.0 = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2022|Any CPU.ActiveCfg = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2022|Any CPU.Build.0 = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2023|Any CPU.ActiveCfg = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Debug2023|Any CPU.Build.0 = Debug|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D11AD4C7-D302-44DC-AE02-840788391FE9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {C3A8684E-15BB-4B8B-B46C-35ACE3729C35} = {B01105F5-963D-42C3-BFA7-2D26AC375D07} + {637136C9-AB5D-4F00-948E-C68FAE2682D0} = {EDC05463-E574-4FF0-8518-D93D70EC138C} + {1FBB8939-AEF1-4ED6-906D-AEB676BB683E} = {EDC05463-E574-4FF0-8518-D93D70EC138C} + {441C42B5-400D-4EA3-9F2A-26B80CF37E8E} = {EDC05463-E574-4FF0-8518-D93D70EC138C} + {6118A3C3-479F-4CA9-BB00-9FCBF55BF8B8} = {EDC05463-E574-4FF0-8518-D93D70EC138C} + {469F8B29-F14E-49E8-B145-8C4FEF9D68CA} = {EDC05463-E574-4FF0-8518-D93D70EC138C} + {B6404BAD-9314-45F9-9F4D-A644D986FC37} = {B01105F5-963D-42C3-BFA7-2D26AC375D07} + {2B4F4767-CF26-485B-ADB3-751250EB1CDB} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364} + {748653C4-D89A-4DBD-B190-6F221FEC980B} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364} + {6C7200FA-4541-4AFD-B297-6C13E29968D5} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364} + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364} + {D15EC3E8-9387-4870-AA3B-A47432982B07} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364} + {D11AD4C7-D302-44DC-AE02-840788391FE9} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {1CD726E4-6BBA-4FC3-9C57-0981EF1A9475} EndGlobalSection + GlobalSection(SharedMSBuildProjectFiles) = preSolution + xUnitRevitRunner\xUnitRevitRunnerShared\xUnitRevitRunnerShared.projitems*{0ed80c57-6b55-4b7e-b5c1-7f94c80f3e34}*SharedItemsImports = 4 + xUnitRevitRunner\xUnitRevitRunnerShared\xUnitRevitRunnerShared.projitems*{6c7200fa-4541-4afd-b297-6c13e29968d5}*SharedItemsImports = 4 + xUnitRevitRunner\xUnitRevitRunnerShared\xUnitRevitRunnerShared.projitems*{748653c4-d89a-4dbd-b190-6f221fec980b}*SharedItemsImports = 4 + xUnitRevitRunner\xUnitRevitRunnerShared\xUnitRevitRunnerShared.projitems*{d11ad4c7-d302-44dc-ae02-840788391fe9}*SharedItemsImports = 4 + xUnitRevitRunner\xUnitRevitRunnerShared\xUnitRevitRunnerShared.projitems*{d15ec3e8-9387-4870-aa3b-a47432982b07}*SharedItemsImports = 4 + EndGlobalSection EndGlobal diff --git a/xUnitRevit/xUnitRevit.csproj b/xUnitRevit/xUnitRevit.csproj deleted file mode 100644 index 683c11e..0000000 --- a/xUnitRevit/xUnitRevit.csproj +++ /dev/null @@ -1,262 +0,0 @@ - - - - - - None - - - - - - - Debug - AnyCPU - {27A79ACA-7EA8-4406-8BB8-216578CC3AB7} - Library - Properties - xUnitRevit - xUnitRevit - v4.8 - 512 - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - Program - $(ProgramW6432)\Autodesk\Revit 2021\Revit.exe - 2021 - - - pdbonly - false - bin\Release\ - TRACE - prompt - 4 - Program - $(ProgramW6432)\Autodesk\Revit 2021\Revit.exe - 2021 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - Program - $(ProgramW6432)\Autodesk\Revit 2020\Revit.exe - 2020 - - - pdbonly - false - bin\Release\ - TRACE - prompt - 4 - Program - $(ProgramW6432)\Autodesk\Revit 2020\Revit.exe - 2020 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - Program - $(ProgramW6432)\Autodesk\Revit 2019\Revit.exe - 2019 - - - pdbonly - false - bin\Release\ - TRACE - prompt - 4 - Program - $(ProgramW6432)\Autodesk\Revit 2019\Revit.exe - 2019 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - Program - $(ProgramW6432)\Autodesk\Revit 2022\Revit.exe - 2022 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - Program - $(ProgramW6432)\Autodesk\Revit 2023\Revit.exe - 2023 - - - - - - - - - - - - - - - - - - - - - - Always - - - - - - - - - - 1.0.0 - runtime - - - - - {02399359-9CA0-4B47-B467-541E290E700F} - xUnitRevitUtils2019 - - - - - - - 1.0.0 - runtime - - - - - {0DEF0F23-8AE2-461B-B014-8A0DA7494088} - xUnitRevitUtils2020 - - - - - - - 4.0.0 - runtime - compile; build; native; contentfiles; analyzers; buildtransitive - - - - - {977e0b63-5706-4c2b-9c01-3c02d9ebe377} - xUnitRevitUtils2021 - - - - - - - 2022.0.2.1 - runtime - - - - - {78770414-4F6B-4429-BD8F-F0F64A349551} - xUnitRevitUtils2022 - - - - - - - 2023.0.0 - runtime - - - - - {E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4} - xUnitRevitUtils2023 - - - - - - - - 1.0.9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xUnitRevit/Properties/AssemblyInfo.cs b/xUnitRevitRunner/xUnitRevitRunner2019/Properties/AssemblyInfo.cs similarity index 70% rename from xUnitRevit/Properties/AssemblyInfo.cs rename to xUnitRevitRunner/xUnitRevitRunner2019/Properties/AssemblyInfo.cs index a51525d..27b07cf 100644 --- a/xUnitRevit/Properties/AssemblyInfo.cs +++ b/xUnitRevitRunner/xUnitRevitRunner2019/Properties/AssemblyInfo.cs @@ -1,15 +1,16 @@ -using System.Reflection; +using System.Reflection; +using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("xUnitRevit")] -[assembly: AssemblyDescription("xUnit runner for Revit")] +[assembly: AssemblyTitle("xUnitRevitRunner")] +[assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Speckle")] -[assembly: AssemblyProduct("xUnitRevit")] -[assembly: AssemblyCopyright("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("xUnitRevitRunner")] +[assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -19,7 +20,7 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("321044f7-b0b2-4b1c-af18-e71a19252be0")] +[assembly: Guid("748653c4-d89a-4dbd-b190-6f221fec980b")] // Version information for an assembly consists of the following four values: // @@ -31,5 +32,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.1.0")] -[assembly: AssemblyFileVersion("1.0.1.0")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/xUnitRevitRunner/xUnitRevitRunner2019/xUnitRevitRunner2019.csproj b/xUnitRevitRunner/xUnitRevitRunner2019/xUnitRevitRunner2019.csproj new file mode 100644 index 0000000..91c2500 --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2019/xUnitRevitRunner2019.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {D11AD4C7-D302-44DC-AE02-840788391FE9} + Library + Properties + xUnitRevitRunner + xUnitRevitRunner + v4.8 + 512 + true + 8.0 + 2023 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + $(ProgramW6432)\Autodesk\Revit 2023\Revit.exe + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {b6404bad-9314-45f9-9f4d-a644d986fc37} + speckle.xunit.runner.wpf + + + {637136c9-ab5d-4f00-948e-c68fae2682d0} + xUnitRevitUtils2023 + + + + + 4.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/xUnitRevitRunner/xUnitRevitRunner2020/Properties/AssemblyInfo.cs b/xUnitRevitRunner/xUnitRevitRunner2020/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..27b07cf --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2020/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("xUnitRevitRunner")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("xUnitRevitRunner")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("748653c4-d89a-4dbd-b190-6f221fec980b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/xUnitRevitRunner/xUnitRevitRunner2020/xUnitRevitRunner2020.csproj b/xUnitRevitRunner/xUnitRevitRunner2020/xUnitRevitRunner2020.csproj new file mode 100644 index 0000000..fb749a5 --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2020/xUnitRevitRunner2020.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {D15EC3E8-9387-4870-AA3B-A47432982B07} + Library + Properties + xUnitRevitRunner + xUnitRevitRunner + v4.8 + 512 + true + 8.0 + 2020 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + $(ProgramW6432)\Autodesk\Revit 2020\Revit.exe + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {b6404bad-9314-45f9-9f4d-a644d986fc37} + speckle.xunit.runner.wpf + + + {637136c9-ab5d-4f00-948e-c68fae2682d0} + xUnitRevitUtils2020 + + + + + 4.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/xUnitRevitRunner/xUnitRevitRunner2021/Properties/AssemblyInfo.cs b/xUnitRevitRunner/xUnitRevitRunner2021/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..27b07cf --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2021/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("xUnitRevitRunner")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("xUnitRevitRunner")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("748653c4-d89a-4dbd-b190-6f221fec980b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/xUnitRevitRunner/xUnitRevitRunner2021/xUnitRevitRunner2021.csproj b/xUnitRevitRunner/xUnitRevitRunner2021/xUnitRevitRunner2021.csproj new file mode 100644 index 0000000..894bfa9 --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2021/xUnitRevitRunner2021.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {0ED80C57-6B55-4B7E-B5C1-7F94C80F3E34} + Library + Properties + xUnitRevitRunner + xUnitRevitRunner + v4.8 + 512 + true + 8.0 + 2021 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + $(ProgramW6432)\Autodesk\Revit 2021\Revit.exe + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {b6404bad-9314-45f9-9f4d-a644d986fc37} + speckle.xunit.runner.wpf + + + {637136c9-ab5d-4f00-948e-c68fae2682d0} + xUnitRevitUtils2021 + + + + + 4.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/xUnitRevitRunner/xUnitRevitRunner2022/Properties/AssemblyInfo.cs b/xUnitRevitRunner/xUnitRevitRunner2022/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..27b07cf --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2022/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("xUnitRevitRunner")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("xUnitRevitRunner")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("748653c4-d89a-4dbd-b190-6f221fec980b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/xUnitRevitRunner/xUnitRevitRunner2022/xUnitRevitRunner2022.csproj b/xUnitRevitRunner/xUnitRevitRunner2022/xUnitRevitRunner2022.csproj new file mode 100644 index 0000000..4ae4eb6 --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2022/xUnitRevitRunner2022.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {6C7200FA-4541-4AFD-B297-6C13E29968D5} + Library + Properties + xUnitRevitRunner + xUnitRevitRunner + v4.8 + 512 + true + 8.0 + 2022 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + $(ProgramW6432)\Autodesk\Revit 2022\Revit.exe + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {b6404bad-9314-45f9-9f4d-a644d986fc37} + speckle.xunit.runner.wpf + + + {637136c9-ab5d-4f00-948e-c68fae2682d0} + xUnitRevitUtils2022 + + + + + 2022.0.2.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/xUnitRevitRunner/xUnitRevitRunner2023/Properties/AssemblyInfo.cs b/xUnitRevitRunner/xUnitRevitRunner2023/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..27b07cf --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2023/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("xUnitRevitRunner")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("xUnitRevitRunner")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("748653c4-d89a-4dbd-b190-6f221fec980b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/xUnitRevitRunner/xUnitRevitRunner2023/xUnitRevitRunner2023.csproj b/xUnitRevitRunner/xUnitRevitRunner2023/xUnitRevitRunner2023.csproj new file mode 100644 index 0000000..6545838 --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunner2023/xUnitRevitRunner2023.csproj @@ -0,0 +1,94 @@ + + + + + Debug + AnyCPU + {748653C4-D89A-4DBD-B190-6F221FEC980B} + Library + Properties + xUnitRevitRunner + xUnitRevitRunner + v4.8 + 512 + true + 8.0 + 2023 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + $(ProgramW6432)\Autodesk\Revit 2023\Revit.exe + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {b6404bad-9314-45f9-9f4d-a644d986fc37} + speckle.xunit.runner.wpf + + + {637136c9-ab5d-4f00-948e-c68fae2682d0} + xUnitRevitUtils2023 + + + + + 2023.0.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/xUnitRevit/App.cs b/xUnitRevitRunner/xUnitRevitRunnerShared/App.cs similarity index 90% rename from xUnitRevit/App.cs rename to xUnitRevitRunner/xUnitRevitRunnerShared/App.cs index 5dead23..6247912 100644 --- a/xUnitRevit/App.cs +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/App.cs @@ -1,68 +1,68 @@ -#region Namespaces -using System.IO; -using System.Reflection; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using Autodesk.Revit.ApplicationServices; -using Autodesk.Revit.UI; -#endregion - -namespace xUnitRevit -{ - class App : IExternalApplication - { - public Result OnStartup(UIControlledApplication a) - { - a.ControlledApplication.ApplicationInitialized += ControlledApplication_ApplicationInitialized; - - string path = typeof(App).Assembly.Location; - RibbonPanel ribbonPanel = a.CreateRibbonPanel("xUnitRevit by Speckle"); - - var xUnitRevitButton = ribbonPanel.AddItem(new PushButtonData("Test Runner", "Test Runner", typeof(App).Assembly.Location, typeof(Command).FullName)) as PushButton; - - if (xUnitRevitButton != null) - { - xUnitRevitButton.Image = LoadPngImgSource("xUnitRevit.Assets.icon16.png", path); - xUnitRevitButton.LargeImage = LoadPngImgSource("xUnitRevit.Assets.icon32.png", path); - xUnitRevitButton.ToolTipImage = LoadPngImgSource("xUnitRevit.Assets.icon32.png", path); - xUnitRevitButton.ToolTip = "xUnit Test runner for Revit"; - xUnitRevitButton.AvailabilityClassName = typeof(CmdAvailabilityViews).FullName; - xUnitRevitButton.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://speckle.systems")); - } - - - return Result.Succeeded; - } - - private void ControlledApplication_ApplicationInitialized(object sender, Autodesk.Revit.DB.Events.ApplicationInitializedEventArgs e) - { - var app = sender as Application; - using var uiapp = new UIApplication(app); - - Runner.ReadConfig(); - - if (Runner.Config.AutoStart) - Runner.Launch(uiapp); - } - - public Result OnShutdown(UIControlledApplication a) - { - return Result.Succeeded; - } - - private ImageSource LoadPngImgSource(string sourceName, string path) - { - try - { - var assembly = Assembly.LoadFrom(Path.Combine(path)); - var icon = assembly.GetManifestResourceStream(sourceName); - PngBitmapDecoder m_decoder = new PngBitmapDecoder(icon, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); - ImageSource m_source = m_decoder.Frames[0]; - return (m_source); - } - catch { } - - return null; - } - } -} +#region Namespaces +using System.IO; +using System.Reflection; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using Autodesk.Revit.ApplicationServices; +using Autodesk.Revit.UI; +#endregion + +namespace xUnitRevit +{ + class App : IExternalApplication + { + public Result OnStartup(UIControlledApplication a) + { + a.ControlledApplication.ApplicationInitialized += ControlledApplication_ApplicationInitialized; + + string path = typeof(App).Assembly.Location; + RibbonPanel ribbonPanel = a.CreateRibbonPanel("xUnitRevit by Speckle"); + + var xUnitRevitButton = ribbonPanel.AddItem(new PushButtonData("Test Runner", "Test Runner", typeof(App).Assembly.Location, typeof(Command).FullName)) as PushButton; + + if (xUnitRevitButton != null) + { + xUnitRevitButton.Image = LoadPngImgSource("xUnitRevitRunner.Assets.icon16.png", path); + xUnitRevitButton.LargeImage = LoadPngImgSource("xUnitRevitRunner.Assets.icon32.png", path); + xUnitRevitButton.ToolTipImage = LoadPngImgSource("xUnitRevitRunner.Assets.icon32.png", path); + xUnitRevitButton.ToolTip = "xUnit Test runner for Revit"; + xUnitRevitButton.AvailabilityClassName = typeof(CmdAvailabilityViews).FullName; + xUnitRevitButton.SetContextualHelp(new ContextualHelp(ContextualHelpType.Url, "https://speckle.systems")); + } + + + return Result.Succeeded; + } + + private void ControlledApplication_ApplicationInitialized(object sender, Autodesk.Revit.DB.Events.ApplicationInitializedEventArgs e) + { + var app = sender as Application; + using var uiapp = new UIApplication(app); + + Runner.ReadConfig(); + + if (Runner.Config.AutoStart) + Runner.Launch(uiapp); + } + + public Result OnShutdown(UIControlledApplication a) + { + return Result.Succeeded; + } + + private ImageSource LoadPngImgSource(string sourceName, string path) + { + try + { + var assembly = Assembly.LoadFrom(Path.Combine(path)); + var icon = assembly.GetManifestResourceStream(sourceName); + PngBitmapDecoder m_decoder = new PngBitmapDecoder(icon, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); + ImageSource m_source = m_decoder.Frames[0]; + return (m_source); + } + catch { } + + return null; + } + } +} diff --git a/xUnitRevit/Assets/icon.png b/xUnitRevitRunner/xUnitRevitRunnerShared/Assets/icon.png similarity index 100% rename from xUnitRevit/Assets/icon.png rename to xUnitRevitRunner/xUnitRevitRunnerShared/Assets/icon.png diff --git a/xUnitRevit/Assets/icon16.png b/xUnitRevitRunner/xUnitRevitRunnerShared/Assets/icon16.png similarity index 100% rename from xUnitRevit/Assets/icon16.png rename to xUnitRevitRunner/xUnitRevitRunnerShared/Assets/icon16.png diff --git a/xUnitRevit/Assets/icon32.png b/xUnitRevitRunner/xUnitRevitRunnerShared/Assets/icon32.png similarity index 100% rename from xUnitRevit/Assets/icon32.png rename to xUnitRevitRunner/xUnitRevitRunnerShared/Assets/icon32.png diff --git a/xUnitRevit/CmdAvailabilityViews.cs b/xUnitRevitRunner/xUnitRevitRunnerShared/CmdAvailabilityViews.cs similarity index 95% rename from xUnitRevit/CmdAvailabilityViews.cs rename to xUnitRevitRunner/xUnitRevitRunnerShared/CmdAvailabilityViews.cs index 5c5da3d..e0b2989 100644 --- a/xUnitRevit/CmdAvailabilityViews.cs +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/CmdAvailabilityViews.cs @@ -1,22 +1,22 @@ -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; - -namespace xUnitRevit -{ - internal class CmdAvailabilityViews : IExternalCommandAvailability - { - - /// - /// Command Availability - Views - /// - /// - /// - /// - public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories) - { - //Can be run from any view/state - return true; - - } - } -} +using Autodesk.Revit.DB; +using Autodesk.Revit.UI; + +namespace xUnitRevit +{ + internal class CmdAvailabilityViews : IExternalCommandAvailability + { + + /// + /// Command Availability - Views + /// + /// + /// + /// + public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories) + { + //Can be run from any view/state + return true; + + } + } +} diff --git a/xUnitRevit/Command.cs b/xUnitRevitRunner/xUnitRevitRunnerShared/Command.cs similarity index 95% rename from xUnitRevit/Command.cs rename to xUnitRevitRunner/xUnitRevitRunnerShared/Command.cs index a5d0618..c7a8a9d 100644 --- a/xUnitRevit/Command.cs +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/Command.cs @@ -1,23 +1,23 @@ -#region Namespaces -using System.Threading; -using Autodesk.Revit.Attributes; -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; -#endregion - -namespace xUnitRevit -{ - [Transaction(TransactionMode.Manual)] - public class Command : IExternalCommand - { - public Result Execute( - ExternalCommandData commandData, - ref string message, - ElementSet elements) - { - var uiapp = commandData.Application; - Runner.Launch(uiapp); - return Result.Succeeded; - } - } -} +#region Namespaces +using System.Threading; +using Autodesk.Revit.Attributes; +using Autodesk.Revit.DB; +using Autodesk.Revit.UI; +#endregion + +namespace xUnitRevit +{ + [Transaction(TransactionMode.Manual)] + public class Command : IExternalCommand + { + public Result Execute( + ExternalCommandData commandData, + ref string message, + ElementSet elements) + { + var uiapp = commandData.Application; + Runner.Launch(uiapp); + return Result.Succeeded; + } + } +} diff --git a/xUnitRevit/Configuration.cs b/xUnitRevitRunner/xUnitRevitRunnerShared/Configuration.cs similarity index 96% rename from xUnitRevit/Configuration.cs rename to xUnitRevitRunner/xUnitRevitRunnerShared/Configuration.cs index 6e0449a..e0bb3ba 100644 --- a/xUnitRevit/Configuration.cs +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/Configuration.cs @@ -1,13 +1,13 @@ -using System.Collections.Generic; - -namespace xUnitRevit -{ - /// - /// Simple configuration file for lazy developers - /// - public class Configuration - { - public IList StartupAssemblies { get; set; } = new List(); - public bool AutoStart { get; set; } = false; - } -} +using System.Collections.Generic; + +namespace xUnitRevit +{ + /// + /// Simple configuration file for lazy developers + /// + public class Configuration + { + public IList StartupAssemblies { get; set; } = new List(); + public bool AutoStart { get; set; } = false; + } +} diff --git a/xUnitRevit/ExternalEventHandler.cs b/xUnitRevitRunner/xUnitRevitRunnerShared/ExternalEventHandler.cs similarity index 95% rename from xUnitRevit/ExternalEventHandler.cs rename to xUnitRevitRunner/xUnitRevitRunnerShared/ExternalEventHandler.cs index f972882..3333399 100644 --- a/xUnitRevit/ExternalEventHandler.cs +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/ExternalEventHandler.cs @@ -1,43 +1,43 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using Autodesk.Revit.UI; - -namespace xUnitRevit -{ - /// - /// Event invoker. Has a queue of actions that, in theory, this thing should iterate through. - /// Required to run transactions form a non modal window. - /// - public class ExternalEventHandler : IExternalEventHandler - { - - public bool Running = false; - public IList Queue { get; set; } - - public ExternalEventHandler(IList queue) - { - Queue = queue; - } - - public void Execute(UIApplication app) - { - Debug.WriteLine("Current queue len is: " + Queue.Count); - if (Running) return; // queue will run itself through - - Running = true; - - Queue[0](); - - Queue.RemoveAt(0); - Running = false; - } - - public string GetName() - { - return "xUnit Revit"; - } - } -} - - +using System; +using System.Collections.Generic; +using System.Diagnostics; +using Autodesk.Revit.UI; + +namespace xUnitRevit +{ + /// + /// Event invoker. Has a queue of actions that, in theory, this thing should iterate through. + /// Required to run transactions form a non modal window. + /// + public class ExternalEventHandler : IExternalEventHandler + { + + public bool Running = false; + public IList Queue { get; set; } + + public ExternalEventHandler(IList queue) + { + Queue = queue; + } + + public void Execute(UIApplication app) + { + Debug.WriteLine("Current queue len is: " + Queue.Count); + if (Running) return; // queue will run itself through + + Running = true; + + Queue[0](); + + Queue.RemoveAt(0); + Running = false; + } + + public string GetName() + { + return "xUnit Revit"; + } + } +} + + diff --git a/xUnitRevit/Runner.cs b/xUnitRevitRunner/xUnitRevitRunnerShared/Runner.cs similarity index 93% rename from xUnitRevit/Runner.cs rename to xUnitRevitRunner/xUnitRevitRunnerShared/Runner.cs index 8695b27..a24fef1 100644 --- a/xUnitRevit/Runner.cs +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/Runner.cs @@ -1,60 +1,60 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Threading; -using System.Web.Script.Serialization; -using Autodesk.Revit.UI; -using Xunit.Runner.Wpf; -using Xunit.Runner.Wpf.ViewModel; -using xUnitRevitUtils; - -namespace xUnitRevit -{ - /// - /// Responsible for launching the xUnit WPF interface and initializing xru with Revit data - /// - public static class Runner - { - internal static Configuration Config = new Configuration(); - internal static void Launch(UIApplication uiapp) - { - try - { - var queue = new List(); - using var eventHandler = ExternalEvent.Create(new ExternalEventHandler(queue)); - - xru.Initialize(uiapp, SynchronizationContext.Current, eventHandler, queue); - - var main = new MainWindow - { - Title = "xUnit Revit by Speckle", - MaxHeight = 800 - }; - - //pre-load asssemblies, if you're a lazy developer - if (main.DataContext is MainViewModel mainViewModel) - mainViewModel.StartupAssemblies = Config.StartupAssemblies.ToList(); - main.Show(); - } - catch - { - //fail silently - } - } - - internal static void ReadConfig() - { - try - { - var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - var path = Path.Combine(dir, "config.json"); - var JavaScriptSerializer = new JavaScriptSerializer(); - var json = File.ReadAllText(path); - Config = JavaScriptSerializer.Deserialize(json); - } - catch { } - } - } -} +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Threading; +using System.Web.Script.Serialization; +using Autodesk.Revit.UI; +using Xunit.Runner.Wpf; +using Xunit.Runner.Wpf.ViewModel; +using xUnitRevitUtils; + +namespace xUnitRevit +{ + /// + /// Responsible for launching the xUnit WPF interface and initializing xru with Revit data + /// + public static class Runner + { + internal static Configuration Config = new Configuration(); + internal static void Launch(UIApplication uiapp) + { + try + { + var queue = new List(); + using var eventHandler = ExternalEvent.Create(new ExternalEventHandler(queue)); + + xru.Initialize(uiapp, SynchronizationContext.Current, eventHandler, queue); + + var main = new MainWindow + { + Title = "xUnit Revit Runner by Speckle", + MaxHeight = 800 + }; + + //pre-load asssemblies, if you're a lazy developer + if (main.DataContext is MainViewModel mainViewModel) + mainViewModel.StartupAssemblies = Config.StartupAssemblies.ToList(); + main.Show(); + } + catch + { + //fail silently + } + } + + internal static void ReadConfig() + { + try + { + var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + var path = Path.Combine(dir, "config.json"); + var JavaScriptSerializer = new JavaScriptSerializer(); + var json = File.ReadAllText(path); + Config = JavaScriptSerializer.Deserialize(json); + } + catch { } + } + } +} diff --git a/xUnitRevit/config_sample.json b/xUnitRevitRunner/xUnitRevitRunnerShared/config_sample.json similarity index 100% rename from xUnitRevit/config_sample.json rename to xUnitRevitRunner/xUnitRevitRunnerShared/config_sample.json diff --git a/xUnitRevit/xUnitRevit.addin b/xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunner.addin similarity index 91% rename from xUnitRevit/xUnitRevit.addin rename to xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunner.addin index 4df168a..c169528 100644 --- a/xUnitRevit/xUnitRevit.addin +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunner.addin @@ -11,7 +11,7 @@ --> xUnitRevit Runner - xUnitRevit\xUnitRevit.dll + xUnitRevitRunner\xUnitRevitRunner.dll xUnitRevit.App d9c9ed6f-7b2a-4c47-8f87-a6f33a553d50 speckle diff --git a/xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunnerShared.projitems b/xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunnerShared.projitems new file mode 100644 index 0000000..ee5d91b --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunnerShared.projitems @@ -0,0 +1,34 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + 2b4f4767-cf26-485b-adb3-751250eb1cdb + + + xUnitRevitShared + + + + + + + + + + + + + + + + + + + Always + + + Always + + + \ No newline at end of file diff --git a/xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunnerShared.shproj b/xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunnerShared.shproj new file mode 100644 index 0000000..4891ef6 --- /dev/null +++ b/xUnitRevitRunner/xUnitRevitRunnerShared/xUnitRevitRunnerShared.shproj @@ -0,0 +1,13 @@ + + + + 2b4f4767-cf26-485b-adb3-751250eb1cdb + 14.0 + + + + + + + + diff --git a/Directory.Build.props b/xUnitRevitUtils/Directory.Build.props similarity index 94% rename from Directory.Build.props rename to xUnitRevitUtils/Directory.Build.props index fa41c70..1e6a959 100644 --- a/Directory.Build.props +++ b/xUnitRevitUtils/Directory.Build.props @@ -60,9 +60,9 @@ - - - + + + diff --git a/xUnitRevitUtils2019/xUnitRevitUtils2019.csproj b/xUnitRevitUtils/xUnitRevitUtils2019/xUnitRevitUtils2019.csproj similarity index 100% rename from xUnitRevitUtils2019/xUnitRevitUtils2019.csproj rename to xUnitRevitUtils/xUnitRevitUtils2019/xUnitRevitUtils2019.csproj diff --git a/xUnitRevitUtils2020/xUnitRevitUtils2020.csproj b/xUnitRevitUtils/xUnitRevitUtils2020/xUnitRevitUtils2020.csproj similarity index 100% rename from xUnitRevitUtils2020/xUnitRevitUtils2020.csproj rename to xUnitRevitUtils/xUnitRevitUtils2020/xUnitRevitUtils2020.csproj diff --git a/xUnitRevitUtils2021/xUnitRevitUtils2021.csproj b/xUnitRevitUtils/xUnitRevitUtils2021/xUnitRevitUtils2021.csproj similarity index 100% rename from xUnitRevitUtils2021/xUnitRevitUtils2021.csproj rename to xUnitRevitUtils/xUnitRevitUtils2021/xUnitRevitUtils2021.csproj diff --git a/xUnitRevitUtils2022/xUnitRevitUtils2022.csproj b/xUnitRevitUtils/xUnitRevitUtils2022/xUnitRevitUtils2022.csproj similarity index 84% rename from xUnitRevitUtils2022/xUnitRevitUtils2022.csproj rename to xUnitRevitUtils/xUnitRevitUtils2022/xUnitRevitUtils2022.csproj index 7a6968c..e551f4d 100644 --- a/xUnitRevitUtils2022/xUnitRevitUtils2022.csproj +++ b/xUnitRevitUtils/xUnitRevitUtils2022/xUnitRevitUtils2022.csproj @@ -8,7 +8,9 @@ - + + all + diff --git a/xUnitRevitUtils2023/xUnitRevitUtils2023.csproj b/xUnitRevitUtils/xUnitRevitUtils2023/xUnitRevitUtils2023.csproj similarity index 79% rename from xUnitRevitUtils2023/xUnitRevitUtils2023.csproj rename to xUnitRevitUtils/xUnitRevitUtils2023/xUnitRevitUtils2023.csproj index f964966..1d4530a 100644 --- a/xUnitRevitUtils2023/xUnitRevitUtils2023.csproj +++ b/xUnitRevitUtils/xUnitRevitUtils2023/xUnitRevitUtils2023.csproj @@ -1,7 +1,7 @@ - + - netstandard2.0 + netstandard2.0 xUnit runner utilities for Revit 2023 xUnitRevitUtils.2023 diff --git a/xUnitRevitUtilsShared/xru.cs b/xUnitRevitUtils/xUnitRevitUtilsShared/xru.cs similarity index 96% rename from xUnitRevitUtilsShared/xru.cs rename to xUnitRevitUtils/xUnitRevitUtilsShared/xru.cs index e886c37..3c72df3 100644 --- a/xUnitRevitUtilsShared/xru.cs +++ b/xUnitRevitUtils/xUnitRevitUtilsShared/xru.cs @@ -1,194 +1,194 @@ -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; -using Xunit; - -namespace xUnitRevitUtils -{ - /// - /// Utility class with methods and properties used by the xUnit Revit plugin - /// - public static class xru - { - public static UIApplication Uiapp { get; set; } - private static IList Queue { get; set; } - private static ExternalEvent EventHandler { get; set; } - public static SynchronizationContext UiContext { get; set; } - public static void Initialize(UIApplication uiapp, SynchronizationContext uiContext, ExternalEvent eventHandler, IList queue) - { - Uiapp = uiapp; - UiContext = uiContext; - EventHandler = eventHandler; - Queue = queue; - } - - #region utility methods - - /// - /// Returns the selected elements in the active document - /// - /// - public static IList GetActiveSelection() - { - Assert.NotNull(Uiapp); - - if (Uiapp.ActiveUIDocument != null) - return Uiapp.ActiveUIDocument.Selection.GetElementIds().Select(x => Uiapp.ActiveUIDocument.Document.GetElement(x)).ToList(); - return new List(); - } - /// - /// Opens and activates a document if not open already - /// - /// Path to the file to open - public static Document OpenDoc(string filePath) - { - Assert.NotNull(Uiapp); - Document doc = null; - //OpenAndActivateDocument only works if run from the current context - UiContext.Send(x => doc = Uiapp.OpenAndActivateDocument(filePath).Document, null); - Assert.NotNull(doc); - return doc; - } - /// - /// Closes the provided Revit document - /// - /// Revit document to be closed - /// If true, saves changes to document before closing - /// - /// Bool indicating whether or not the document was successfully closed - /// - public static bool CloseDoc(Document doc, bool saveChanges = false) - { - if (doc == null) - return false; - - var result = false; - UiContext.Send(x => result = doc.Close(saveChanges), null); - return result; - } - - /// - /// Creates a new empty document - /// - /// Path to the project template - /// Path where to save the new doc - /// If true overwrites existing files with same name - /// - public static Document CreateNewDoc(string templatePath, string filePath, bool overwrite = true) - { - Assert.NotNull(Uiapp); - Document doc = null; - - try - { - if (overwrite && File.Exists(filePath)) - File.Delete(filePath); - } - catch - { - } - - //OpenAndActivateDocument only works if run from the current context - UiContext.Send(x => - { - //if already open, just use it - if (!File.Exists(filePath)) - { - doc = Uiapp.Application.NewProjectDocument(templatePath); - doc.SaveAs(filePath); - doc.Close(); - } - - doc = Uiapp.OpenAndActivateDocument(filePath).Document; - } - , null); - Assert.NotNull(doc); - return doc; - } - - /// - /// Runs an Action in a Revit transaction, uses TaskCompletionSource to communicate when done - /// - /// Action to run - /// Revit Document - /// Transaction Name - /// Enable to swallow all warnings generated by the transaction and prevent them from being raised within Revit - /// - public static Task RunInTransaction(Action action, Document doc, string transactionName = "transaction", bool ignoreWarnings = false) - { - var tcs = new TaskCompletionSource(); - Queue.Add(new Action(() => - { - try - { - using var transaction = new Transaction(doc, transactionName); - transaction.Start(); - - if (ignoreWarnings) - { - using var options = transaction.GetFailureHandlingOptions(); - options.SetFailuresPreprocessor(new IgnoreAllWarnings()); - transaction.SetFailureHandlingOptions(options); - } - - action.Invoke(); - transaction.Commit(); - } - catch (Exception e) - { - tcs.TrySetException(e); - } - tcs.TrySetResult(""); - })); - - EventHandler.Raise(); - - return tcs.Task; - } - - /// - /// Runs an Action, uses TaskCompletionSource to communicate when done - /// - /// Action to run - /// Revit Document - /// - public static Task Run(Action action, Document doc) - { - var tcs = new TaskCompletionSource(); - Queue.Add(new Action(() => - { - try - { - action.Invoke(); - } - catch (Exception e) - { - tcs.TrySetException(e); - } - tcs.TrySetResult(""); - })); - - EventHandler.Raise(); - - return tcs.Task; - } - - /// - /// A failures preprocesser that clears any failures that occur within a transaction - /// - internal class IgnoreAllWarnings : IFailuresPreprocessor - { - public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor) - { - var failList = failuresAccessor.GetFailureMessages(); - - foreach (FailureMessageAccessor failure in failList) - { - failuresAccessor.DeleteWarning(failure); - } - - return FailureProcessingResult.Continue; - } - } - #endregion - } -} +using Autodesk.Revit.DB; +using Autodesk.Revit.UI; +using Xunit; + +namespace xUnitRevitUtils +{ + /// + /// Utility class with methods and properties used by the xUnit Revit plugin + /// + public static class xru + { + public static UIApplication Uiapp { get; set; } + private static IList Queue { get; set; } + private static ExternalEvent EventHandler { get; set; } + public static SynchronizationContext UiContext { get; set; } + public static void Initialize(UIApplication uiapp, SynchronizationContext uiContext, ExternalEvent eventHandler, IList queue) + { + Uiapp = uiapp; + UiContext = uiContext; + EventHandler = eventHandler; + Queue = queue; + } + + #region utility methods + + /// + /// Returns the selected elements in the active document + /// + /// + public static IList GetActiveSelection() + { + Assert.NotNull(Uiapp); + + if (Uiapp.ActiveUIDocument != null) + return Uiapp.ActiveUIDocument.Selection.GetElementIds().Select(x => Uiapp.ActiveUIDocument.Document.GetElement(x)).ToList(); + return new List(); + } + /// + /// Opens and activates a document if not open already + /// + /// Path to the file to open + public static Document OpenDoc(string filePath) + { + Assert.NotNull(Uiapp); + Document doc = null; + //OpenAndActivateDocument only works if run from the current context + UiContext.Send(x => doc = Uiapp.OpenAndActivateDocument(filePath).Document, null); + Assert.NotNull(doc); + return doc; + } + /// + /// Closes the provided Revit document + /// + /// Revit document to be closed + /// If true, saves changes to document before closing + /// + /// Bool indicating whether or not the document was successfully closed + /// + public static bool CloseDoc(Document doc, bool saveChanges = false) + { + if (doc == null) + return false; + + var result = false; + UiContext.Send(x => result = doc.Close(saveChanges), null); + return result; + } + + /// + /// Creates a new empty document + /// + /// Path to the project template + /// Path where to save the new doc + /// If true overwrites existing files with same name + /// + public static Document CreateNewDoc(string templatePath, string filePath, bool overwrite = true) + { + Assert.NotNull(Uiapp); + Document doc = null; + + try + { + if (overwrite && File.Exists(filePath)) + File.Delete(filePath); + } + catch + { + } + + //OpenAndActivateDocument only works if run from the current context + UiContext.Send(x => + { + //if already open, just use it + if (!File.Exists(filePath)) + { + doc = Uiapp.Application.NewProjectDocument(templatePath); + doc.SaveAs(filePath); + doc.Close(); + } + + doc = Uiapp.OpenAndActivateDocument(filePath).Document; + } + , null); + Assert.NotNull(doc); + return doc; + } + + /// + /// Runs an Action in a Revit transaction, uses TaskCompletionSource to communicate when done + /// + /// Action to run + /// Revit Document + /// Transaction Name + /// Enable to swallow all warnings generated by the transaction and prevent them from being raised within Revit + /// + public static Task RunInTransaction(Action action, Document doc, string transactionName = "transaction", bool ignoreWarnings = false) + { + var tcs = new TaskCompletionSource(); + Queue.Add(new Action(() => + { + try + { + using var transaction = new Transaction(doc, transactionName); + transaction.Start(); + + if (ignoreWarnings) + { + using var options = transaction.GetFailureHandlingOptions(); + options.SetFailuresPreprocessor(new IgnoreAllWarnings()); + transaction.SetFailureHandlingOptions(options); + } + + action.Invoke(); + transaction.Commit(); + } + catch (Exception e) + { + tcs.TrySetException(e); + } + tcs.TrySetResult(""); + })); + + EventHandler.Raise(); + + return tcs.Task; + } + + /// + /// Runs an Action, uses TaskCompletionSource to communicate when done + /// + /// Action to run + /// Revit Document + /// + public static Task Run(Action action, Document doc) + { + var tcs = new TaskCompletionSource(); + Queue.Add(new Action(() => + { + try + { + action.Invoke(); + } + catch (Exception e) + { + tcs.TrySetException(e); + } + tcs.TrySetResult(""); + })); + + EventHandler.Raise(); + + return tcs.Task; + } + + /// + /// A failures preprocesser that clears any failures that occur within a transaction + /// + internal class IgnoreAllWarnings : IFailuresPreprocessor + { + public FailureProcessingResult PreprocessFailures(FailuresAccessor failuresAccessor) + { + var failList = failuresAccessor.GetFailureMessages(); + + foreach (FailureMessageAccessor failure in failList) + { + failuresAccessor.DeleteWarning(failure); + } + + return FailureProcessingResult.Continue; + } + } + #endregion + } +} From 3b9c0a3d2750c571df6643e7d262cc4578dbab6b Mon Sep 17 00:00:00 2001 From: Matteo Cominetti Date: Thu, 9 Mar 2023 18:28:25 +0100 Subject: [PATCH 4/6] feat: submodule --- speckle.xunit.runner.wpf | 1 + 1 file changed, 1 insertion(+) create mode 160000 speckle.xunit.runner.wpf diff --git a/speckle.xunit.runner.wpf b/speckle.xunit.runner.wpf new file mode 160000 index 0000000..8564d58 --- /dev/null +++ b/speckle.xunit.runner.wpf @@ -0,0 +1 @@ +Subproject commit 8564d58439fe9a0ab77a9417aa6c053c668bd39f From f066a7671dcbdb605e1d798e238b5f2e1fe8cdbb Mon Sep 17 00:00:00 2001 From: Matteo Cominetti Date: Thu, 9 Mar 2023 18:29:13 +0100 Subject: [PATCH 5/6] feat: updates submodule --- speckle.xunit.runner.wpf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/speckle.xunit.runner.wpf b/speckle.xunit.runner.wpf index 8564d58..0eeef52 160000 --- a/speckle.xunit.runner.wpf +++ b/speckle.xunit.runner.wpf @@ -1 +1 @@ -Subproject commit 8564d58439fe9a0ab77a9417aa6c053c668bd39f +Subproject commit 0eeef52d51206b21fe10b9c0f252e46ed6a5d386 From 23e69d587cddb15c68354001618b281f541172b7 Mon Sep 17 00:00:00 2001 From: Matteo Cominetti Date: Thu, 9 Mar 2023 18:51:50 +0100 Subject: [PATCH 6/6] feat: bump version of Utils --- xUnitRevitUtils/Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xUnitRevitUtils/Directory.Build.props b/xUnitRevitUtils/Directory.Build.props index 1e6a959..b12c1fa 100644 --- a/xUnitRevitUtils/Directory.Build.props +++ b/xUnitRevitUtils/Directory.Build.props @@ -16,7 +16,7 @@ https://github.com/Speckle-Next/xunit-Revit git $(AssemblyName) ($(TargetFramework)) - 1.0.5 + 1.1.0 xUnitRevitUtils xUnitRevitUtils