Skip to content

Commit

Permalink
updated: Navis ci config into Release/2.11 (#2016)
Browse files Browse the repository at this point in the history
* Ported project in from speckle-navis

* Adding Navisworks as a HostApplication

* Adding ConverterNavisworks

* Adding net48 as a target for use in Navisworks

* Shuffling the Filters

* Implementing a TreeSelectFilter in Connector and DUI

* Nips and Tucks

* Launch with command line flags to open Sample Model

* feat(dui): adds support for hiding the receive tab

* fix: loads receive modes before checking for them :)

* fix(dui): hides setting button if none is available

* chore: removes unused bindings

* Logging

* Working NWF

* Clashes

* Differentiation of generic solution to specific

* Store states in file

* Tidy up

* further integration for treeviewfilter

* Binding tidyups

* Example Model Changes

* Fix: Saved StreamStates with TreeViewFilter objects recall correctly and restore intact

* Basic Send Implementation in-lieu of the Converter being ready

TODO: Needs more Navisworks like traversal

* Code Cleanup

* GetUnits

* test build

* Postbuild events switched to per user targets

* Convert Selections from SavedStream Filters to ObjectIds

Saved Sets and Clash Results stubbed only

* Sample Model saves

* Fix: Actual Units returned

* Convert 1-based Array to addressable Array

* Remove ConvertableObject

Shifted to more the lightweight pseudoId from ModelItem InwOaPaths

* Get Select Objects

Uses a pseudoId generated from the InwOaPath ArrayData object.

TODO: Longer term this should imply a guard function to detect if the path structure is still valid

* Handle converted pseudoId addressed objects and Send

The toConvertDict and the While loop addresses the need to have recursion and a tree of Base objects, while also allowing for the flat list to represent all objects

* Stubbed non implemented Receive methods

* tidying up

* Convert 1-based Array to 0-based Array

* First port of conversions from Rimshot

* Remove ConvertableObject

* Wrapper for ConvertToSpeckle to address the future recursive conversion methods

* Stubbed CanConvertToSpeckle - returns true for Geometry Elements

* Magic gathering of ModelItem from the pseudoId

* Initial Send Traversal

* ToSpeckle Fundamentals

* Object Sorter

* SavedStreams

* Simple displayValue addition.

Geometry only at this point. Bare properties.

* Sample Model Update

* Add Navisworks projects to All.sln

* Added 2020, 2021, 2022 Navisworks versions

* Expand CanConvert to all Geometry Nodes

TODO: Some nodes are parent nodes that artificially report HasGeometry=True - leading to dupe elements.

* Adoption of Speckle.Navisworks.Api Nugets

* Rebuild of Connector Solution

* Send traversal refactor 1

Thread safety, memory guards, Navisworks progress bar

* Remove local assembly references

* Additional Converter Versions added for Navisworks

* Navisworks Installer additions

* style: Renaming Bindings partials

* delete: cruft file

* style: renaming Version Projects for Connector and Converter

* fix: remove errant dependency and missing file

* fix: repoint solution to renamed version projects

* fix: repointing to renamed projects

* fix: repointing to renamed projects

* fix: Remove Colorful.Console package

* style: remove unused directives

* fix: adapting logging helpers to do without Colurful.Console

* fix: PostBuildEvent rationalisation and Release target for installer

* fix: restore the language files location to postbuild event

Co-authored-by: Matteo Cominetti <[email protected]>
  • Loading branch information
jsdbroughton and teocomi authored Dec 19, 2022
1 parent abfe2d0 commit 07043a3
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 151 deletions.
1 change: 1 addition & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ jobs:
(Core|Objects|ConnectorMicroStation|.*/ConverterMicroStation)/.* microstation true
(Core|Objects|ConnectorTeklaStructures|.*/ConverterTeklaStructures)/.* teklastructures true
(Core|Objects|ConnectorArchicad)/.* archicad true
(Core|Objects|ConnectorNavisworks|.*/ConverterNavisworks)/.* navisworks true
base-revision: main
output-path: .circleci/scripts/parameters.json
- run: cat .circleci/scripts/parameters.json
Expand Down
10 changes: 9 additions & 1 deletion .circleci/scripts/connector-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -179,4 +179,12 @@ archicad:
projname: ConnectorArchicad
slug: archicad
build-with-mono: false
installername: SpeckleArchicadInstall
installername: SpeckleArchicadInstall

