27 Commits

Author SHA1 Message Date
Connor Ivy 3fe442c01a Merge remote-tracking branch 'origin/master' into connor/allow-view-model-access 2023-04-10 16:22:03 -05:00
connorivy 201469e9b1 Merge pull request #31 from specklesystems/connorivy-fix-readme
Update README.md
2023-03-27 09:06:11 -05:00
connorivy 3986a7c1f2 Update README.md 2023-03-27 09:01:20 -05:00
Connor Ivy 0c045a1752 Merge remote-tracking branch 'origin/master' into connor/allow-view-model-access 2023-03-15 11:37:04 -05:00
Matteo Cominetti fba1d1ce32 chore: make submodule path relative 2023-03-15 11:01:01 +01:00
Connor Ivy 5dcd6d9f33 feat(xUnit): don't close files if tests fail 2023-03-10 12:21:46 -06:00
Matteo Cominetti 69c09c181e Merge pull request #27 from specklesystems/connor/edit-gitignore
edit location of config.json in gitignore
2023-03-10 08:33:30 +00:00
Matteo Cominetti 8665a6c593 Merge pull request #28 from specklesystems/connor/fix-revit-tests
Fix: don't dispose revit app and event handler or tests won't run
2023-03-10 08:32:41 +00:00
Connor Ivy 167a67abb5 We don't want to dispose the app and event handler 2023-03-09 16:36:35 -06:00
Connor Ivy 1cd15df583 add config.json 2023-03-09 14:50:41 -06:00
Matteo Cominetti 301db983b8 Update README.md 2023-03-09 20:26:17 +00:00
Matteo Cominetti 1fd60ebe55 ci 2023-03-09 21:22:32 +01:00
Matteo Cominetti 2ac5268287 Merge pull request #26 from specklesystems/sdk-style-proj
Build / build (push) Has been cancelled
feat: move Runner to sdk style proj
2023-03-09 20:19:58 +00:00
Matteo Cominetti 0e8df07a8c ci
Build / build (push) Has been cancelled
2023-03-09 21:09:02 +01:00
Matteo Cominetti 576a1c83e5 feat: move Runner to sdk style proj
Build / build (push) Has been cancelled
2023-03-09 20:57:30 +01:00
Matteo Cominetti 43b07dc45a ci 2023-03-09 19:53:39 +01:00
Matteo Cominetti ca9b5363e4 Merge pull request #25 from specklesystems/matteo-rework
ci: remove unused actions
2023-03-09 18:08:45 +00:00
Matteo Cominetti df60688d54 ci 2023-03-09 19:03:48 +01:00
Matteo Cominetti de9d79de93 ci: remove unused actions 2023-03-09 18:58:35 +01:00
Matteo Cominetti e3bc338e61 Create .github/workflows/dotnet-desktop.yml 2023-03-09 17:58:06 +00:00
Matteo Cominetti c87f034227 Merge pull request #24 from specklesystems/matteo-rework
Matteo rework
2023-03-09 17:53:30 +00:00
Matteo Cominetti 23e69d587c feat: bump version of Utils 2023-03-09 18:51:50 +01:00
Matteo Cominetti f066a7671d feat: updates submodule 2023-03-09 18:29:13 +01:00
Matteo Cominetti 3b9c0a3d27 feat: submodule 2023-03-09 18:28:25 +01:00
Matteo Cominetti 7790887091 chore: reorg solution 2023-03-09 18:25:14 +01:00
Matteo Cominetti f786a0a67e feat: adds submodule 2023-03-09 18:24:53 +01:00
Matteo Cominetti 214c87f488 chore: reference the 2023 project 2023-03-09 16:14:30 +01:00
45 changed files with 821 additions and 887 deletions
-77
View File
@@ -1,77 +0,0 @@
name: Update issue Status
on:
issues:
types: [closed]
jobs:
update_issue:
runs-on: ubuntu-latest
steps:
- name: Get project data
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ORGANIZATION: specklesystems
PROJECT_NUMBER: 9
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectNext(number: $number) {
id
fields(first:20) {
nodes {
id
name
settings
}
}
}
}
}' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json
echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
echo "$PROJECT_ID"
echo "$STATUS_FIELD_ID"
echo 'DONE_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .settings | fromjson | .options[] | select(.name== "Done") | .id' project_data.json) >> $GITHUB_ENV
echo "$DONE_ID"
- name: Add Issue to project #it's already in the project, but we do this to get its node id!
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ISSUE_ID: ${{ github.event.issue.node_id }}
run: |
item_id="$( gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
mutation($project:ID!, $id:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $id}) {
projectNextItem {
id
}
}
}' -f project=$PROJECT_ID -f id=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
- name: Update Status
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ISSUE_ID: ${{ github.event.issue.node_id }}
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
mutation($project:ID!, $status:ID!, $id:ID!, $value:String!) {
set_status: updateProjectNextItemField(
input: {
projectId: $project
itemId: $id
fieldId: $status
value: $value
}
) {
projectNextItem {
id
}
}
}' -f project=$PROJECT_ID -f status=$STATUS_FIELD_ID -f id=$ITEM_ID -f value=${{ env.DONE_ID }}
+45
View File
@@ -0,0 +1,45 @@
name: Build
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
build:
strategy:
matrix:
configuration: [ Release]
runs-on: windows-latest # For a list of available runner types, refer to
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
env:
Solution_Name: xUnitRevit.sln
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
# Install the .NET Core workload
- name: Install .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
# Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild
- name: Setup MSBuild.exe
uses: microsoft/setup-msbuild@v1.3.1
# Restore the application to populate the obj folder with RuntimeIdentifiers
- name: Restore the application
run: msbuild $env:Solution_Name /t:Restore /p:Configuration=$env:Configuration
env:
Configuration: ${{ matrix.configuration }}
-50
View File
@@ -1,50 +0,0 @@
name: Move new issues into Project
on:
issues:
types: [opened]
jobs:
track_issue:
runs-on: ubuntu-latest
steps:
- name: Get project data
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ORGANIZATION: specklesystems
PROJECT_NUMBER: 9
run: |
gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
query($org: String!, $number: Int!) {
organization(login: $org){
projectNext(number: $number) {
id
fields(first:20) {
nodes {
id
name
settings
}
}
}
}
}' -f org=$ORGANIZATION -F number=$PROJECT_NUMBER > project_data.json
echo 'PROJECT_ID='$(jq '.data.organization.projectNext.id' project_data.json) >> $GITHUB_ENV
echo 'STATUS_FIELD_ID='$(jq '.data.organization.projectNext.fields.nodes[] | select(.name== "Status") | .id' project_data.json) >> $GITHUB_ENV
- name: Add Issue to project
env:
GITHUB_TOKEN: ${{secrets.GHPROJECT_TOKEN}}
ISSUE_ID: ${{ github.event.issue.node_id }}
run: |
item_id="$( gh api graphql --header 'GraphQL-Features: projects_next_graphql' -f query='
mutation($project:ID!, $id:ID!) {
addProjectNextItem(input: {projectId: $project, contentId: $id}) {
projectNextItem {
id
}
}
}' -f project=$PROJECT_ID -f id=$ISSUE_ID --jq '.data.addProjectNextItem.projectNextItem.id')"
echo 'ITEM_ID='$item_id >> $GITHUB_ENV
+37
View File
@@ -0,0 +1,37 @@
name: Publish nugets
on:
push:
tags:
- '*.*.*'
jobs:
build:
runs-on: windows-latest # For a list of available runner types, refer to
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idruns-on
env:
Solution_Name: xUnitRevit.sln
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
# Install the .NET Core workload
- name: Install .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Build
run: dotnet publish .\xUnitRevitUtils.sln -c Release -p:Version=${{ github.ref_name }}
- name: Publish
run: dotnet nuget push ".\artifacts\*.nupkg" -s https://api.nuget.org/v3/index.json -k ${{ secrets.NUGET_APIKEY }} -n --skip-duplicate
+1 -1
View File
@@ -348,5 +348,5 @@ MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
xUnitRevit/config.json
xUnitRevitRunner/xUnitRevitRunnerShared/config.json
.idea/
+3
View File
@@ -0,0 +1,3 @@
[submodule "speckle.xunit.runner.wpf"]
path = speckle.xunit.runner.wpf
url = ../speckle.xunit.runner.wpf.git
+7 -9
View File
@@ -1,6 +1,6 @@
# xUnitRevit
[![Build Status](https://teocomi.visualstudio.com/Speckle/_apis/build/status/Speckle-Next.xunit-Revit?branchName=master)](https://teocomi.visualstudio.com/Speckle/_build/latest?definitionId=2&branchName=master)
[![Build](https://github.com/specklesystems/xUnitRevit/actions/workflows/dotnet-desktop.yml/badge.svg?branch=master)](https://github.com/specklesystems/xUnitRevit/actions/workflows/dotnet-desktop.yml)
![xunit2](https://user-images.githubusercontent.com/2679513/88958499-77809980-d298-11ea-84b6-e0749790ffc5.gif)
@@ -20,7 +20,7 @@ Many thanks to all the developers of xunit and xunit.runner.wpf!
This repo is composed of 2 projects:
- **xUnitRevit**: the actual Revit addin
- **xUnitRevitRunner**: the actual Revit addin
- **xUnitRevitUtils**: a utility library to help pass Revit data to the test libraries when running the tests
@@ -29,18 +29,16 @@ This repo is composed of 2 projects:
There are very few steps required to create and run your fist unit tests with xUnitRevit:
1. create a copy of the [config sample file](xUnitRevit/config_sample.json) and re-name the copy to `config.json`
1. create a copy of the [config sample file](xUnitRevitRunner/xUnitRevitRunnerShared/config_sample.json) and re-name the copy to `config.json`
2. follow the instructions [here](#configuration) to set up the config file
2. build/install xUnitRevit
2. build/install xUnitRevitRunner
3. create a test library
4. start Revit, launch the xUnitRevit addin and select the test library
4. start Revit, launch the xUnitRevitRunner addin and select the test library
5. done! Add a star ⭐ to our repo if it was useful 😉
### Building/installing xUnitRevit
After cloning this repo, all you need to do to run xUnitRevit is to build the project in **Debug mode**, by selecting the build configuration that matches your Revit version.
![image](https://user-images.githubusercontent.com/2679513/88941424-e5b96200-d280-11ea-8ef4-12fbb0ed13d2.png)
After cloning this repo, all you need to do to run xUnitRevitRunner is to build the project corresponding to your revit version in **Debug mode**
**This will build the project and copy its dlls to the Revit addin folder** `%appdata%\Autodesk\Revit\Addins`.
@@ -206,4 +204,4 @@ For any security vulnerabilities or concerns, please contact us directly at secu
## License
Unless otherwise described, the code in this repository is licensed under the MIT License. Please note that some modules, extensions or code herein might be otherwise licensed. This is indicated either in the root of the containing folder under a different license file, or in the respective file's header. If you have any questions, don't hesitate to get in touch with us via [email](mailto:hello@speckle.systems).
Unless otherwise described, the code in this repository is licensed under the MIT License. Please note that some modules, extensions or code herein might be otherwise licensed. This is indicated either in the root of the containing folder under a different license file, or in the respective file's header. If you have any questions, don't hesitate to get in touch with us via [email](mailto:hello@speckle.systems).
+9 -3
View File
@@ -15,6 +15,7 @@
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
<LangVersion>8.0</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -74,9 +75,14 @@
<Compile Include="Utils.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xUnitRevitUtils2021\xUnitRevitUtils2021.csproj">
<Project>{977e0b63-5706-4c2b-9c01-3c02d9ebe377}</Project>
<Name>xUnitRevitUtils2021</Name>
<PackageReference Include="Speckle.Revit.API">
<Version>2023.0.0</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xUnitRevitUtils\xUnitRevitUtils2023\xUnitRevitUtils2023.csproj">
<Project>{637136c9-ab5d-4f00-948e-c68fae2682d0}</Project>
<Name>xUnitRevitUtils2023</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-53
View File
@@ -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)
+95 -127
View File
@@ -3,154 +3,122 @@ 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}"
ProjectSection(SolutionItems) = preProject
xUnitRevitRunner\Directory.Build.props = xUnitRevitRunner\Directory.Build.props
EndProjectSection
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "xUnitRevitRunnerShared", "xUnitRevitRunner\xUnitRevitRunnerShared\xUnitRevitRunnerShared.shproj", "{2B4F4767-CF26-485B-ADB3-751250EB1CDB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitRunner2019", "xUnitRevitRunner\xUnitRevitRunner2019\xUnitRevitRunner2019.csproj", "{E3A15534-FB02-4CE2-8126-22E60EB1922E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitRunner2020", "xUnitRevitRunner\xUnitRevitRunner2020\xUnitRevitRunner2020.csproj", "{3782DB94-2F99-4449-B727-D5E4172964AD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitRunner2021", "xUnitRevitRunner\xUnitRevitRunner2021\xUnitRevitRunner2021.csproj", "{66615756-3C3F-4A46-9C00-D6BA2493B6FA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitRunner2022", "xUnitRevitRunner\xUnitRevitRunner2022\xUnitRevitRunner2022.csproj", "{72816F5F-F86C-4A84-A4BB-9C05F2CD5320}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "xUnitRevitRunner2023", "xUnitRevitRunner\xUnitRevitRunner2023\xUnitRevitRunner2023.csproj", "{97D93392-9484-484F-9F5F-60C5F3D67045}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug2019|Any CPU = Debug2019|Any CPU
Debug2020|Any CPU = Debug2020|Any CPU
Debug2021|Any CPU = Debug2021|Any CPU
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}.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}.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}.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}.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}.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}.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}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B6404BAD-9314-45F9-9F4D-A644D986FC37}.Release|Any CPU.Build.0 = Release|Any CPU
{E3A15534-FB02-4CE2-8126-22E60EB1922E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E3A15534-FB02-4CE2-8126-22E60EB1922E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E3A15534-FB02-4CE2-8126-22E60EB1922E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E3A15534-FB02-4CE2-8126-22E60EB1922E}.Release|Any CPU.Build.0 = Release|Any CPU
{3782DB94-2F99-4449-B727-D5E4172964AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3782DB94-2F99-4449-B727-D5E4172964AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3782DB94-2F99-4449-B727-D5E4172964AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3782DB94-2F99-4449-B727-D5E4172964AD}.Release|Any CPU.Build.0 = Release|Any CPU
{66615756-3C3F-4A46-9C00-D6BA2493B6FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{66615756-3C3F-4A46-9C00-D6BA2493B6FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{66615756-3C3F-4A46-9C00-D6BA2493B6FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{66615756-3C3F-4A46-9C00-D6BA2493B6FA}.Release|Any CPU.Build.0 = Release|Any CPU
{72816F5F-F86C-4A84-A4BB-9C05F2CD5320}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{72816F5F-F86C-4A84-A4BB-9C05F2CD5320}.Debug|Any CPU.Build.0 = Debug|Any CPU
{72816F5F-F86C-4A84-A4BB-9C05F2CD5320}.Release|Any CPU.ActiveCfg = Release|Any CPU
{72816F5F-F86C-4A84-A4BB-9C05F2CD5320}.Release|Any CPU.Build.0 = Release|Any CPU
{97D93392-9484-484F-9F5F-60C5F3D67045}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{97D93392-9484-484F-9F5F-60C5F3D67045}.Debug|Any CPU.Build.0 = Debug|Any CPU
{97D93392-9484-484F-9F5F-60C5F3D67045}.Release|Any CPU.ActiveCfg = Release|Any CPU
{97D93392-9484-484F-9F5F-60C5F3D67045}.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}
{E3A15534-FB02-4CE2-8126-22E60EB1922E} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364}
{3782DB94-2F99-4449-B727-D5E4172964AD} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364}
{66615756-3C3F-4A46-9C00-D6BA2493B6FA} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364}
{72816F5F-F86C-4A84-A4BB-9C05F2CD5320} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364}
{97D93392-9484-484F-9F5F-60C5F3D67045} = {CF685C5E-70E1-40C5-BCFD-1E27695F0364}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1CD726E4-6BBA-4FC3-9C57-0981EF1A9475}
EndGlobalSection
-35
View File
@@ -1,35 +0,0 @@
using System.Reflection;
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: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Speckle")]
[assembly: AssemblyProduct("xUnitRevit")]
[assembly: AssemblyCopyright("")]
[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("321044f7-b0b2-4b1c-af18-e71a19252be0")]
// 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.1.0")]
[assembly: AssemblyFileVersion("1.0.1.0")]
-262
View File
@@ -1,262 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
None
</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{27A79ACA-7EA8-4406-8BB8-216578CC3AB7}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>xUnitRevit</RootNamespace>
<AssemblyName>xUnitRevit</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<!-- MULTI VERSION CONFIGURATION START -->
<!--2021-->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug2021|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartAction>Program</StartAction>
<StartProgram>$(ProgramW6432)\Autodesk\Revit 2021\Revit.exe</StartProgram>
<RevitVersion>2021</RevitVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release2021|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartAction>Program</StartAction>
<StartProgram>$(ProgramW6432)\Autodesk\Revit 2021\Revit.exe</StartProgram>
<RevitVersion>2021</RevitVersion>
</PropertyGroup>
<!--2020-->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug2020|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartAction>Program</StartAction>
<StartProgram>$(ProgramW6432)\Autodesk\Revit 2020\Revit.exe</StartProgram>
<RevitVersion>2020</RevitVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release2020|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartAction>Program</StartAction>
<StartProgram>$(ProgramW6432)\Autodesk\Revit 2020\Revit.exe</StartProgram>
<RevitVersion>2020</RevitVersion>
</PropertyGroup>
<!--2019-->
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug2019|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartAction>Program</StartAction>
<StartProgram>$(ProgramW6432)\Autodesk\Revit 2019\Revit.exe</StartProgram>
<RevitVersion>2019</RevitVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release2019|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartAction>Program</StartAction>
<StartProgram>$(ProgramW6432)\Autodesk\Revit 2019\Revit.exe</StartProgram>
<RevitVersion>2019</RevitVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug2022|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartAction>Program</StartAction>
<StartProgram>$(ProgramW6432)\Autodesk\Revit 2022\Revit.exe</StartProgram>
<RevitVersion>2022</RevitVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug2023|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<StartAction>Program</StartAction>
<StartProgram>$(ProgramW6432)\Autodesk\Revit 2023\Revit.exe</StartProgram>
<RevitVersion>2023</RevitVersion>
</PropertyGroup>
<!--END-->
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Numerics" />
<Reference Include="System.Web.Extensions" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="App.cs" />
<Compile Include="CmdAvailabilityViews.cs" />
<Compile Include="Command.cs" />
<Compile Include="Configuration.cs" />
<Compile Include="ExternalEventHandler.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Runner.cs" />
</ItemGroup>
<ItemGroup>
<None Include="config_sample.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<!--
<None Include="config.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
-->
<None Include="xUnitRevit.addin" />
</ItemGroup>
<!-- SWITCH REVIT NUGETS -->
<Choose>
<When Condition="$(Configuration.Contains('2019'))">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2019">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xUnitRevitUtils2019\xUnitRevitUtils2019.csproj">
<Project>{02399359-9CA0-4B47-B467-541E290E700F}</Project>
<Name>xUnitRevitUtils2019</Name>
</ProjectReference>
</ItemGroup>
</When>
<When Condition="$(Configuration.Contains('2020'))">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2020">
<Version>1.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xUnitRevitUtils2020\xUnitRevitUtils2020.csproj">
<Project>{0DEF0F23-8AE2-461B-B014-8A0DA7494088}</Project>
<Name>xUnitRevitUtils2020</Name>
</ProjectReference>
</ItemGroup>
</When>
<When Condition="$(Configuration.Contains('2021'))">
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2021">
<Version>4.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
<IncludeAssets>compile; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xUnitRevitUtils2021\xUnitRevitUtils2021.csproj">
<Project>{977e0b63-5706-4c2b-9c01-3c02d9ebe377}</Project>
<Name>xUnitRevitUtils2021</Name>
</ProjectReference>
</ItemGroup>
</When>
<When Condition="$(Configuration.Contains('2022'))">
<ItemGroup>
<PackageReference Include="Speckle.Revit.API">
<Version>2022.0.2.1</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xUnitRevitUtils2022\xUnitRevitUtils2022.csproj">
<Project>{78770414-4F6B-4429-BD8F-F0F64A349551}</Project>
<Name>xUnitRevitUtils2022</Name>
</ProjectReference>
</ItemGroup>
</When>
<When Condition="$(Configuration.Contains('2023'))">
<ItemGroup>
<PackageReference Include="Speckle.Revit.API">
<Version>2023.0.0</Version>
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\xUnitRevitUtils2023\xUnitRevitUtils2023.csproj">
<Project>{E0BF38C2-13BC-4ACC-B0F2-4DFE82965DB4}</Project>
<Name>xUnitRevitUtils2023</Name>
</ProjectReference>
</ItemGroup>
</When>
</Choose>
<!--END-->
<ItemGroup>
<PackageReference Include="speckle.xunit.runner.wpf">
<Version>1.0.9</Version>
</PackageReference>
</ItemGroup>
<ItemGroup>
<Content Include="Assets\icon.png" />
<EmbeddedResource Include="Assets\icon16.png" />
<EmbeddedResource Include="Assets\icon32.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<!-- MULTIVERSION POST BUILD EVENTS START -->
<Target Name="AfterBuild">
<CallTarget Condition="$(Configuration.Contains('Debug'))" Targets="AfterBuildDebug" />
<CallTarget Condition="$(Configuration.Contains('Release'))" Targets="AfterBuildRelease" />
</Target>
<Target Name="AfterBuildDebug">
<ItemGroup>
<SourceDLLs Include="$(TargetDir)\**\*.*" />
<SourceManifest Include="$(ProjectDir)*.addin" />
</ItemGroup>
<Copy DestinationFolder="$(AppData)\Autodesk\REVIT\Addins\$(RevitVersion)\$(ProjectName)\%(RecursiveDir)" SourceFiles="@(SourceDLLs)" />
<Copy DestinationFolder="$(AppData)\Autodesk\REVIT\Addins\$(RevitVersion)\" SourceFiles="@(SourceManifest)" />
</Target>
<Target Name="AfterBuildRelease">
<ItemGroup>
<SourceDLLs Include="$(TargetDir)\**\*.*" />
<SourceManifest Include="$(ProjectDir)*.addin" />
</ItemGroup>
<Message Importance="High" Text="RELEASE copy from $(TargetDir) to $(SolutionDir)\Release\Release$(RevitVersion)\$(ProjectName)\" />
<Copy DestinationFolder="$(SolutionDir)\Release\Release$(RevitVersion)\$(ProjectName)\%(RecursiveDir)" SourceFiles="@(SourceDLLs)" />
<Copy DestinationFolder="$(SolutionDir)\Release\Release$(RevitVersion)\" SourceFiles="@(SourceManifest)" />
</Target>
<!--END-->
</Project>
+89
View File
@@ -0,0 +1,89 @@
<Project>
<PropertyGroup>
<Copyright>Copyright (c) Speckle</Copyright>
<Authors>Speckle</Authors>
<Owners>Speckle</Owners>
<NeutralLanguage>en-US</NeutralLanguage>
<MinClientVersion>2.14</MinClientVersion>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<RepositoryUrl>https://github.com/specklesystems/xUnitRevit</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<Product>$(AssemblyName) ($(TargetFramework))</Product>
<Version>1.0.0</Version>
<LangVersion>8.0</LangVersion>
<AssemblyName>xUnitRevitRunner</AssemblyName>
<RootNamespace>xUnitRevitRunner</RootNamespace>
<!--<Nullable>enable</Nullable>-->
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion>
<NoWarn>$(NoWarn);1591;1701;1702;1705;VSX1000;CS0109;CS0108;CS0618;CS0114;NU1603</NoWarn>
<Platform>AnyCPU</Platform>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest</AnalysisLevel>
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<IncludeSymbols>false</IncludeSymbols>
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<DesignTimeBuild>false</DesignTimeBuild>
<DebugType>portable</DebugType>
<DebugSymbols>true</DebugSymbols>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugType>full</DebugType>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<Import Project="xUnitRevitRunnerShared\xUnitRevitRunnerShared.projitems" Label="Shared" />
<ItemGroup>
<ProjectReference Include="..\..\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
</ItemGroup>
<!-- MULTIVERSION POST BUILD EVENTS START -->
<Target Name="PostBuildActions" AfterTargets="PostBuildEvent">
<CallTarget Condition="$(Configuration.Contains('Debug'))" Targets="AfterBuildDebug" />
<CallTarget Condition="$(Configuration.Contains('Release'))" Targets="AfterBuildRelease" />
</Target>
<Target Name="AfterBuildDebug">
<ItemGroup>
<SourceDLLs Include="$(TargetDir)\**\*.*" />
<SourceManifest Include="$(TargetDir)*.addin" />
</ItemGroup>
<Copy DestinationFolder="$(AppData)\Autodesk\REVIT\Addins\$(RevitVersion)\$(TargetName)\%(RecursiveDir)" SourceFiles="@(SourceDLLs)" />
<Copy DestinationFolder="$(AppData)\Autodesk\REVIT\Addins\$(RevitVersion)\" SourceFiles="@(SourceManifest)" />
<Message Importance="High" Text="COPY @(SourceManifest)" />
</Target>
<Target Name="AfterBuildRelease">
<ItemGroup>
<SourceDLLs Include="$(TargetDir)\**\*.*" />
<SourceManifest Include="$(TargetDir)*.addin" />
</ItemGroup>
<Message Importance="High" Text="RELEASE copy from $(TargetDir) to $(SolutionDir)\Release\Release$(RevitVersion)\$(TargetName)\" />
<Copy DestinationFolder="$(SolutionDir)\Release\Release$(RevitVersion)\$(TargetName)\%(RecursiveDir)" SourceFiles="@(SourceDLLs)" />
<Copy DestinationFolder="$(SolutionDir)\Release\Release$(RevitVersion)\" SourceFiles="@(SourceManifest)" />
</Target>
<!--END-->
</Project>
@@ -0,0 +1,9 @@
{
"profiles": {
"Profile 1": {
"commandName": "Executable",
"executablePath": "$(ProgramW6432)\\Autodesk\\Revit 2023\\Revit.exe",
"remoteDebugEnabled": true
}
}
}
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<RevitVersion>2019</RevitVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2019" Version="4.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\xUnitRevitUtils\xUnitRevitUtils2019\xUnitRevitUtils2019.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,9 @@
{
"profiles": {
"Profile 1": {
"commandName": "Executable",
"executablePath": "$(ProgramW6432)\\Autodesk\\Revit 2020\\Revit.exe",
"remoteDebugEnabled": true
}
}
}
@@ -0,0 +1,18 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<RevitVersion>2020</RevitVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2020" Version="4.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\xUnitRevitUtils\xUnitRevitUtils2020\xUnitRevitUtils2020.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,9 @@
{
"profiles": {
"Profile 1": {
"commandName": "Executable",
"executablePath": "$(ProgramW6432)\\Autodesk\\Revit 2021\\Revit.exe",
"remoteDebugEnabled": true
}
}
}
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<RevitVersion>2021</RevitVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2021" Version="4.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\xUnitRevitUtils\xUnitRevitUtils2021\xUnitRevitUtils2021.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,9 @@
{
"profiles": {
"Profile 1": {
"commandName": "Executable",
"executablePath": "$(ProgramW6432)\\Autodesk\\Revit 2022\\Revit.exe",
"remoteDebugEnabled": true
}
}
}
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<RevitVersion>2022</RevitVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Speckle.Revit.API" Version="2022.0.2.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\xUnitRevitUtils\xUnitRevitUtils2022\xUnitRevitUtils2022.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,9 @@
{
"profiles": {
"Profile 1": {
"commandName": "Executable",
"executablePath": "$(ProgramW6432)\\Autodesk\\Revit 2023\\Revit.exe",
"remoteDebugEnabled": true
}
}
}
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net48</TargetFramework>
<RevitVersion>2023</RevitVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Speckle.Revit.API" Version="2023.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\xUnitRevitUtils\xUnitRevitUtils2023\xUnitRevitUtils2023.csproj" />
</ItemGroup>
</Project>
@@ -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;
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;
}
}
}

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -1,22 +1,22 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
namespace xUnitRevit
{
internal class CmdAvailabilityViews : IExternalCommandAvailability
{
/// <summary>
/// Command Availability - Views
/// </summary>
/// <param name="applicationData"></param>
/// <param name="selectedCategories"></param>
/// <returns></returns>
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
{
/// <summary>
/// Command Availability - Views
/// </summary>
/// <param name="applicationData"></param>
/// <param name="selectedCategories"></param>
/// <returns></returns>
public bool IsCommandAvailable(UIApplication applicationData, CategorySet selectedCategories)
{
//Can be run from any view/state
return true;
}
}
}
@@ -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;
}
}
}
@@ -1,13 +1,13 @@
using System.Collections.Generic;
namespace xUnitRevit
{
/// <summary>
/// Simple configuration file for lazy developers
/// </summary>
public class Configuration
{
public IList<string> StartupAssemblies { get; set; } = new List<string>();
public bool AutoStart { get; set; } = false;
}
}
using System.Collections.Generic;
namespace xUnitRevit
{
/// <summary>
/// Simple configuration file for lazy developers
/// </summary>
public class Configuration
{
public IList<string> StartupAssemblies { get; set; } = new List<string>();
public bool AutoStart { get; set; } = false;
}
}
@@ -1,43 +1,43 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using Autodesk.Revit.UI;
namespace xUnitRevit
{
/// <summary>
/// Event invoker. Has a queue of actions that, in theory, this thing should iterate through.
/// Required to run transactions form a non modal window.
/// </summary>
public class ExternalEventHandler : IExternalEventHandler
{
public bool Running = false;
public IList<Action> Queue { get; set; }
public ExternalEventHandler(IList<Action> 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
{
/// <summary>
/// Event invoker. Has a queue of actions that, in theory, this thing should iterate through.
/// Required to run transactions form a non modal window.
/// </summary>
public class ExternalEventHandler : IExternalEventHandler
{
public bool Running = false;
public IList<Action> Queue { get; set; }
public ExternalEventHandler(IList<Action> 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";
}
}
}
@@ -1,60 +1,61 @@
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
{
/// <summary>
/// Responsible for launching the xUnit WPF interface and initializing xru with Revit data
/// </summary>
public static class Runner
{
internal static Configuration Config = new Configuration();
internal static void Launch(UIApplication uiapp)
{
try
{
var queue = new List<Action>();
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<Configuration>(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
{
/// <summary>
/// Responsible for launching the xUnit WPF interface and initializing xru with Revit data
/// </summary>
public static class Runner
{
internal static Configuration Config = new Configuration();
internal static void Launch(UIApplication uiapp)
{
try
{
var queue = new List<Action>();
var eventHandler = ExternalEvent.Create(new ExternalEventHandler(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)
{
xru.Initialize(uiapp, SynchronizationContext.Current, eventHandler, queue, 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<Configuration>(json);
}
catch { }
}
}
}
@@ -11,7 +11,7 @@
</AddIn>-->
<AddIn Type="Application">
<Name>xUnitRevit Runner</Name>
<Assembly>xUnitRevit\xUnitRevit.dll</Assembly>
<Assembly>xUnitRevitRunner\xUnitRevitRunner.dll</Assembly>
<FullClassName>xUnitRevit.App</FullClassName>
<ClientId>d9c9ed6f-7b2a-4c47-8f87-a6f33a553d50</ClientId>
<VendorId>speckle</VendorId>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects Condition="'$(MSBuildVersion)' == '' Or '$(MSBuildVersion)' &lt; '16.0'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<SharedGUID>2b4f4767-cf26-485b-adb3-751250eb1cdb</SharedGUID>
</PropertyGroup>
<PropertyGroup Label="Configuration">
<Import_RootNamespace>xUnitRevitShared</Import_RootNamespace>
</PropertyGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)Assets\icon.png" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Assets\icon16.png" />
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Assets\icon32.png" />
</ItemGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)App.cs" />
<Compile Include="$(MSBuildThisFileDirectory)CmdAvailabilityViews.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Command.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Configuration.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ExternalEventHandler.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Runner.cs" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)config.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="$(MSBuildThisFileDirectory)xUnitRevitRunner.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>2b4f4767-cf26-485b-adb3-751250eb1cdb</ProjectGuid>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
</PropertyGroup>
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.Default.props" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.Common.props" />
<PropertyGroup />
<Import Project="xUnitRevitShared.projitems" Label="Shared" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
</Project>
+55
View File
@@ -0,0 +1,55 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32630.192
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "{F5A2849D-7C58-4894-B9C5-8488E244B7CF}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
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
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{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}.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}.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}.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}.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}.Release|Any CPU.ActiveCfg = Release|Any CPU
{469F8B29-F14E-49E8-B145-8C4FEF9D68CA}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1CD726E4-6BBA-4FC3-9C57-0981EF1A9475}
EndGlobalSection
EndGlobal
@@ -16,7 +16,8 @@
<RepositoryUrl>https://github.com/Speckle-Next/xunit-Revit</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<Product>$(AssemblyName) ($(TargetFramework))</Product>
<Version>1.0.5</Version>
<!--This is set by the TAG in the CI-->
<Version>0.0.1</Version>
<AssemblyName>xUnitRevitUtils</AssemblyName>
<RootNamespace>xUnitRevitUtils</RootNamespace>
@@ -60,9 +61,9 @@
</PropertyGroup>
<ItemGroup Condition="'$(IsLibraryProject)' == 'true'">
<None Include="$(MSBuildThisFileDirectory)\LICENSE" Pack="true" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)\icon.png" Pack="true" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)\readme.md" Pack="true" PackagePath="\"/>
<None Include="$(MSBuildThisFileDirectory)\..\LICENSE" Pack="true" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)\..\icon.png" Pack="true" PackagePath="\" />
<None Include="$(MSBuildThisFileDirectory)\..\readme.md" Pack="true" PackagePath="\"/>
<Compile Include="$(MSBuildThisFileDirectory)\xUnitRevitUtilsShared\xru.cs" Link="xru.cs" />
</ItemGroup>
@@ -8,7 +8,10 @@
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2019" Version="4.0.0" />
<PackageReference Include="xunit" Version="2.4.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf.csproj" />
</ItemGroup>
</Project>
@@ -9,7 +9,11 @@
<ItemGroup>
<PackageReference Include="ModPlus.Revit.API.2020" Version="4.0.0" />
<PackageReference Include="xunit" Version="2.4.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf.csproj" />
</ItemGroup>
</Project>
@@ -12,4 +12,9 @@
<PackageReference Include="xunit" Version="2.4.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf.csproj" />
</ItemGroup>
</Project>
@@ -8,8 +8,14 @@
<ItemGroup>
<PackageReference Include="Speckle.Revit.API" Version="2022.0.2.1" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="Speckle.Revit.API" Version="2022.0.2.1">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf.csproj" />
</ItemGroup>
</Project>
@@ -1,7 +1,7 @@
<Project Sdk="MSBuild.Sdk.Extras/3.0.44">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<TargetFramework>netstandard2.0</TargetFramework>
<Description>xUnit runner utilities for Revit 2023</Description>
<PackageId>xUnitRevitUtils.2023</PackageId>
</PropertyGroup>
@@ -14,4 +14,9 @@
<PackageReference Include="xunit" Version="2.4.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf\speckle.xunit.runner.wpf.csproj" />
</ItemGroup>
</Project>
@@ -1,6 +1,7 @@
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using Xunit;
using Xunit.Runner.Wpf.ViewModel;
namespace xUnitRevitUtils
{
@@ -13,6 +14,7 @@ namespace xUnitRevitUtils
private static IList<Action> Queue { get; set; }
private static ExternalEvent EventHandler { get; set; }
public static SynchronizationContext UiContext { get; set; }
public static MainViewModel MainViewModel { get; set; }
public static void Initialize(UIApplication uiapp, SynchronizationContext uiContext, ExternalEvent eventHandler, IList<Action> queue)
{
Uiapp = uiapp;
@@ -20,6 +22,14 @@ namespace xUnitRevitUtils
EventHandler = eventHandler;
Queue = queue;
}
public static void Initialize(UIApplication uiapp, SynchronizationContext uiContext, ExternalEvent eventHandler, IList<Action> queue, MainViewModel vm)
{
Uiapp = uiapp;
UiContext = uiContext;
EventHandler = eventHandler;
Queue = queue;
MainViewModel = vm;
}
#region utility methods
@@ -47,23 +57,23 @@ namespace xUnitRevitUtils
UiContext.Send(x => doc = Uiapp.OpenAndActivateDocument(filePath).Document, null);
Assert.NotNull(doc);
return doc;
}
/// <summary>
/// Closes the provided Revit document
/// </summary>
/// <param name="doc">Revit document to be closed</param>
/// <param name="saveChanges">If true, saves changes to document before closing</param>
/// <returns>
/// Bool indicating whether or not the document was successfully closed
/// </returns>
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;
}
/// <summary>
/// Closes the provided Revit document
/// </summary>
/// <param name="doc">Revit document to be closed</param>
/// <param name="saveChanges">If true, saves changes to document before closing</param>
/// <returns>
/// Bool indicating whether or not the document was successfully closed
/// </returns>
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;
}
/// <summary>
@@ -83,8 +93,8 @@ namespace xUnitRevitUtils
if (overwrite && File.Exists(filePath))
File.Delete(filePath);
}
catch
{
catch
{
}
//OpenAndActivateDocument only works if run from the current context
@@ -120,17 +130,17 @@ namespace xUnitRevitUtils
{
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();
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)