navisworks:
- build-connector:
slnname: ConnectorNavisworks
dllname: SpeckleConnectorNavisworks.dll
slug: navisworks
requires:
- build-desktopui
3 changes: 2 additions & 1 deletion .circleci/scripts/parameters.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
"autocadcivil": true,
"microstation": true,
"archicad": true,
"teklastructures": true
"teklastructures": true,
"navisworks": true
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
<Configurations>Debug;Release</Configurations>

<NavisworksBuildNumber>v17</NavisworksBuildNumber>
<NavisworksApiPath>C:\Program Files\Autodesk\Navisworks Manage 2020</NavisworksApiPath>

<NavisworksVersion>2020</NavisworksVersion>
<PluginBundleTarget>$(AppData)\Autodesk\ApplicationPlugins\Speckle.ConnectorNavisworks.bundle</PluginBundleTarget>
<PluginVersionContentTarget>$(AppData)\Autodesk\ApplicationPlugins\Speckle.ConnectorNavisworks.bundle\Contents\$(NavisworksBuildNumber)</PluginVersionContentTarget>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>

Expand Down Expand Up @@ -63,42 +63,6 @@
<!-- Includes -->
<Import Project="..\ConnectorNavisworks\ConnectorNavisworks.Shared.projitems" Label="Shared" />

<!-- Post Builds -->
<PropertyGroup>
<PostBuildEvent>
@echo off
echo Check for existing bundle build
IF EXIST "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)" (
echo $(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\ exists
echo Remove Existing Bundle Build
rmdir /S /Q "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)"
)

echo(
echo Write Plugin DLL
xcopy /Y "$(TargetPath)" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\"

echo(
echo Package Content File
xcopy /Y "$(TargetDir)Entry\PackageContents.xml" "$(PluginBundleTarget)\"

echo(
echo Copy UI Resources
mkdir "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US
copy /Y "$(TargetDir)Entry\Ribbon.xaml" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US\"
copy /Y "$(TargetDir)Entry\Ribbon.name" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US\"

echo(
echo Copy Resources
mkdir "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\Resources
copy /Y "$(TargetDir)Resources\*.*" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\Resources\"

echo(
echo Copy Dependencies
xcopy /Y "$(TargetDir)*.dll" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\"
</PostBuildEvent>
</PropertyGroup>

<!-- NUGETS -->
<ItemGroup>
<PackageReference Include="Speckle.Navisworks.API" Version="2020.0.0" />
Expand Down Expand Up @@ -176,4 +140,19 @@
<Private>False</Private>
</Reference>
</ItemGroup>

<!-- Post Builds -->
<PropertyGroup>
<PostBuildEvent Condition=" '$(Configuration)' == 'Debug' ">
if exist "$(PluginVersionContentTarget)" ( rmdir /S /Q "$(PluginVersionContentTarget)" )
xcopy /y "$(TargetDir)Entry\PackageContents.xml" "$(PluginBundleTarget)\"
xcopy /y "$(TargetDir)Entry\Ribbon.*" "$(PluginVersionContentTarget)\en-US\"
xcopy /e /i /y "$(TargetDir)*.*" "$(PluginVersionContentTarget)\"
</PostBuildEvent>

<PostBuildEvent Condition=" '$(Configuration)' == 'Release' ">
echo RELEASE copy from $(TargetDir) to $(SolutionDir)Release\Release\$(NavisworksVersion)\"
xcopy /e /i /y "$(TargetDir)*.*" "$(SolutionDir)Release\Release$(NavisworksVersion)\"
</PostBuildEvent>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
<Configurations>Debug;Release</Configurations>

<NavisworksBuildNumber>v18</NavisworksBuildNumber>
<NavisworksApiPath>C:\Program Files\Autodesk\Navisworks Manage 2021</NavisworksApiPath>
<NavisworksVersion>2021</NavisworksVersion>
<PluginBundleTarget>$(AppData)\Autodesk\ApplicationPlugins\Speckle.ConnectorNavisworks.bundle</PluginBundleTarget>
<PluginVersionContentTarget>$(AppData)\Autodesk\ApplicationPlugins\Speckle.ConnectorNavisworks.bundle\Contents\$(NavisworksBuildNumber)</PluginVersionContentTarget>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>

Expand Down Expand Up @@ -62,42 +63,6 @@
<!-- Includes -->
<Import Project="..\ConnectorNavisworks\ConnectorNavisworks.Shared.projitems" Label="Shared" />

<!-- Post Builds -->
<PropertyGroup>
<PostBuildEvent>
@echo off
echo Check for existing bundle build
IF EXIST "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)" (
echo $(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\ exists
echo Remove Existing Bundle Build
rmdir /S /Q "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)"
)

echo(
echo Write Plugin DLL
xcopy /Y "$(TargetPath)" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\"

echo(
echo Package Content File
xcopy /Y "$(TargetDir)Entry\PackageContents.xml" "$(PluginBundleTarget)\"

echo(
echo Copy UI Resources
mkdir "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US
copy /Y "$(TargetDir)Entry\Ribbon.xaml" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US\"
copy /Y "$(TargetDir)Entry\Ribbon.name" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US\"

echo(
echo Copy Resources
mkdir "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\Resources
copy /Y "$(TargetDir)Resources\*.*" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\Resources\"

echo(
echo Copy Dependencies
xcopy /Y "$(TargetDir)*.dll" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\"
</PostBuildEvent>
</PropertyGroup>

<!-- NUGETS -->
<ItemGroup>
<PackageReference Include="Speckle.Navisworks.API" Version="2021.0.0" />
Expand Down Expand Up @@ -176,4 +141,19 @@
<Private>False</Private>
</Reference>
</ItemGroup>

<!-- Post Builds -->
<PropertyGroup>
<PostBuildEvent Condition=" '$(Configuration)' == 'Debug' ">
if exist "$(PluginVersionContentTarget)" ( rmdir /S /Q "$(PluginVersionContentTarget)" )
xcopy /y "$(TargetDir)Entry\PackageContents.xml" "$(PluginBundleTarget)\"
xcopy /y "$(TargetDir)Entry\Ribbon.*" "$(PluginVersionContentTarget)\en-US\"
xcopy /e /i /y "$(TargetDir)*.*" "$(PluginVersionContentTarget)\"
</PostBuildEvent>

<PostBuildEvent Condition=" '$(Configuration)' == 'Release' ">
echo RELEASE copy from $(TargetDir) to $(SolutionDir)Release\Release\$(NavisworksVersion)\"
xcopy /e /i /y "$(TargetDir)*.*" "$(SolutionDir)Release\Release$(NavisworksVersion)\"
</PostBuildEvent>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
<Configurations>Debug;Release</Configurations>

<NavisworksBuildNumber>v19</NavisworksBuildNumber>
<NavisworksApiPath>C:\Program Files\Autodesk\Navisworks Manage 2022</NavisworksApiPath>
<NavisworksVersion>2022</NavisworksVersion>
<PluginBundleTarget>$(AppData)\Autodesk\ApplicationPlugins\Speckle.ConnectorNavisworks.bundle</PluginBundleTarget>
<PluginVersionContentTarget>$(AppData)\Autodesk\ApplicationPlugins\Speckle.ConnectorNavisworks.bundle\Contents\$(NavisworksBuildNumber)</PluginVersionContentTarget>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>

Expand Down Expand Up @@ -62,42 +63,6 @@
<!-- Includes -->
<Import Project="..\ConnectorNavisworks\ConnectorNavisworks.Shared.projitems" Label="Shared" />

<!-- Post Builds -->
<PropertyGroup>
<PostBuildEvent>
@echo off
echo Check for existing bundle build
IF EXIST "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)" (
echo $(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\ exists
echo Remove Existing Bundle Build
rmdir /S /Q "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)"
)

echo(
echo Write Plugin DLL
xcopy /Y "$(TargetPath)" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\"

echo(
echo Package Content File
xcopy /Y "$(TargetDir)Entry\PackageContents.xml" "$(PluginBundleTarget)\"

echo(
echo Copy UI Resources
mkdir "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US
copy /Y "$(TargetDir)Entry\Ribbon.xaml" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US\"
copy /Y "$(TargetDir)Entry\Ribbon.name" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US\"

echo(
echo Copy Resources
mkdir "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\Resources
copy /Y "$(TargetDir)Resources\*.*" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\Resources\"

echo(
echo Copy Dependencies
xcopy /Y "$(TargetDir)*.dll" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\"
</PostBuildEvent>
</PropertyGroup>

<!-- NUGETS -->
<ItemGroup>
<PackageReference Include="Speckle.Navisworks.API" Version="2022.0.0" />
Expand Down Expand Up @@ -175,4 +140,19 @@
<Private>False</Private>
</Reference>
</ItemGroup>

<!-- Post Builds -->
<PropertyGroup>
<PostBuildEvent Condition=" '$(Configuration)' == 'Debug' ">
if exist "$(PluginVersionContentTarget)" ( rmdir /S /Q "$(PluginVersionContentTarget)" )
xcopy /y "$(TargetDir)Entry\PackageContents.xml" "$(PluginBundleTarget)\"
xcopy /y "$(TargetDir)Entry\Ribbon.*" "$(PluginVersionContentTarget)\en-US\"
xcopy /e /i /y "$(TargetDir)*.*" "$(PluginVersionContentTarget)\"
</PostBuildEvent>

<PostBuildEvent Condition=" '$(Configuration)' == 'Release' ">
echo RELEASE copy from $(TargetDir) to $(SolutionDir)Release\Release\$(NavisworksVersion)\"
xcopy /e /i /y "$(TargetDir)*.*" "$(SolutionDir)Release\Release$(NavisworksVersion)\"
</PostBuildEvent>
</PropertyGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,9 @@
<Configurations>Debug;Release</Configurations>

<NavisworksBuildNumber>v20</NavisworksBuildNumber>
<NavisworksApiPath>C:\Program Files\Autodesk\Navisworks Manage 2023</NavisworksApiPath>
<NavisworksVersion>2023</NavisworksVersion>
<PluginBundleTarget>$(AppData)\Autodesk\ApplicationPlugins\Speckle.ConnectorNavisworks.bundle</PluginBundleTarget>
<PluginVersionContentTarget>$(AppData)\Autodesk\ApplicationPlugins\Speckle.ConnectorNavisworks.bundle\Contents\$(NavisworksBuildNumber)</PluginVersionContentTarget>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>

Expand Down Expand Up @@ -62,42 +63,6 @@
<!-- Includes -->
<Import Project="..\ConnectorNavisworks\ConnectorNavisworks.Shared.projitems" Label="Shared" />

<!-- Post Builds -->
<PropertyGroup>
<PostBuildEvent>
@echo off
echo Check for existing bundle build
IF EXIST "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)" (
echo $(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\ exists
echo Remove Existing Bundle Build
rmdir /S /Q "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)"
)

echo(
echo Write Plugin DLL
xcopy /Y "$(TargetPath)" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\"

echo(
echo Package Content File
xcopy /Y "$(TargetDir)Entry\PackageContents.xml" "$(PluginBundleTarget)\"

echo(
echo Copy UI Resources
mkdir "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US
copy /Y "$(TargetDir)Entry\Ribbon.xaml" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US\"
copy /Y "$(TargetDir)Entry\Ribbon.name" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\en-US\"

echo(
echo Copy Resources
mkdir "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\Resources
copy /Y "$(TargetDir)Resources\*.*" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\Resources\"

echo(
echo Copy Dependencies
xcopy /Y "$(TargetDir)*.dll" "$(PluginBundleTarget)\Contents\$(NavisworksBuildNumber)\"
</PostBuildEvent>
</PropertyGroup>

<!-- NUGETS -->
<ItemGroup>
<PackageReference Include="Speckle.Navisworks.API" Version="2023.0.0" />
Expand All @@ -110,6 +75,7 @@
<ProjectReference Include="..\..\DesktopUI2\AvaloniaHwndHost\AvaloniaHwndHost.csproj" />
</ItemGroup>


<!-- References -->
<ItemGroup>
<Reference Include="System.ComponentModel.Composition">
Expand Down Expand Up @@ -175,4 +141,19 @@
<Private>False</Private>
</Reference>
</ItemGroup>

<!-- Post Builds -->
<PropertyGroup>
<PostBuildEvent Condition=" '$(Configuration)' == 'Debug' ">
if exist "$(PluginVersionContentTarget)" ( rmdir /S /Q "$(PluginVersionContentTarget)" )
xcopy /y "$(TargetDir)Entry\PackageContents.xml" "$(PluginBundleTarget)\"
xcopy /y "$(TargetDir)Entry\Ribbon.*" "$(PluginVersionContentTarget)\en-US\"
xcopy /e /i /y "$(TargetDir)*.*" "$(PluginVersionContentTarget)\"
</PostBuildEvent>

<PostBuildEvent Condition=" '$(Configuration)' == 'Release' ">
echo RELEASE copy from $(TargetDir) to $(SolutionDir)Release\Release\$(NavisworksVersion)\"
xcopy /e /i /y "$(TargetDir)*.*" "$(SolutionDir)Release\Release$(NavisworksVersion)\"
</PostBuildEvent>
</PropertyGroup>
</Project>

0 comments on commit 07043a3

Please sign in to comment.