From bd7da8aff332711998c8b429a44cb69cb5ece13a Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 15 Mar 2024 16:35:17 +0300 Subject: [PATCH 01/21] Update Readme.md --- Readme.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Readme.md b/Readme.md index 7529e04..defc0a7 100644 --- a/Readme.md +++ b/Readme.md @@ -1,9 +1,11 @@ - - - RevitLookup - +

+ + + RevitLookup + +

-# Create your Add-In for Revit on the .Net platform now +## Create your Add-In for Revit on the .Net platform ![](https://img.shields.io/nuget/v/Nice3point.Revit.Templates?style=for-the-badge) ![](https://img.shields.io/nuget/dt/Nice3point.Revit.Templates?style=for-the-badge) @@ -32,4 +34,4 @@ This repository contains a project templates for creating Revit Add-In - To create a project use the IDE or run `dotnet new` - To create a release run `nuke` -- For more help, read [Wiki](https://github.com/Nice3point/RevitTemplates/wiki) \ No newline at end of file +- For more help, read [Wiki](https://github.com/Nice3point/RevitTemplates/wiki) From 31cc8f15394e6b8603ec93e7c278348afc9f678f Mon Sep 17 00:00:00 2001 From: Nice3point Date: Fri, 15 Mar 2024 17:51:37 +0300 Subject: [PATCH 02/21] Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index defc0a7..ed000d8 100644 --- a/Readme.md +++ b/Readme.md @@ -1,5 +1,5 @@

- + RevitLookup From 6613d61841f3d0fc89f8119d381f4ceb72d44ad3 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Fri, 15 Mar 2024 18:23:39 +0300 Subject: [PATCH 03/21] Update icons --- .nuget/PackageIcon.png | Bin 3518 -> 24234 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes .../MultiProjectSolution/install/Installer.cs | 4 ++-- .../Resources/Icons/BackgroundImage.png | Bin 5331 -> 23500 bytes .../install/Resources/Icons/BannerImage.png | Bin 1028 -> 6996 bytes .../install/Resources/Icons/ShellIcon.ico | Bin 32988 -> 67646 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes .../Resources/Icons/BackgroundImage.png | Bin 5331 -> 23500 bytes .../install/Resources/Icons/BannerImage.png | Bin 1028 -> 6996 bytes .../install/Resources/Icons/ShellIcon.ico | Bin 32988 -> 67646 bytes .../Resources/Icons/RibbonIcon16.png | Bin 2378 -> 1362 bytes .../Resources/Icons/RibbonIcon32.png | Bin 2922 -> 3376 bytes 26 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.nuget/PackageIcon.png b/.nuget/PackageIcon.png index 31a743f8724ea83804078870ac55d9fdf9389ce8..8e012ed13dbd2ebab3f05d0f8d91fe023a286888 100644 GIT binary patch delta 24063 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 Z15A2dEm@)4=cW96;N$5}uXc~v_8)pQZ!!P? diff --git a/samples/MultiProjectApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png b/samples/MultiProjectApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png index 1717399098deab12e1137479076a33b67c88c3eb..a7886545f7d7b0888f69c67c1f45253c09a532b5 100644 GIT binary patch delta 1010 zcmVL&f8C$bpVI)?|W!V&n*-= zjY4TD6*gK}U|MC%WP>3BWdV{C-e z20`Y4uogyO&;zAFVTHD|@B8z@_!s!xf0BnHgy8?go^L%5p78Md{SXR;plKQ&&mw=E zPG{q-nFlYHYzA^FNtEB@qIRu-zH%=@PMSqb*uZdz5`ZQ6_kbrnR4OG_SNuu6J$--Q zb4wrxwr^0F`S^qCfyL@Igk zbk#F;*#^U%d4GUj92&^q?wF{bRVsfAO$u3BGD8hJs6+R(J%d9PKfnCf>gwnw5Iz%qtVYI1)y8wiCl zZMP#&qnX`VQT|GA-vCxuR*I>D_okyByxZ1@|CY2o;@cqWoGhnncOKH8C~qU*0o{GHSZDg9P~3& zA?q8*I}(c79Z?{7bBUug!SrCPUV;P2p-QmD?lfhe#+ zalaQLwF0`5(v!Q(%f97oEs)T z@6052XBjU&{?xvT?8gd^Nqs(~g@Ralwh{roE`MhFJ~ooH9h7}?5`?DV^KT$8KM&uv zwb#B}`~2CO$^#AMmLh-K?2;EAg&37NIoO+_1DBA1t8czNJ$Lbf{^(DaRWzY!&=iHd zY&}N$d#oS6f8tcl;lov?+ya|#$qT6_7IY|x0ml?Zc?#crdAjk~#S41Zputg|K09h7+v!&;nl_lINUDW=)4YvN`+n>vE#qvlUu zuWP9P6aeVBxLD|P>9{jK#w%pfk1I;|k4C~Hq)$ literal 2378 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 diff --git a/samples/MultiProjectSolution/install/Installer.cs b/samples/MultiProjectSolution/install/Installer.cs index a385c62..6cd8313 100644 --- a/samples/MultiProjectSolution/install/Installer.cs +++ b/samples/MultiProjectSolution/install/Installer.cs @@ -5,8 +5,8 @@ using WixSharp.Controls; using Assembly = System.Reflection.Assembly; -const string outputName = "AllInOneApplication"; -const string projectName = "AllInOneApplication"; +const string outputName = "MultiProjectSolution"; +const string projectName = "MultiProjectSolution"; var project = new Project { diff --git a/samples/MultiProjectSolution/install/Resources/Icons/BackgroundImage.png b/samples/MultiProjectSolution/install/Resources/Icons/BackgroundImage.png index ffedfde462f5c973780e4a8eef47344a8a9a6dd1..1b8cdf5e4e1d69c417112798ddeb91d2293995c1 100644 GIT binary patch literal 23500 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 V^%JnmZJP{B^|_W(m4bQL{{U}gt1SQk literal 1028 zcmeAS@N?(olHy`uVBq!ia0y~yV0;T?TX8S}NugQO`hgT@fk$L90|U1Z2s2)~Tla^7 zfq9#!i(^Q|oVRy3df$#@I8a!9XM&H|$=>&KF+fyh-xI0=+n6FX0_Img}0PWF>v7K5t$3;ipgQv+r?=AKvy) zzhAvy{cl}8Q^T2G$HLhsWLoh}$iX1@>B>H4n?>un>RzYRCl@A~o!Vo?_d&zz?!AK-cWn88r>>a%-wrAOk8_)le@_HI3Jvs6Z5 z)-~7NJAR&iu^6av>nXnnuezS|F)mtZu76x=)#bNSPkBCgW5p-n+r@r3JALh~NbM)` z3m!9EoD*N;V;Hh>PRkpfON9*?m!4V_l)4@V={puJzh86{$htz7d9x-}frKAf?9XWL zx%~3mw{NR8^{x~)SggBsz47r9X-A;k5A7X~U%s$#kokJ7{Xikt`DMW|OM#kexazEr zJUaAUa~;qEi>So?#rI^=WN86t!+&1;&Mu($BysAYJ6}GhU)B%O zT?H~}t^M(R^7GF;|5n!B&As{DTGk)`ms%*UzWny;xpRl(-!6O1Ah_gq(EO0u?Z@}C zo?8dv+9|$%uy6azexPfeSl^wvudA-8dA+b9AY9(L{7L(g7@+XdiioG{u7E`w)%)*z zO)rvV=a~9#>zwbmbk!f{@m>WgcYb#~IA?48eLFerr@&y#y5QVC`DaYgmeNi8H|{X7 z{v|RuFMrLH*A@qoEBA){sF8a6=H$O)5vKBB)hQ?V796^B`L=z3^yiDgKxg$oefPUI zFRLyfPWtJJkAff}$A1}od*tOyUhmx#VzKtkl=5!=Yc*4VCOS;;pS%D4-aiM`L%Xy; zFP}QseD?Y_`N|tFzj;-koWKtZmI;otE!}H8Z~IHzUy)n&^Uiqs6 z6N`78ta-QW+3VH%@9PTEs$QLawpx)HtgZXHe%n2l`=&F`Pu&*or)_<7>QDXuoAyM@ z?ECO($^G}gxfp}8W4BDsT3mMR*Q+nLsA^<_VwZO&nM~Yi}IbyK5V}R7^PeE zZhd{0y7%M4dpqV-T1}P7W#y~By6>Of{OS+(%(Cn!%w9icxCx9LY*^CF(C{OF?9yV6 Urd{WM0kbuOr>mdKI;Vst0OuJ1od5s; diff --git a/samples/MultiProjectSolution/install/Resources/Icons/ShellIcon.ico b/samples/MultiProjectSolution/install/Resources/Icons/ShellIcon.ico index 940e075dd275b732c6a23d9d7d70b1a2591c99a7..096638367487df927c1c2c1ab1289bd2c2822cea 100644 GIT binary patch literal 67646 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 literal 32988 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 literal 2378 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 diff --git a/samples/SingleProjectApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png b/samples/SingleProjectApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png index 1717399098deab12e1137479076a33b67c88c3eb..a7886545f7d7b0888f69c67c1f45253c09a532b5 100644 GIT binary patch delta 1010 zcmVL&f8C$bpVI)?|W!V&n*-= zjY4TD6*gK}U|MC%WP>3BWdV{C-e z20`Y4uogyO&;zAFVTHD|@B8z@_!s!xf0BnHgy8?go^L%5p78Md{SXR;plKQ&&mw=E zPG{q-nFlYHYzA^FNtEB@qIRu-zH%=@PMSqb*uZdz5`ZQ6_kbrnR4OG_SNuu6J$--Q zb4wrxwr^0F`S^qCfyL@Igk zbk#F;*#^U%d4GUj92&^q?wF{bRVsfAO$u3BGD8hJs6+R(J%d9PKfnCf>gwnw5Iz%qtVYI1)y8wiCl zZMP#&qnX`VQT|GA-vCxuR*I>D_okyByxZ1@|CY2o;@cqWoGhnncOKH8C~qU*0o{GHSZDg9P~3& zA?q8*I}(c79Z?{7bBUug!SrCPUV;P2p-QmD?lfhe#+ zalaQLwF0`5(v!Q(%f97oEs)T z@6052XBjU&{?xvT?8gd^Nqs(~g@Ralwh{roE`MhFJ~ooH9h7}?5`?DV^KT$8KM&uv zwb#B}`~2CO$^#AMmLh-K?2;EAg&37NIoO+_1DBA1t8czNJ$Lbf{^(DaRWzY!&=iHd zY&}N$d#oS6f8tcl;lov?+ya|#$qT6_7IY|x0ml?Zc?#crdAjk~#S41Zputg|K09h7+v!&;nl_lINUDW=)4YvN`+n>vE#qvlUu zuWP9P6aeVBxLD|P>9{jK#w%pfk1I;|k4C~Hq)$ literal 2378 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 diff --git a/samples/SingleProjectDIApplication/Resources/Icons/RibbonIcon16.png b/samples/SingleProjectDIApplication/Resources/Icons/RibbonIcon16.png index 1717399098deab12e1137479076a33b67c88c3eb..a7886545f7d7b0888f69c67c1f45253c09a532b5 100644 GIT binary patch delta 1010 zcmVL&f8C$bpVI)?|W!V&n*-= zjY4TD6*gK}U|MC%WP>3BWdV{C-e z20`Y4uogyO&;zAFVTHD|@B8z@_!s!xf0BnHgy8?go^L%5p78Md{SXR;plKQ&&mw=E zPG{q-nFlYHYzA^FNtEB@qIRu-zH%=@PMSqb*uZdz5`ZQ6_kbrnR4OG_SNuu6J$--Q zb4wrxwr^0F`S^qCfyL@Igk zbk#F;*#^U%d4GUj92&^q?wF{bRVsfAO$u3BGD8hJs6+R(J%d9PKfnCf>gwnw5Iz%qtVYI1)y8wiCl zZMP#&qnX`VQT|GA-vCxuR*I>D_okyByxZ1@|CY2o;@cqWoGhnncOKH8C~qU*0o{GHSZDg9P~3& zA?q8*I}(c79Z?{7bBUug!SrCPUV;P2p-QmD?lfhe#+ zalaQLwF0`5(v!Q(%f97oEs)T z@6052XBjU&{?xvT?8gd^Nqs(~g@Ralwh{roE`MhFJ~ooH9h7}?5`?DV^KT$8KM&uv zwb#B}`~2CO$^#AMmLh-K?2;EAg&37NIoO+_1DBA1t8czNJ$Lbf{^(DaRWzY!&=iHd zY&}N$d#oS6f8tcl;lov?+ya|#$qT6_7IY|x0ml?Zc?#crdAjk~#S41Zputg|K09h7+v!&;nl_lINUDW=)4YvN`+n>vE#qvlUu zuWP9P6aeVBxLD|P>9{jK#w%pfk1I;|k4C~Hq)$ literal 2378 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 diff --git a/samples/SingleProjectHostingApplication/Resources/Icons/RibbonIcon16.png b/samples/SingleProjectHostingApplication/Resources/Icons/RibbonIcon16.png index 1717399098deab12e1137479076a33b67c88c3eb..a7886545f7d7b0888f69c67c1f45253c09a532b5 100644 GIT binary patch delta 1010 zcmVL&f8C$bpVI)?|W!V&n*-= zjY4TD6*gK}U|MC%WP>3BWdV{C-e z20`Y4uogyO&;zAFVTHD|@B8z@_!s!xf0BnHgy8?go^L%5p78Md{SXR;plKQ&&mw=E zPG{q-nFlYHYzA^FNtEB@qIRu-zH%=@PMSqb*uZdz5`ZQ6_kbrnR4OG_SNuu6J$--Q zb4wrxwr^0F`S^qCfyL@Igk zbk#F;*#^U%d4GUj92&^q?wF{bRVsfAO$u3BGD8hJs6+R(J%d9PKfnCf>gwnw5Iz%qtVYI1)y8wiCl zZMP#&qnX`VQT|GA-vCxuR*I>D_okyByxZ1@|CY2o;@cqWoGhnncOKH8C~qU*0o{GHSZDg9P~3& zA?q8*I}(c79Z?{7bBUug!SrCPUV;P2p-QmD?lfhe#+ zalaQLwF0`5(v!Q(%f97oEs)T z@6052XBjU&{?xvT?8gd^Nqs(~g@Ralwh{roE`MhFJ~ooH9h7}?5`?DV^KT$8KM&uv zwb#B}`~2CO$^#AMmLh-K?2;EAg&37NIoO+_1DBA1t8czNJ$Lbf{^(DaRWzY!&=iHd zY&}N$d#oS6f8tcl;lov?+ya|#$qT6_7IY|x0ml?Zc?#crdAjk~#S41Zputg|K09h7+v!&;nl_lINUDW=)4YvN`+n>vE#qvlUu zuWP9P6aeVBxLD|P>9{jK#w%pfk1I;|k4C~Hq)$ literal 2378 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 diff --git a/samples/SingleProjectWpfModalApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png b/samples/SingleProjectWpfModalApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png index 1717399098deab12e1137479076a33b67c88c3eb..a7886545f7d7b0888f69c67c1f45253c09a532b5 100644 GIT binary patch delta 1010 zcmVL&f8C$bpVI)?|W!V&n*-= zjY4TD6*gK}U|MC%WP>3BWdV{C-e z20`Y4uogyO&;zAFVTHD|@B8z@_!s!xf0BnHgy8?go^L%5p78Md{SXR;plKQ&&mw=E zPG{q-nFlYHYzA^FNtEB@qIRu-zH%=@PMSqb*uZdz5`ZQ6_kbrnR4OG_SNuu6J$--Q zb4wrxwr^0F`S^qCfyL@Igk zbk#F;*#^U%d4GUj92&^q?wF{bRVsfAO$u3BGD8hJs6+R(J%d9PKfnCf>gwnw5Iz%qtVYI1)y8wiCl zZMP#&qnX`VQT|GA-vCxuR*I>D_okyByxZ1@|CY2o;@cqWoGhnncOKH8C~qU*0o{GHSZDg9P~3& zA?q8*I}(c79Z?{7bBUug!SrCPUV;P2p-QmD?lfhe#+ zalaQLwF0`5(v!Q(%f97oEs)T z@6052XBjU&{?xvT?8gd^Nqs(~g@Ralwh{roE`MhFJ~ooH9h7}?5`?DV^KT$8KM&uv zwb#B}`~2CO$^#AMmLh-K?2;EAg&37NIoO+_1DBA1t8czNJ$Lbf{^(DaRWzY!&=iHd zY&}N$d#oS6f8tcl;lov?+ya|#$qT6_7IY|x0ml?Zc?#crdAjk~#S41Zputg|K09h7+v!&;nl_lINUDW=)4YvN`+n>vE#qvlUu zuWP9P6aeVBxLD|P>9{jK#w%pfk1I;|k4C~Hq)$ literal 2378 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 diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png index 1717399098deab12e1137479076a33b67c88c3eb..a7886545f7d7b0888f69c67c1f45253c09a532b5 100644 GIT binary patch delta 1010 zcmVL&f8C$bpVI)?|W!V&n*-= zjY4TD6*gK}U|MC%WP>3BWdV{C-e z20`Y4uogyO&;zAFVTHD|@B8z@_!s!xf0BnHgy8?go^L%5p78Md{SXR;plKQ&&mw=E zPG{q-nFlYHYzA^FNtEB@qIRu-zH%=@PMSqb*uZdz5`ZQ6_kbrnR4OG_SNuu6J$--Q zb4wrxwr^0F`S^qCfyL@Igk zbk#F;*#^U%d4GUj92&^q?wF{bRVsfAO$u3BGD8hJs6+R(J%d9PKfnCf>gwnw5Iz%qtVYI1)y8wiCl zZMP#&qnX`VQT|GA-vCxuR*I>D_okyByxZ1@|CY2o;@cqWoGhnncOKH8C~qU*0o{GHSZDg9P~3& zA?q8*I}(c79Z?{7bBUug!SrCPUV;P2p-QmD?lfhe#+ zalaQLwF0`5(v!Q(%f97oEs)T z@6052XBjU&{?xvT?8gd^Nqs(~g@Ralwh{roE`MhFJ~ooH9h7}?5`?DV^KT$8KM&uv zwb#B}`~2CO$^#AMmLh-K?2;EAg&37NIoO+_1DBA1t8czNJ$Lbf{^(DaRWzY!&=iHd zY&}N$d#oS6f8tcl;lov?+ya|#$qT6_7IY|x0ml?Zc?#crdAjk~#S41Zputg|K09h7+v!&;nl_lINUDW=)4YvN`+n>vE#qvlUu zuWP9P6aeVBxLD|P>9{jK#w%pfk1I;|k4C~Hq)$ literal 2378 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 diff --git a/source/Nice3point.Revit.AddIn.Application/Resources/Icons/RibbonIcon16.png b/source/Nice3point.Revit.AddIn.Application/Resources/Icons/RibbonIcon16.png index 1717399098deab12e1137479076a33b67c88c3eb..a7886545f7d7b0888f69c67c1f45253c09a532b5 100644 GIT binary patch delta 1010 zcmVL&f8C$bpVI)?|W!V&n*-= zjY4TD6*gK}U|MC%WP>3BWdV{C-e z20`Y4uogyO&;zAFVTHD|@B8z@_!s!xf0BnHgy8?go^L%5p78Md{SXR;plKQ&&mw=E zPG{q-nFlYHYzA^FNtEB@qIRu-zH%=@PMSqb*uZdz5`ZQ6_kbrnR4OG_SNuu6J$--Q zb4wrxwr^0F`S^qCfyL@Igk zbk#F;*#^U%d4GUj92&^q?wF{bRVsfAO$u3BGD8hJs6+R(J%d9PKfnCf>gwnw5Iz%qtVYI1)y8wiCl zZMP#&qnX`VQT|GA-vCxuR*I>D_okyByxZ1@|CY2o;@cqWoGhnncOKH8C~qU*0o{GHSZDg9P~3& zA?q8*I}(c79Z?{7bBUug!SrCPUV;P2p-QmD?lfhe#+ zalaQLwF0`5(v!Q(%f97oEs)T z@6052XBjU&{?xvT?8gd^Nqs(~g@Ralwh{roE`MhFJ~ooH9h7}?5`?DV^KT$8KM&uv zwb#B}`~2CO$^#AMmLh-K?2;EAg&37NIoO+_1DBA1t8czNJ$Lbf{^(DaRWzY!&=iHd zY&}N$d#oS6f8tcl;lov?+ya|#$qT6_7IY|x0ml?Zc?#crdAjk~#S41Zputg|K09h7+v!&;nl_lINUDW=)4YvN`+n>vE#qvlUu zuWP9P6aeVBxLD|P>9{jK#w%pfk1I;|k4C~Hq)$ literal 2378 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 diff --git a/source/Nice3point.Revit.AddIn.Solution/install/Resources/Icons/BackgroundImage.png b/source/Nice3point.Revit.AddIn.Solution/install/Resources/Icons/BackgroundImage.png index ffedfde462f5c973780e4a8eef47344a8a9a6dd1..1b8cdf5e4e1d69c417112798ddeb91d2293995c1 100644 GIT binary patch literal 23500 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 V^%JnmZJP{B^|_W(m4bQL{{U}gt1SQk literal 1028 zcmeAS@N?(olHy`uVBq!ia0y~yV0;T?TX8S}NugQO`hgT@fk$L90|U1Z2s2)~Tla^7 zfq9#!i(^Q|oVRy3df$#@I8a!9XM&H|$=>&KF+fyh-xI0=+n6FX0_Img}0PWF>v7K5t$3;ipgQv+r?=AKvy) zzhAvy{cl}8Q^T2G$HLhsWLoh}$iX1@>B>H4n?>un>RzYRCl@A~o!Vo?_d&zz?!AK-cWn88r>>a%-wrAOk8_)le@_HI3Jvs6Z5 z)-~7NJAR&iu^6av>nXnnuezS|F)mtZu76x=)#bNSPkBCgW5p-n+r@r3JALh~NbM)` z3m!9EoD*N;V;Hh>PRkpfON9*?m!4V_l)4@V={puJzh86{$htz7d9x-}frKAf?9XWL zx%~3mw{NR8^{x~)SggBsz47r9X-A;k5A7X~U%s$#kokJ7{Xikt`DMW|OM#kexazEr zJUaAUa~;qEi>So?#rI^=WN86t!+&1;&Mu($BysAYJ6}GhU)B%O zT?H~}t^M(R^7GF;|5n!B&As{DTGk)`ms%*UzWny;xpRl(-!6O1Ah_gq(EO0u?Z@}C zo?8dv+9|$%uy6azexPfeSl^wvudA-8dA+b9AY9(L{7L(g7@+XdiioG{u7E`w)%)*z zO)rvV=a~9#>zwbmbk!f{@m>WgcYb#~IA?48eLFerr@&y#y5QVC`DaYgmeNi8H|{X7 z{v|RuFMrLH*A@qoEBA){sF8a6=H$O)5vKBB)hQ?V796^B`L=z3^yiDgKxg$oefPUI zFRLyfPWtJJkAff}$A1}od*tOyUhmx#VzKtkl=5!=Yc*4VCOS;;pS%D4-aiM`L%Xy; zFP}QseD?Y_`N|tFzj;-koWKtZmI;otE!}H8Z~IHzUy)n&^Uiqs6 z6N`78ta-QW+3VH%@9PTEs$QLawpx)HtgZXHe%n2l`=&F`Pu&*or)_<7>QDXuoAyM@ z?ECO($^G}gxfp}8W4BDsT3mMR*Q+nLsA^<_VwZO&nM~Yi}IbyK5V}R7^PeE zZhd{0y7%M4dpqV-T1}P7W#y~By6>Of{OS+(%(Cn!%w9icxCx9LY*^CF(C{OF?9yV6 Urd{WM0kbuOr>mdKI;Vst0OuJ1od5s; diff --git a/source/Nice3point.Revit.AddIn.Solution/install/Resources/Icons/ShellIcon.ico b/source/Nice3point.Revit.AddIn.Solution/install/Resources/Icons/ShellIcon.ico index 940e075dd275b732c6a23d9d7d70b1a2591c99a7..096638367487df927c1c2c1ab1289bd2c2822cea 100644 GIT binary patch literal 67646 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 literal 32988 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 literal 2378 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 From 6f3e9819771fabf9ebb64ce63cd16a968196e113 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Fri, 15 Mar 2024 18:46:58 +0300 Subject: [PATCH 04/21] Rename Inject option --- samples/Readme.md | 4 ++-- .../.template.config/template.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/Readme.md b/samples/Readme.md index af94cbb..ca07258 100644 --- a/samples/Readme.md +++ b/samples/Readme.md @@ -79,5 +79,5 @@ Just create a project, and it will already be ready to run in Revit. |-------------------------|---------------------------------------------------|----------------------------------------| | Revit Solution | Bundle support
Installer support
Pipeline | Enabled
Enabled
GitHub actions | | Revit AddIn Application | Serilog support
AddIn type
IoC | Enabled
Application
Hosting | -| Revit AddIn Module | Inject view
User interface | Enabled
Modal | -| Revit AddIn Module | Inject view
User interface | Enabled
Modeless | \ No newline at end of file +| Revit AddIn Module | Inject dependencies
User interface | Enabled
Modal | +| Revit AddIn Module | Inject dependencies
User interface | Enabled
Modeless | \ No newline at end of file diff --git a/source/Nice3point.Revit.AddIn.Module/.template.config/template.json b/source/Nice3point.Revit.AddIn.Module/.template.config/template.json index b30e0c3..7428c01 100644 --- a/source/Nice3point.Revit.AddIn.Module/.template.config/template.json +++ b/source/Nice3point.Revit.AddIn.Module/.template.config/template.json @@ -47,9 +47,9 @@ }, "ioc": { "type": "parameter", - "displayName": "Inject view", + "displayName": "Inject dependencies", "datatype": "bool", - "description": "Inject a view into a command to call from the host application. Applies if the user interface is enabled", + "description": "Inject dependencies into a command to call from the host application. Applies if the user interface is enabled", "defaultValue": "false", "isEnabled": "window != \"none\"" }, From 93ec754894bfff0bfabc3bb5da40a94ccd956ebf Mon Sep 17 00:00:00 2001 From: Nice3point Date: Fri, 15 Mar 2024 18:48:04 +0300 Subject: [PATCH 05/21] Add log summary --- .../Config/LoggerConfigurator.cs | 18 ++++++++++++++++++ .../Config/LoggerConfigurator.cs | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/source/Nice3point.Revit.AddIn.Application/Config/LoggerConfigurator.cs b/source/Nice3point.Revit.AddIn.Application/Config/LoggerConfigurator.cs index cf4b2cd..f3c6c6b 100644 --- a/source/Nice3point.Revit.AddIn.Application/Config/LoggerConfigurator.cs +++ b/source/Nice3point.Revit.AddIn.Application/Config/LoggerConfigurator.cs @@ -9,6 +9,24 @@ namespace Nice3point.Revit.AddIn.Config; +///

+/// Application logging conguration +/// +/// +/// +#if (Container) +/// public class Class(ILogger logger) +/// { +/// logger.Information("Message"); +/// } +#elseif (Hosting) +/// public class Class(ILogger<Class> logger) +/// { +/// logger.LogInformation("Message"); +/// } +#endif +/// +/// public static class LoggerConfigurator { #if (Container) diff --git a/source/Nice3point.Revit.AddIn/Config/LoggerConfigurator.cs b/source/Nice3point.Revit.AddIn/Config/LoggerConfigurator.cs index cf4b2cd..f3c6c6b 100644 --- a/source/Nice3point.Revit.AddIn/Config/LoggerConfigurator.cs +++ b/source/Nice3point.Revit.AddIn/Config/LoggerConfigurator.cs @@ -9,6 +9,24 @@ namespace Nice3point.Revit.AddIn.Config; +/// +/// Application logging conguration +/// +/// +/// +#if (Container) +/// public class Class(ILogger logger) +/// { +/// logger.Information("Message"); +/// } +#elseif (Hosting) +/// public class Class(ILogger<Class> logger) +/// { +/// logger.LogInformation("Message"); +/// } +#endif +/// +/// public static class LoggerConfigurator { #if (Container) From b272889a621a060162d16690f95f4f3db4f78f28 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Fri, 15 Mar 2024 22:20:24 +0300 Subject: [PATCH 06/21] Update shields url --- Readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Readme.md b/Readme.md index ed000d8..d74af3c 100644 --- a/Readme.md +++ b/Readme.md @@ -7,9 +7,9 @@ ## Create your Add-In for Revit on the .Net platform -![](https://img.shields.io/nuget/v/Nice3point.Revit.Templates?style=for-the-badge) -![](https://img.shields.io/nuget/dt/Nice3point.Revit.Templates?style=for-the-badge) -![](https://img.shields.io/github/last-commit/Nice3point/RevitTemplate/develop?style=for-the-badge) +[![Nuget](https://img.shields.io/nuget/v/Nice3point.Revit.Templates?style=for-the-badge)](https://www.nuget.org/packages/Nice3point.Revit.Templates) +[![Downloads](https://img.shields.io/nuget/dt/Nice3point.Revit.Templates?style=for-the-badge)](https://www.nuget.org/packages/Nice3point.Revit.Templates) +[![Last Commit](https://img.shields.io/github/last-commit/Nice3point/RevitTemplate/develop?style=for-the-badge)](https://github.com/Nice3point/RevitTemplate/commits/main) This repository contains a project templates for creating Revit Add-In From b9c43441506f51a9b910496198d1500624bdaaef Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 16 Mar 2024 02:39:45 +0300 Subject: [PATCH 07/21] Update Readme.md --- source/Nice3point.Revit.AddIn.Solution/Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Nice3point.Revit.AddIn.Solution/Readme.md b/source/Nice3point.Revit.AddIn.Solution/Readme.md index b35ba36..02daf86 100644 --- a/source/Nice3point.Revit.AddIn.Solution/Readme.md +++ b/source/Nice3point.Revit.AddIn.Solution/Readme.md @@ -16,7 +16,7 @@ frameworks, you can do so by visiting the following: * [.NET Framework 4.8](https://dotnet.microsoft.com/download/dotnet-framework/net48) * [.NET 8](https://dotnet.microsoft.com/en-us/download/dotnet) -After installing necessary frameworks, clone this repository to your local machine and navigate to the project directory. +After installing the necessary frameworks, clone this repository to your local machine and navigate to the project directory. ### Building From a5559d6d8596c0270275efe32dfebdda467bb748 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 16 Mar 2024 02:40:00 +0300 Subject: [PATCH 08/21] Upgrade dependencies --- build/Build.Compile.cs | 2 +- build/Build.Pack.cs | 2 +- build/Build.csproj | 4 ++-- source/Nice3point.Revit.AddIn.Solution/build/Build.csproj | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build/Build.Compile.cs b/build/Build.Compile.cs index f1f2267..1d21984 100644 --- a/build/Build.Compile.cs +++ b/build/Build.Compile.cs @@ -11,7 +11,7 @@ sealed partial class Build foreach (var configuration in GlobBuildConfigurations()) DotNetBuild(settings => settings .SetConfiguration(configuration) - .SetVerbosity(DotNetVerbosity.Minimal)); + .SetVerbosity(DotNetVerbosity.minimal)); }); List GlobBuildConfigurations() diff --git a/build/Build.Pack.cs b/build/Build.Pack.cs index 04efd57..2943c63 100644 --- a/build/Build.Pack.cs +++ b/build/Build.Pack.cs @@ -16,7 +16,7 @@ sealed partial class Build .SetConfiguration(configuration) .SetVersion(Version) .SetOutputDirectory(ArtifactsDirectory) - .SetVerbosity(DotNetVerbosity.Minimal) + .SetVerbosity(DotNetVerbosity.minimal) .SetPackageReleaseNotes(CreateNugetChangelog())); }); diff --git a/build/Build.csproj b/build/Build.csproj index c7771cb..f053ed4 100644 --- a/build/Build.csproj +++ b/build/Build.csproj @@ -6,14 +6,14 @@ CS0649;CS0169 latest true - net7.0 + net8.0 .. .. 1 - + diff --git a/source/Nice3point.Revit.AddIn.Solution/build/Build.csproj b/source/Nice3point.Revit.AddIn.Solution/build/Build.csproj index 96b7956..f17484c 100644 --- a/source/Nice3point.Revit.AddIn.Solution/build/Build.csproj +++ b/source/Nice3point.Revit.AddIn.Solution/build/Build.csproj @@ -14,7 +14,7 @@ - + From e7650ef78b2dba0942b16ac14321123c34944e9d Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 16 Mar 2024 02:46:42 +0300 Subject: [PATCH 09/21] Edit description --- source/Nice3point.Revit.AddIn/.template.config/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Nice3point.Revit.AddIn/.template.config/template.json b/source/Nice3point.Revit.AddIn/.template.config/template.json index 8409562..0666424 100644 --- a/source/Nice3point.Revit.AddIn/.template.config/template.json +++ b/source/Nice3point.Revit.AddIn/.template.config/template.json @@ -6,7 +6,7 @@ "identity": "Nice3point.Revit.AddIn", "defaultName": "RevitAddIn", "sourceName": "Nice3point.Revit.AddIn", - "description": "Template for creating a Revit add-in", + "description": "Template for creating a single project Revit add-in", "classifications": [ "Revit", "AddIn", From 8909f5686993df3f376400c576ce8972f2a5638c Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 16 Mar 2024 02:47:03 +0300 Subject: [PATCH 10/21] Bump version --- Changelog.md | 6 ++++++ build/Build.Configuration.cs | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Changelog.md b/Changelog.md index 262ac08..4adcf4e 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,3 +1,9 @@ +# 4.0.0-preview.3.0 + +- New icons +- Renamed some options +- Added summary for logger + # 4.0.0-preview.2.0 - Downgrade dependencies for Revit 2025 compability diff --git a/build/Build.Configuration.cs b/build/Build.Configuration.cs index c3be1ce..ec07e8e 100644 --- a/build/Build.Configuration.cs +++ b/build/Build.Configuration.cs @@ -1,6 +1,6 @@ sealed partial class Build { - const string Version = "4.0.0-preview.2.0"; + const string Version = "4.0.0-preview.3.0"; readonly AbsolutePath ArtifactsDirectory = RootDirectory / "output"; readonly AbsolutePath ChangeLogPath = RootDirectory / "Changelog.md"; From 787bf7721891acdf169a87d5379c45a426468649 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Mon, 18 Mar 2024 13:15:38 +0300 Subject: [PATCH 11/21] Update Readme.md --- samples/Readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/Readme.md b/samples/Readme.md index ca07258..b2ff8fd 100644 --- a/samples/Readme.md +++ b/samples/Readme.md @@ -16,7 +16,7 @@ Just create a project, and it will already be ready to run in Revit. - **[Single-project WPF Application (Modal)](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectWpfModalApplication)** - an add-in with a user interface that blocks Revit. - Suitable for those who are starting to learn WPF or already working with it. + Suitable for developers who are starting to learn WPF or already working with it. It contains all necessary dependencies and implements the MVVM pattern. | Templates | Creation options | Value | @@ -25,7 +25,7 @@ Just create a project, and it will already be ready to run in Revit. - **[Single-project WPF Application (Modeless)](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectWpfModelessApplication)** - an add-in with a user interface that does not block Revit. - Suitable for those who want to implement a modeless window. + Suitable for developers who want to implement a modeless window. Contains all necessary dependencies, examples of using **IExternalEventHandler** (calling Revit API from another thread) and asynchronous calls. It implements the MVVM pattern. @@ -36,7 +36,7 @@ Just create a project, and it will already be ready to run in Revit. ## Advanced - **[Single-project Application with Dependency Injection](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectDIApplication)** - - option for developers who need a simple implementation of Dependency injection using service containers with `Microsoft.Extensions.DependencyInjection` package/ + option for developers who need a simple implementation of Dependency injection using service containers with `Microsoft.Extensions.DependencyInjection` package. | Template | Creation options | Value | |-------------|---------------------------------------|---------------------------------------------| From e5e1fdc7ee05985da09aa59451162b1ca5eac912 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Wed, 20 Mar 2024 11:11:32 +0300 Subject: [PATCH 12/21] Update Readme.md --- samples/Readme.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/samples/Readme.md b/samples/Readme.md index b2ff8fd..5c659ac 100644 --- a/samples/Readme.md +++ b/samples/Readme.md @@ -1,3 +1,5 @@ +**Relevant for Beta version**: `dotnet new install Nice3point.Revit.Templates::4.0.0-preview.3.0` + Add-in examples created with these templates are suitable for beginners and advanced users. You can create your own add-ins with different settings or completely empty. Templates will take care of project configuration and multi Revit version compability. @@ -24,7 +26,7 @@ Just create a project, and it will already be ready to run in Revit. | Revit AddIn | AddIn type
User interface | Application
Modal | - **[Single-project WPF Application (Modeless)](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectWpfModelessApplication)** - - an add-in with a user interface that does not block Revit. + an add-in with a user interface that does not block Revit execution. Suitable for developers who want to implement a modeless window. Contains all necessary dependencies, examples of using **IExternalEventHandler** (calling Revit API from another thread) and asynchronous calls. It implements the MVVM pattern. From 0e02aa159011aff746cc6794b78a5323562b3c9b Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 23 Mar 2024 16:40:40 +0300 Subject: [PATCH 13/21] Update Samples --- .../RevitAddIn/Application.cs | 12 ++++----- .../source/ModalModule/ModalModule.csproj | 8 +++--- .../ModelessModule/ModelessModule.csproj | 6 +++-- .../source/RevitAddIn/Application.cs | 12 ++++----- .../source/RevitAddIn/RevitAddIn.csproj | 7 ++--- samples/Readme.md | 24 ++++++++---------- .../RevitAddIn/Application.cs | 6 ++--- .../{ => RevitAddIn}/Application.cs | 6 ++--- .../Commands/StartupCommand.cs | 0 .../{ => RevitAddIn}/Host.cs | 0 .../Resources/Icons/RibbonIcon16.png | Bin .../Resources/Icons/RibbonIcon32.png | Bin .../{ => RevitAddIn}/RevitAddIn.addin | 0 .../{ => RevitAddIn}/RevitAddIn.csproj | 1 + .../ViewModels/RevitAddInViewModel.cs | 0 .../Converters/BoolVisibilityConverter.cs | 0 .../Converters/EnumVisibilityConverter.cs | 0 .../Views/Converters/InverseBoolConverter.cs | 0 .../InverseBoolVisibilityConverter.cs | 0 .../Views/RevitAddInView.xaml | 0 .../Views/RevitAddInView.xaml.cs | 0 .../SingleProjectDIApplication.sln | 2 +- .../{ => RevitAddIn}/Application.cs | 6 ++--- .../Commands/StartupCommand.cs | 0 .../{ => RevitAddIn}/Host.cs | 0 .../Resources/Icons/RibbonIcon16.png | Bin .../Resources/Icons/RibbonIcon32.png | Bin .../{ => RevitAddIn}/RevitAddIn.addin | 0 .../{ => RevitAddIn}/RevitAddIn.csproj | 3 ++- .../ViewModels/RevitAddInViewModel.cs | 0 .../Converters/BoolVisibilityConverter.cs | 0 .../Converters/EnumVisibilityConverter.cs | 0 .../Views/Converters/InverseBoolConverter.cs | 0 .../InverseBoolVisibilityConverter.cs | 0 .../Views/RevitAddInView.xaml | 0 .../Views/RevitAddInView.xaml.cs | 0 .../SingleProjectHostingApplication.sln | 2 +- .../RevitAddIn/Application.cs | 6 ++--- .../RevitAddIn/Application.cs | 6 ++--- 39 files changed, 56 insertions(+), 51 deletions(-) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Application.cs (63%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Commands/StartupCommand.cs (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Host.cs (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Resources/Icons/RibbonIcon16.png (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Resources/Icons/RibbonIcon32.png (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/RevitAddIn.addin (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/RevitAddIn.csproj (97%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/ViewModels/RevitAddInViewModel.cs (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Views/Converters/BoolVisibilityConverter.cs (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Views/Converters/EnumVisibilityConverter.cs (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Views/Converters/InverseBoolConverter.cs (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Views/Converters/InverseBoolVisibilityConverter.cs (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Views/RevitAddInView.xaml (100%) rename samples/SingleProjectDIApplication/{ => RevitAddIn}/Views/RevitAddInView.xaml.cs (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Application.cs (66%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Commands/StartupCommand.cs (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Host.cs (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Resources/Icons/RibbonIcon16.png (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Resources/Icons/RibbonIcon32.png (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/RevitAddIn.addin (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/RevitAddIn.csproj (97%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/ViewModels/RevitAddInViewModel.cs (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Views/Converters/BoolVisibilityConverter.cs (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Views/Converters/EnumVisibilityConverter.cs (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Views/Converters/InverseBoolConverter.cs (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Views/Converters/InverseBoolVisibilityConverter.cs (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Views/RevitAddInView.xaml (100%) rename samples/SingleProjectHostingApplication/{ => RevitAddIn}/Views/RevitAddInView.xaml.cs (100%) diff --git a/samples/MultiProjectApplication/RevitAddIn/Application.cs b/samples/MultiProjectApplication/RevitAddIn/Application.cs index 0187905..f7dabc5 100644 --- a/samples/MultiProjectApplication/RevitAddIn/Application.cs +++ b/samples/MultiProjectApplication/RevitAddIn/Application.cs @@ -17,12 +17,12 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "RevitAddIn"); - var showButton = panel.AddPushButton("Execute"); - showButton.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); - var showButton2 = panel.AddPushButton("Execute"); - showButton2.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton2.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); } } \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModalModule/ModalModule.csproj b/samples/MultiProjectSolution/source/ModalModule/ModalModule.csproj index 2d7cddb..a5e9f97 100644 --- a/samples/MultiProjectSolution/source/ModalModule/ModalModule.csproj +++ b/samples/MultiProjectSolution/source/ModalModule/ModalModule.csproj @@ -64,14 +64,16 @@ - - - + + + + + diff --git a/samples/MultiProjectSolution/source/ModelessModule/ModelessModule.csproj b/samples/MultiProjectSolution/source/ModelessModule/ModelessModule.csproj index b51fd85..56febb1 100644 --- a/samples/MultiProjectSolution/source/ModelessModule/ModelessModule.csproj +++ b/samples/MultiProjectSolution/source/ModelessModule/ModelessModule.csproj @@ -69,8 +69,10 @@ - - + + + + diff --git a/samples/MultiProjectSolution/source/RevitAddIn/Application.cs b/samples/MultiProjectSolution/source/RevitAddIn/Application.cs index d6bb764..11dc315 100644 --- a/samples/MultiProjectSolution/source/RevitAddIn/Application.cs +++ b/samples/MultiProjectSolution/source/RevitAddIn/Application.cs @@ -24,12 +24,12 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "RevitAddIn"); - var showButton = panel.AddPushButton("Show\nModal window"); - showButton.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Show\nModal window") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); - var showButton2 = panel.AddPushButton("Show\nModelessWindow"); - showButton2.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton2.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Show\nModelessWindow") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); } } \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/RevitAddIn/RevitAddIn.csproj b/samples/MultiProjectSolution/source/RevitAddIn/RevitAddIn.csproj index cd2f2a3..e8b28f3 100644 --- a/samples/MultiProjectSolution/source/RevitAddIn/RevitAddIn.csproj +++ b/samples/MultiProjectSolution/source/RevitAddIn/RevitAddIn.csproj @@ -75,9 +75,10 @@ - - - + + + + diff --git a/samples/Readme.md b/samples/Readme.md index 5c659ac..918eaaa 100644 --- a/samples/Readme.md +++ b/samples/Readme.md @@ -1,5 +1,3 @@ -**Relevant for Beta version**: `dotnet new install Nice3point.Revit.Templates::4.0.0-preview.3.0` - Add-in examples created with these templates are suitable for beginners and advanced users. You can create your own add-ins with different settings or completely empty. Templates will take care of project configuration and multi Revit version compability. @@ -8,7 +6,7 @@ Just create a project, and it will already be ready to run in Revit. ## Basic -- **[Single-project Application](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectApplication)** - +- **[Single-project Application](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectApplication)** — a simple add-in without a user interface, perfect for beginners. It contains only one command and a button on the Revit ribbon to run it. @@ -16,8 +14,8 @@ Just create a project, and it will already be ready to run in Revit. |-------------|-------------------------------|----------------------| | Revit AddIn | AddIn type
User interface | Application
None | -- **[Single-project WPF Application (Modal)](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectWpfModalApplication)** - - an add-in with a user interface that blocks Revit. +- **[Single-project WPF Application (Modal)](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectWpfModalApplication)** — + an add-in with a user interface that blocks Revit UI. Suitable for developers who are starting to learn WPF or already working with it. It contains all necessary dependencies and implements the MVVM pattern. @@ -25,8 +23,8 @@ Just create a project, and it will already be ready to run in Revit. |-------------|-------------------------------|-----------------------| | Revit AddIn | AddIn type
User interface | Application
Modal | -- **[Single-project WPF Application (Modeless)](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectWpfModelessApplication)** - - an add-in with a user interface that does not block Revit execution. +- **[Single-project WPF Application (Modeless)](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectWpfModelessApplication)** — + an add-in with a user interface that does not block Revit UI. Suitable for developers who want to implement a modeless window. Contains all necessary dependencies, examples of using **IExternalEventHandler** (calling Revit API from another thread) and asynchronous calls. It implements the MVVM pattern. @@ -37,21 +35,21 @@ Just create a project, and it will already be ready to run in Revit. ## Advanced -- **[Single-project Application with Dependency Injection](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectDIApplication)** - +- **[Single-project Application with Dependency Injection](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectDIApplication)** — option for developers who need a simple implementation of Dependency injection using service containers with `Microsoft.Extensions.DependencyInjection` package. | Template | Creation options | Value | |-------------|---------------------------------------|---------------------------------------------| | Revit AddIn | AddIn type
User interface
IoC | Application
Modal
Service container | -- **[Single-project Application with Hosting](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectHostingApplication)** - +- **[Single-project Application with Hosting](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectHostingApplication)** — option for developers who need an advanced IoC option with logging, metrics, options and configurations using `Microsoft.Extensions.Hosting` package. | Template | Creation options | Value | |-------------|---------------------------------------|-----------------------------------| | Revit AddIn | AddIn type
User interface
IoC | Application
Modal
Hosting | -- **[Multi-project Application](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/MultiProjectApplication)** - +- **[Multi-project Application](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/MultiProjectApplication)** — modular application, where each add-in is placed in a separate project, and orchestrated by main add-in that connects all modules to the Revit ribbon. Including sample with **ExtensibleStorage** for a database. @@ -63,19 +61,19 @@ Just create a project, and it will already be ready to run in Revit. ## Enterprise -- **[Multi-project Solution with Hosting](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/MultiProjectSolution)** - +- **[Multi-project Solution with Hosting](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/MultiProjectSolution)** — an example suitable for enterprise development with build system implementation and automation of all application production processes. Included: - Solution structure - Installer producing - - Bundle producing (publishing into Autodesk Store or Forge) + - Bundle producing (publishing to Autodesk Store or Forge) - CI/CD using GitHub - MVVM pattern implementation with modal and modeless windows - Dependency Injection implementation using Hosting - Logging - **IOptions\** usages for serialization - - **IExternalEvents** usages for calling Revit API from async code or another thread + - **IExternalEvents** usages for calling Revit API from async code | Template | Creation options | Value | |-------------------------|---------------------------------------------------|----------------------------------------| diff --git a/samples/SingleProjectApplication/RevitAddIn/Application.cs b/samples/SingleProjectApplication/RevitAddIn/Application.cs index 2beca66..2392cdf 100644 --- a/samples/SingleProjectApplication/RevitAddIn/Application.cs +++ b/samples/SingleProjectApplication/RevitAddIn/Application.cs @@ -18,8 +18,8 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "RevitAddIn"); - var showButton = panel.AddPushButton("Execute"); - showButton.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); } } \ No newline at end of file diff --git a/samples/SingleProjectDIApplication/Application.cs b/samples/SingleProjectDIApplication/RevitAddIn/Application.cs similarity index 63% rename from samples/SingleProjectDIApplication/Application.cs rename to samples/SingleProjectDIApplication/RevitAddIn/Application.cs index 33330e1..22d7a03 100644 --- a/samples/SingleProjectDIApplication/Application.cs +++ b/samples/SingleProjectDIApplication/RevitAddIn/Application.cs @@ -19,8 +19,8 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "RevitAddIn"); - var showButton = panel.AddPushButton("Execute"); - showButton.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); } } \ No newline at end of file diff --git a/samples/SingleProjectDIApplication/Commands/StartupCommand.cs b/samples/SingleProjectDIApplication/RevitAddIn/Commands/StartupCommand.cs similarity index 100% rename from samples/SingleProjectDIApplication/Commands/StartupCommand.cs rename to samples/SingleProjectDIApplication/RevitAddIn/Commands/StartupCommand.cs diff --git a/samples/SingleProjectDIApplication/Host.cs b/samples/SingleProjectDIApplication/RevitAddIn/Host.cs similarity index 100% rename from samples/SingleProjectDIApplication/Host.cs rename to samples/SingleProjectDIApplication/RevitAddIn/Host.cs diff --git a/samples/SingleProjectDIApplication/Resources/Icons/RibbonIcon16.png b/samples/SingleProjectDIApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png similarity index 100% rename from samples/SingleProjectDIApplication/Resources/Icons/RibbonIcon16.png rename to samples/SingleProjectDIApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png diff --git a/samples/SingleProjectDIApplication/Resources/Icons/RibbonIcon32.png b/samples/SingleProjectDIApplication/RevitAddIn/Resources/Icons/RibbonIcon32.png similarity index 100% rename from samples/SingleProjectDIApplication/Resources/Icons/RibbonIcon32.png rename to samples/SingleProjectDIApplication/RevitAddIn/Resources/Icons/RibbonIcon32.png diff --git a/samples/SingleProjectDIApplication/RevitAddIn.addin b/samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.addin similarity index 100% rename from samples/SingleProjectDIApplication/RevitAddIn.addin rename to samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.addin diff --git a/samples/SingleProjectDIApplication/RevitAddIn.csproj b/samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.csproj similarity index 97% rename from samples/SingleProjectDIApplication/RevitAddIn.csproj rename to samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.csproj index 0805c5f..269b1bc 100644 --- a/samples/SingleProjectDIApplication/RevitAddIn.csproj +++ b/samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.csproj @@ -75,6 +75,7 @@ +
diff --git a/samples/SingleProjectDIApplication/ViewModels/RevitAddInViewModel.cs b/samples/SingleProjectDIApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs similarity index 100% rename from samples/SingleProjectDIApplication/ViewModels/RevitAddInViewModel.cs rename to samples/SingleProjectDIApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs diff --git a/samples/SingleProjectDIApplication/Views/Converters/BoolVisibilityConverter.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs similarity index 100% rename from samples/SingleProjectDIApplication/Views/Converters/BoolVisibilityConverter.cs rename to samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs diff --git a/samples/SingleProjectDIApplication/Views/Converters/EnumVisibilityConverter.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs similarity index 100% rename from samples/SingleProjectDIApplication/Views/Converters/EnumVisibilityConverter.cs rename to samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs diff --git a/samples/SingleProjectDIApplication/Views/Converters/InverseBoolConverter.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs similarity index 100% rename from samples/SingleProjectDIApplication/Views/Converters/InverseBoolConverter.cs rename to samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs diff --git a/samples/SingleProjectDIApplication/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs similarity index 100% rename from samples/SingleProjectDIApplication/Views/Converters/InverseBoolVisibilityConverter.cs rename to samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs diff --git a/samples/SingleProjectDIApplication/Views/RevitAddInView.xaml b/samples/SingleProjectDIApplication/RevitAddIn/Views/RevitAddInView.xaml similarity index 100% rename from samples/SingleProjectDIApplication/Views/RevitAddInView.xaml rename to samples/SingleProjectDIApplication/RevitAddIn/Views/RevitAddInView.xaml diff --git a/samples/SingleProjectDIApplication/Views/RevitAddInView.xaml.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/RevitAddInView.xaml.cs similarity index 100% rename from samples/SingleProjectDIApplication/Views/RevitAddInView.xaml.cs rename to samples/SingleProjectDIApplication/RevitAddIn/Views/RevitAddInView.xaml.cs diff --git a/samples/SingleProjectDIApplication/SingleProjectDIApplication.sln b/samples/SingleProjectDIApplication/SingleProjectDIApplication.sln index 6579547..281fdc3 100644 --- a/samples/SingleProjectDIApplication/SingleProjectDIApplication.sln +++ b/samples/SingleProjectDIApplication/SingleProjectDIApplication.sln @@ -1,6 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitAddIn", "RevitAddIn.csproj", "{30BF8F80-47F2-4314-8217-09CA89D9817F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitAddIn", "RevitAddIn/RevitAddIn.csproj", "{30BF8F80-47F2-4314-8217-09CA89D9817F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/samples/SingleProjectHostingApplication/Application.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Application.cs similarity index 66% rename from samples/SingleProjectHostingApplication/Application.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/Application.cs index 71ed747..8824eea 100644 --- a/samples/SingleProjectHostingApplication/Application.cs +++ b/samples/SingleProjectHostingApplication/RevitAddIn/Application.cs @@ -24,8 +24,8 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "RevitAddIn"); - var showButton = panel.AddPushButton("Execute"); - showButton.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); } } \ No newline at end of file diff --git a/samples/SingleProjectHostingApplication/Commands/StartupCommand.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Commands/StartupCommand.cs similarity index 100% rename from samples/SingleProjectHostingApplication/Commands/StartupCommand.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/Commands/StartupCommand.cs diff --git a/samples/SingleProjectHostingApplication/Host.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Host.cs similarity index 100% rename from samples/SingleProjectHostingApplication/Host.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/Host.cs diff --git a/samples/SingleProjectHostingApplication/Resources/Icons/RibbonIcon16.png b/samples/SingleProjectHostingApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png similarity index 100% rename from samples/SingleProjectHostingApplication/Resources/Icons/RibbonIcon16.png rename to samples/SingleProjectHostingApplication/RevitAddIn/Resources/Icons/RibbonIcon16.png diff --git a/samples/SingleProjectHostingApplication/Resources/Icons/RibbonIcon32.png b/samples/SingleProjectHostingApplication/RevitAddIn/Resources/Icons/RibbonIcon32.png similarity index 100% rename from samples/SingleProjectHostingApplication/Resources/Icons/RibbonIcon32.png rename to samples/SingleProjectHostingApplication/RevitAddIn/Resources/Icons/RibbonIcon32.png diff --git a/samples/SingleProjectHostingApplication/RevitAddIn.addin b/samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.addin similarity index 100% rename from samples/SingleProjectHostingApplication/RevitAddIn.addin rename to samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.addin diff --git a/samples/SingleProjectHostingApplication/RevitAddIn.csproj b/samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.csproj similarity index 97% rename from samples/SingleProjectHostingApplication/RevitAddIn.csproj rename to samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.csproj index ffc6d2a..d156941 100644 --- a/samples/SingleProjectHostingApplication/RevitAddIn.csproj +++ b/samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.csproj @@ -75,7 +75,8 @@ - + +
diff --git a/samples/SingleProjectHostingApplication/ViewModels/RevitAddInViewModel.cs b/samples/SingleProjectHostingApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs similarity index 100% rename from samples/SingleProjectHostingApplication/ViewModels/RevitAddInViewModel.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs diff --git a/samples/SingleProjectHostingApplication/Views/Converters/BoolVisibilityConverter.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs similarity index 100% rename from samples/SingleProjectHostingApplication/Views/Converters/BoolVisibilityConverter.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs diff --git a/samples/SingleProjectHostingApplication/Views/Converters/EnumVisibilityConverter.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs similarity index 100% rename from samples/SingleProjectHostingApplication/Views/Converters/EnumVisibilityConverter.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs diff --git a/samples/SingleProjectHostingApplication/Views/Converters/InverseBoolConverter.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs similarity index 100% rename from samples/SingleProjectHostingApplication/Views/Converters/InverseBoolConverter.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs diff --git a/samples/SingleProjectHostingApplication/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs similarity index 100% rename from samples/SingleProjectHostingApplication/Views/Converters/InverseBoolVisibilityConverter.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs diff --git a/samples/SingleProjectHostingApplication/Views/RevitAddInView.xaml b/samples/SingleProjectHostingApplication/RevitAddIn/Views/RevitAddInView.xaml similarity index 100% rename from samples/SingleProjectHostingApplication/Views/RevitAddInView.xaml rename to samples/SingleProjectHostingApplication/RevitAddIn/Views/RevitAddInView.xaml diff --git a/samples/SingleProjectHostingApplication/Views/RevitAddInView.xaml.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/RevitAddInView.xaml.cs similarity index 100% rename from samples/SingleProjectHostingApplication/Views/RevitAddInView.xaml.cs rename to samples/SingleProjectHostingApplication/RevitAddIn/Views/RevitAddInView.xaml.cs diff --git a/samples/SingleProjectHostingApplication/SingleProjectHostingApplication.sln b/samples/SingleProjectHostingApplication/SingleProjectHostingApplication.sln index 3ecd9d2..e48d21b 100644 --- a/samples/SingleProjectHostingApplication/SingleProjectHostingApplication.sln +++ b/samples/SingleProjectHostingApplication/SingleProjectHostingApplication.sln @@ -1,6 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitAddIn", "RevitAddIn.csproj", "{9BC40E8B-C8EE-482F-A74F-14958535E1D6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RevitAddIn", "RevitAddIn\RevitAddIn.csproj", "{9BC40E8B-C8EE-482F-A74F-14958535E1D6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/samples/SingleProjectWpfModalApplication/RevitAddIn/Application.cs b/samples/SingleProjectWpfModalApplication/RevitAddIn/Application.cs index 2beca66..2392cdf 100644 --- a/samples/SingleProjectWpfModalApplication/RevitAddIn/Application.cs +++ b/samples/SingleProjectWpfModalApplication/RevitAddIn/Application.cs @@ -18,8 +18,8 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "RevitAddIn"); - var showButton = panel.AddPushButton("Execute"); - showButton.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); } } \ No newline at end of file diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Application.cs b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Application.cs index 2beca66..2392cdf 100644 --- a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Application.cs +++ b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Application.cs @@ -18,8 +18,8 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "RevitAddIn"); - var showButton = panel.AddPushButton("Execute"); - showButton.SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); } } \ No newline at end of file From 15e3b8d53d652cf9c5f9d099fee744247639eb11 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 23 Mar 2024 16:41:04 +0300 Subject: [PATCH 14/21] Fix existed project compability --- .../Nice3point.Revit.AddIn.csproj | 9 ++++++--- .../Nice3point.Revit.AddIn.csproj | 13 +++++++------ .../Nice3point.Revit.AddIn.csproj | 11 +++++++---- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/source/Nice3point.Revit.AddIn.Application/Nice3point.Revit.AddIn.csproj b/source/Nice3point.Revit.AddIn.Application/Nice3point.Revit.AddIn.csproj index cedb64e..7fbc8d9 100644 --- a/source/Nice3point.Revit.AddIn.Application/Nice3point.Revit.AddIn.csproj +++ b/source/Nice3point.Revit.AddIn.Application/Nice3point.Revit.AddIn.csproj @@ -81,13 +81,16 @@ - + + - + + - + + diff --git a/source/Nice3point.Revit.AddIn.Module/Nice3point.Revit.AddIn.csproj b/source/Nice3point.Revit.AddIn.Module/Nice3point.Revit.AddIn.csproj index 1848342..44d25ba 100644 --- a/source/Nice3point.Revit.AddIn.Module/Nice3point.Revit.AddIn.csproj +++ b/source/Nice3point.Revit.AddIn.Module/Nice3point.Revit.AddIn.csproj @@ -70,12 +70,13 @@ - + - - + + + - + @@ -84,10 +85,10 @@ - + - + \ No newline at end of file diff --git a/source/Nice3point.Revit.AddIn/Nice3point.Revit.AddIn.csproj b/source/Nice3point.Revit.AddIn/Nice3point.Revit.AddIn.csproj index 0c04027..a57fec3 100644 --- a/source/Nice3point.Revit.AddIn/Nice3point.Revit.AddIn.csproj +++ b/source/Nice3point.Revit.AddIn/Nice3point.Revit.AddIn.csproj @@ -78,19 +78,22 @@ - + - + + - + + - + + From 9d6f85d19a0b6cee0c149aa5a0dac98bcc328d36 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 23 Mar 2024 17:53:11 +0300 Subject: [PATCH 15/21] Update Samples --- .../{ShowWindowHandler.cs => ShowWindowComponent.cs} | 5 ++--- .../source/ModelessModule/Commands/ShowWindowComponent.cs | 8 ++++---- .../source/RevitAddIn/Commands/ShowModalWindowCommand.cs | 2 +- .../RevitAddIn/Commands/ShowModelessWindowCommand.cs | 2 +- samples/Readme.md | 2 ++ 5 files changed, 10 insertions(+), 9 deletions(-) rename samples/MultiProjectSolution/source/ModalModule/Commands/{ShowWindowHandler.cs => ShowWindowComponent.cs} (66%) diff --git a/samples/MultiProjectSolution/source/ModalModule/Commands/ShowWindowHandler.cs b/samples/MultiProjectSolution/source/ModalModule/Commands/ShowWindowComponent.cs similarity index 66% rename from samples/MultiProjectSolution/source/ModalModule/Commands/ShowWindowHandler.cs rename to samples/MultiProjectSolution/source/ModalModule/Commands/ShowWindowComponent.cs index b272614..3dd1ebc 100644 --- a/samples/MultiProjectSolution/source/ModalModule/Commands/ShowWindowHandler.cs +++ b/samples/MultiProjectSolution/source/ModalModule/Commands/ShowWindowComponent.cs @@ -1,5 +1,4 @@ -using Nice3point.Revit.Toolkit.External; -using ModalModule.Views; +using ModalModule.Views; namespace ModalModule.Commands; @@ -8,7 +7,7 @@ namespace ModalModule.Commands; /// public class ShowWindowComponent(ModalModuleView view) { - public void Execute(ExternalCommand shell) + public void Execute() { view.ShowDialog(); } diff --git a/samples/MultiProjectSolution/source/ModelessModule/Commands/ShowWindowComponent.cs b/samples/MultiProjectSolution/source/ModelessModule/Commands/ShowWindowComponent.cs index b05de3a..2078fdf 100644 --- a/samples/MultiProjectSolution/source/ModelessModule/Commands/ShowWindowComponent.cs +++ b/samples/MultiProjectSolution/source/ModelessModule/Commands/ShowWindowComponent.cs @@ -1,7 +1,7 @@ -using Nice3point.Revit.Toolkit.External; -using ModelessModule.Views; +using ModelessModule.Views; using ModelessModule.Utils; using Microsoft.Extensions.DependencyInjection; +using Nice3point.Revit.Toolkit; namespace ModelessModule.Commands; @@ -10,11 +10,11 @@ namespace ModelessModule.Commands; /// public class ShowWindowComponent(IServiceProvider serviceProvider) { - public void Execute(ExternalCommand shell) + public void Execute() { if (WindowController.Focus()) return; var view = serviceProvider.GetService(); - WindowController.Show(view, shell.UiApplication.MainWindowHandle); + WindowController.Show(view, Context.UiApplication.MainWindowHandle); } } \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/RevitAddIn/Commands/ShowModalWindowCommand.cs b/samples/MultiProjectSolution/source/RevitAddIn/Commands/ShowModalWindowCommand.cs index b664a86..0197a45 100644 --- a/samples/MultiProjectSolution/source/RevitAddIn/Commands/ShowModalWindowCommand.cs +++ b/samples/MultiProjectSolution/source/RevitAddIn/Commands/ShowModalWindowCommand.cs @@ -13,6 +13,6 @@ public class ShowModalWindowCommand : ExternalCommand { public override void Execute() { - Host.GetService().Execute(this); + Host.GetService().Execute(); } } \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/RevitAddIn/Commands/ShowModelessWindowCommand.cs b/samples/MultiProjectSolution/source/RevitAddIn/Commands/ShowModelessWindowCommand.cs index 2921dcd..ad73169 100644 --- a/samples/MultiProjectSolution/source/RevitAddIn/Commands/ShowModelessWindowCommand.cs +++ b/samples/MultiProjectSolution/source/RevitAddIn/Commands/ShowModelessWindowCommand.cs @@ -13,6 +13,6 @@ public class ShowModelessWindowCommand : ExternalCommand { public override void Execute() { - Host.GetService().Execute(this); + Host.GetService().Execute(); } } \ No newline at end of file diff --git a/samples/Readme.md b/samples/Readme.md index 918eaaa..7ddc2e8 100644 --- a/samples/Readme.md +++ b/samples/Readme.md @@ -1,3 +1,5 @@ +Relevant for Beta version: dotnet new install Nice3point.Revit.Templates::4.0.0-preview.3.0 + Add-in examples created with these templates are suitable for beginners and advanced users. You can create your own add-ins with different settings or completely empty. Templates will take care of project configuration and multi Revit version compability. From 5c7e47beaea0f66ea9fdb575ec8745b3c3bde751 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 23 Mar 2024 17:53:20 +0300 Subject: [PATCH 16/21] Rename file --- .../Commands/ShowWindowComponent.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/Nice3point.Revit.AddIn.Module/Commands/ShowWindowComponent.cs b/source/Nice3point.Revit.AddIn.Module/Commands/ShowWindowComponent.cs index 7286504..8ce52b5 100644 --- a/source/Nice3point.Revit.AddIn.Module/Commands/ShowWindowComponent.cs +++ b/source/Nice3point.Revit.AddIn.Module/Commands/ShowWindowComponent.cs @@ -1,7 +1,7 @@ -using Nice3point.Revit.Toolkit.External; -using Nice3point.Revit.AddIn.Views; +using Nice3point.Revit.AddIn.Views; #if (Modeless) using Nice3point.Revit.AddIn.Utils; +using Nice3point.Revit.Toolkit; using Microsoft.Extensions.DependencyInjection; #endif @@ -16,13 +16,13 @@ public class ShowWindowComponent(IServiceProvider serviceProvider) public class ShowWindowComponent(Nice3point.Revit.AddInView view) #endif { - public void Execute(ExternalCommand shell) + public void Execute() { #if (Modeless) if (WindowController.Focus()) return; var view = serviceProvider.GetService(); - WindowController.Show(view, shell.UiApplication.MainWindowHandle); + WindowController.Show(view, Context.UiApplication.MainWindowHandle); #elseif (Modal) view.ShowDialog(); #endif From bd1ba88d51a72374d7f011cf4ceb0a09a5fb8a04 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 23 Mar 2024 17:53:48 +0300 Subject: [PATCH 17/21] Update Readme.md --- samples/Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/Readme.md b/samples/Readme.md index 7ddc2e8..3a0d545 100644 --- a/samples/Readme.md +++ b/samples/Readme.md @@ -1,4 +1,4 @@ -Relevant for Beta version: dotnet new install Nice3point.Revit.Templates::4.0.0-preview.3.0 +Relevant for Beta version: `dotnet new install Nice3point.Revit.Templates::4.0.0-preview.3.0` Add-in examples created with these templates are suitable for beginners and advanced users. You can create your own add-ins with different settings or completely empty. From 6273bf8333006377cbaf0158335cc6c6f619c4af Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 23 Mar 2024 17:55:33 +0300 Subject: [PATCH 18/21] Update Readme.md --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index d74af3c..1f5f07d 100644 --- a/Readme.md +++ b/Readme.md @@ -7,7 +7,7 @@ ## Create your Add-In for Revit on the .Net platform -[![Nuget](https://img.shields.io/nuget/v/Nice3point.Revit.Templates?style=for-the-badge)](https://www.nuget.org/packages/Nice3point.Revit.Templates) +[![Nuget](https://img.shields.io/nuget/vpre/Nice3point.Revit.Templates?style=for-the-badge)](https://www.nuget.org/packages/Nice3point.Revit.Templates) [![Downloads](https://img.shields.io/nuget/dt/Nice3point.Revit.Templates?style=for-the-badge)](https://www.nuget.org/packages/Nice3point.Revit.Templates) [![Last Commit](https://img.shields.io/github/last-commit/Nice3point/RevitTemplate/develop?style=for-the-badge)](https://github.com/Nice3point/RevitTemplate/commits/main) From 5a17c0abbf87f9830b86c2bab07cb4b7583c88cf Mon Sep 17 00:00:00 2001 From: Nice3point Date: Sat, 23 Mar 2024 18:25:11 +0300 Subject: [PATCH 19/21] Update Readme.md --- samples/Readme.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/Readme.md b/samples/Readme.md index 3a0d545..debe444 100644 --- a/samples/Readme.md +++ b/samples/Readme.md @@ -6,6 +6,8 @@ Templates will take care of project configuration and multi Revit version compab Just create a project, and it will already be ready to run in Revit. +Templates description: https://github.com/Nice3point/RevitTemplates/wiki/Templates + ## Basic - **[Single-project Application](https://github.com/Nice3point/RevitTemplates/tree/develop/samples/SingleProjectApplication)** — From 81e1a4d670e198250812abf5eff5868f6de9a054 Mon Sep 17 00:00:00 2001 From: Nice3point Date: Tue, 2 Apr 2024 15:58:00 +0300 Subject: [PATCH 20/21] Cleanup --- RevitTemplates.csproj | 8 +- build/Build.Compile.cs | 28 ------- build/Build.Configuration.cs | 2 +- build/Build.Pack.cs | 17 +++- .../Module1/Module1.csproj | 35 ++------ .../Module1/ViewModels/Module1ViewModel.cs | 5 +- .../Converters/BoolVisibilityConverter.cs | 24 ------ .../Converters/EnumVisibilityConverter.cs | 34 -------- .../Views/Converters/InverseBoolConverter.cs | 23 ------ .../InverseBoolVisibilityConverter.cs | 24 ------ .../Module2/Module2.csproj | 35 ++------ .../Module2/ViewModels/Module2ViewModel.cs | 3 +- .../Converters/BoolVisibilityConverter.cs | 24 ------ .../Converters/EnumVisibilityConverter.cs | 34 -------- .../Views/Converters/InverseBoolConverter.cs | 23 ------ .../InverseBoolVisibilityConverter.cs | 24 ------ .../Module3/DatabaseConnection.cs | 1 - .../Module3/Module3.csproj | 35 ++------ .../RevitAddIn/RevitAddIn.csproj | 65 ++------------- .../source/ModalModule/ModalModule.csproj | 39 ++------- .../ViewModels/ModalModuleViewModel.cs | 1 - .../Converters/BoolVisibilityConverter.cs | 24 ------ .../Converters/EnumVisibilityConverter.cs | 34 -------- .../Views/Converters/InverseBoolConverter.cs | 23 ------ .../InverseBoolVisibilityConverter.cs | 24 ------ .../ModelessModule/ModelessModule.csproj | 39 ++------- .../ModelessModule/Utils/WindowController.cs | 1 + .../ViewModels/ModelessModuleViewModel.cs | 3 +- .../Converters/BoolVisibilityConverter.cs | 24 ------ .../Converters/EnumVisibilityConverter.cs | 34 -------- .../Views/Converters/InverseBoolConverter.cs | 23 ------ .../InverseBoolVisibilityConverter.cs | 24 ------ .../source/RevitAddIn/Application.cs | 2 +- .../RevitAddIn/Config/LoggerConfigurator.cs | 1 + .../source/RevitAddIn/RevitAddIn.csproj | 72 +++-------------- .../RevitAddIn/Commands/StartupCommand.cs | 1 - .../RevitAddIn/RevitAddIn.csproj | 65 ++------------- .../RevitAddIn/RevitAddIn.csproj | 71 +++------------- .../ViewModels/RevitAddInViewModel.cs | 3 +- .../Converters/BoolVisibilityConverter.cs | 24 ------ .../Converters/EnumVisibilityConverter.cs | 34 -------- .../Views/Converters/InverseBoolConverter.cs | 23 ------ .../InverseBoolVisibilityConverter.cs | 24 ------ .../RevitAddIn/RevitAddIn.csproj | 69 ++-------------- .../ViewModels/RevitAddInViewModel.cs | 3 +- .../Converters/BoolVisibilityConverter.cs | 24 ------ .../Converters/EnumVisibilityConverter.cs | 34 -------- .../Views/Converters/InverseBoolConverter.cs | 23 ------ .../InverseBoolVisibilityConverter.cs | 24 ------ .../RevitAddIn/RevitAddIn.csproj | 65 ++------------- .../ViewModels/RevitAddInViewModel.cs | 3 +- .../Converters/BoolVisibilityConverter.cs | 24 ------ .../Converters/EnumVisibilityConverter.cs | 34 -------- .../Views/Converters/InverseBoolConverter.cs | 23 ------ .../InverseBoolVisibilityConverter.cs | 24 ------ .../RevitAddIn/RevitAddIn.csproj | 63 ++------------- .../RevitAddIn/Utils/WindowController.cs | 1 + .../ViewModels/RevitAddinViewModel.cs | 3 +- .../Converters/BoolVisibilityConverter.cs | 24 ------ .../Converters/EnumVisibilityConverter.cs | 36 --------- .../Views/Converters/InverseBoolConverter.cs | 23 ------ .../InverseBoolVisibilityConverter.cs | 24 ------ .../Application.cs | 7 +- .../Config/LoggerConfigurator.cs | 1 + .../Nice3point.Revit.AddIn.csproj | 80 +++---------------- .../Nice3point.Revit.AddIn.csproj | 37 ++------- .../Utils/WindowController.cs | 1 + .../Converters/BoolVisibilityConverter.cs | 2 +- .../Converters/EnumVisibilityConverter.cs | 2 +- .../InverseBoolVisibilityConverter.cs | 2 +- source/Nice3point.Revit.AddIn/Application.cs | 7 +- .../Commands/StartupCommand.cs | 1 + .../Config/LoggerConfigurator.cs | 1 + .../Nice3point.Revit.AddIn.csproj | 78 +++--------------- .../Utils/WindowController.cs | 1 + .../Converters/BoolVisibilityConverter.cs | 2 +- .../Converters/EnumVisibilityConverter.cs | 2 +- .../InverseBoolVisibilityConverter.cs | 2 +- 78 files changed, 157 insertions(+), 1650 deletions(-) delete mode 100644 build/Build.Compile.cs delete mode 100644 samples/MultiProjectApplication/Module1/Views/Converters/BoolVisibilityConverter.cs delete mode 100644 samples/MultiProjectApplication/Module1/Views/Converters/EnumVisibilityConverter.cs delete mode 100644 samples/MultiProjectApplication/Module1/Views/Converters/InverseBoolConverter.cs delete mode 100644 samples/MultiProjectApplication/Module1/Views/Converters/InverseBoolVisibilityConverter.cs delete mode 100644 samples/MultiProjectApplication/Module2/Views/Converters/BoolVisibilityConverter.cs delete mode 100644 samples/MultiProjectApplication/Module2/Views/Converters/EnumVisibilityConverter.cs delete mode 100644 samples/MultiProjectApplication/Module2/Views/Converters/InverseBoolConverter.cs delete mode 100644 samples/MultiProjectApplication/Module2/Views/Converters/InverseBoolVisibilityConverter.cs delete mode 100644 samples/MultiProjectSolution/source/ModalModule/Views/Converters/BoolVisibilityConverter.cs delete mode 100644 samples/MultiProjectSolution/source/ModalModule/Views/Converters/EnumVisibilityConverter.cs delete mode 100644 samples/MultiProjectSolution/source/ModalModule/Views/Converters/InverseBoolConverter.cs delete mode 100644 samples/MultiProjectSolution/source/ModalModule/Views/Converters/InverseBoolVisibilityConverter.cs delete mode 100644 samples/MultiProjectSolution/source/ModelessModule/Views/Converters/BoolVisibilityConverter.cs delete mode 100644 samples/MultiProjectSolution/source/ModelessModule/Views/Converters/EnumVisibilityConverter.cs delete mode 100644 samples/MultiProjectSolution/source/ModelessModule/Views/Converters/InverseBoolConverter.cs delete mode 100644 samples/MultiProjectSolution/source/ModelessModule/Views/Converters/InverseBoolVisibilityConverter.cs delete mode 100644 samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs delete mode 100644 samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs delete mode 100644 samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs delete mode 100644 samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs delete mode 100644 samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs delete mode 100644 samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs delete mode 100644 samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs delete mode 100644 samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs delete mode 100644 samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs delete mode 100644 samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs delete mode 100644 samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs delete mode 100644 samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs delete mode 100644 samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs delete mode 100644 samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs delete mode 100644 samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs delete mode 100644 samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs diff --git a/RevitTemplates.csproj b/RevitTemplates.csproj index 6e68ad8..f26c33b 100644 --- a/RevitTemplates.csproj +++ b/RevitTemplates.csproj @@ -1,13 +1,13 @@ + output net8.0 - $(NoWarn);NU5128;NU5110;NU5111 - true + true false + true content - true - output + $(NoWarn);NU5128;NU5110;NU5111 diff --git a/build/Build.Compile.cs b/build/Build.Compile.cs deleted file mode 100644 index 1d21984..0000000 --- a/build/Build.Compile.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System.IO.Enumeration; -using Nuke.Common.Tools.DotNet; -using static Nuke.Common.Tools.DotNet.DotNetTasks; - -sealed partial class Build -{ - Target Compile => _ => _ - .DependsOn(Clean) - .Executes(() => - { - foreach (var configuration in GlobBuildConfigurations()) - DotNetBuild(settings => settings - .SetConfiguration(configuration) - .SetVerbosity(DotNetVerbosity.minimal)); - }); - - List GlobBuildConfigurations() - { - var configurations = Solution.Configurations - .Select(pair => pair.Key) - .Select(config => config.Remove(config.LastIndexOf('|'))) - .Where(config => Configurations.Any(wildcard => FileSystemName.MatchesSimpleExpression(wildcard, config))) - .ToList(); - - Assert.NotEmpty(configurations, $"No solution configurations have been found. Pattern: {string.Join(" | ", Configurations)}"); - return configurations; - } -} \ No newline at end of file diff --git a/build/Build.Configuration.cs b/build/Build.Configuration.cs index ec07e8e..9b9dc39 100644 --- a/build/Build.Configuration.cs +++ b/build/Build.Configuration.cs @@ -1,6 +1,6 @@ sealed partial class Build { - const string Version = "4.0.0-preview.3.0"; + const string Version = "4.0.0"; readonly AbsolutePath ArtifactsDirectory = RootDirectory / "output"; readonly AbsolutePath ChangeLogPath = RootDirectory / "Changelog.md"; diff --git a/build/Build.Pack.cs b/build/Build.Pack.cs index 2943c63..de7d4a6 100644 --- a/build/Build.Pack.cs +++ b/build/Build.Pack.cs @@ -1,11 +1,12 @@ -using Nuke.Common.Git; +using System.IO.Enumeration; +using Nuke.Common.Git; using Nuke.Common.Tools.DotNet; using static Nuke.Common.Tools.DotNet.DotNetTasks; sealed partial class Build { Target Pack => _ => _ - .DependsOn(Compile) + .DependsOn(Clean) .OnlyWhenStatic(() => IsLocalBuild || GitRepository.IsOnMainOrMasterBranch()) .Executes(() => { @@ -37,4 +38,16 @@ static string EscapeMsBuild(string value) .Replace(";", "%3B") .Replace(",", "%2C"); } + + List GlobBuildConfigurations() + { + var configurations = Solution.Configurations + .Select(pair => pair.Key) + .Select(config => config.Remove(config.LastIndexOf('|'))) + .Where(config => Configurations.Any(wildcard => FileSystemName.MatchesSimpleExpression(wildcard, config))) + .ToList(); + + Assert.NotEmpty(configurations, $"No solution configurations have been found. Pattern: {string.Join(" | ", Configurations)}"); + return configurations; + } } \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module1/Module1.csproj b/samples/MultiProjectApplication/Module1/Module1.csproj index 7e0338c..5327117 100644 --- a/samples/MultiProjectApplication/Module1/Module1.csproj +++ b/samples/MultiProjectApplication/Module1/Module1.csproj @@ -9,71 +9,46 @@ $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows - $(RevitVersion) - true - true - false + - - + + + - diff --git a/samples/MultiProjectApplication/Module1/ViewModels/Module1ViewModel.cs b/samples/MultiProjectApplication/Module1/ViewModels/Module1ViewModel.cs index bc3a393..62fb3db 100644 --- a/samples/MultiProjectApplication/Module1/ViewModels/Module1ViewModel.cs +++ b/samples/MultiProjectApplication/Module1/ViewModels/Module1ViewModel.cs @@ -1,5 +1,4 @@ -using Autodesk.Revit.DB; -using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Module3; using Module3.Enums; @@ -21,9 +20,7 @@ private void SaveProjectName() { var connection = new DatabaseConnection(EntryKey.Data); connection.BeginTransaction(); - connection.Save("ProjectName", ProjectName); - connection.Close(); } } \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module1/Views/Converters/BoolVisibilityConverter.cs b/samples/MultiProjectApplication/Module1/Views/Converters/BoolVisibilityConverter.cs deleted file mode 100644 index c81fae9..0000000 --- a/samples/MultiProjectApplication/Module1/Views/Converters/BoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace Module1.Views.Converters; - -public class BoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! == Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module1/Views/Converters/EnumVisibilityConverter.cs b/samples/MultiProjectApplication/Module1/Views/Converters/EnumVisibilityConverter.cs deleted file mode 100644 index 8aded48..0000000 --- a/samples/MultiProjectApplication/Module1/Views/Converters/EnumVisibilityConverter.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace Module1.Views.Converters; - -public class EnumVisibilityConverter : MarkupExtension, IValueConverter where TEnum : Enum -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is not TEnum valueEnum) - { - throw new ArgumentException($"{nameof(value)} is not type: {typeof(TEnum)}"); - } - - if (parameter is not TEnum parameterEnum) - { - throw new ArgumentException($"{nameof(parameter)} is not type: {typeof(TEnum)}"); - } - - return EqualityComparer.Default.Equals(valueEnum, parameterEnum) ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module1/Views/Converters/InverseBoolConverter.cs b/samples/MultiProjectApplication/Module1/Views/Converters/InverseBoolConverter.cs deleted file mode 100644 index e7e1847..0000000 --- a/samples/MultiProjectApplication/Module1/Views/Converters/InverseBoolConverter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Globalization; -using System.Windows.Data; -using System.Windows.Markup; - -namespace Module1.Views.Converters; - -public class InverseBoolConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module1/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/MultiProjectApplication/Module1/Views/Converters/InverseBoolVisibilityConverter.cs deleted file mode 100644 index a237e23..0000000 --- a/samples/MultiProjectApplication/Module1/Views/Converters/InverseBoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace Module1.Views.Converters; - -public class InverseBoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! == false ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! != Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module2/Module2.csproj b/samples/MultiProjectApplication/Module2/Module2.csproj index afda991..8c2f04e 100644 --- a/samples/MultiProjectApplication/Module2/Module2.csproj +++ b/samples/MultiProjectApplication/Module2/Module2.csproj @@ -9,71 +9,46 @@ $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows - $(RevitVersion) - true - true - false + - - + + + - diff --git a/samples/MultiProjectApplication/Module2/ViewModels/Module2ViewModel.cs b/samples/MultiProjectApplication/Module2/ViewModels/Module2ViewModel.cs index 474bdc6..8bced18 100644 --- a/samples/MultiProjectApplication/Module2/ViewModels/Module2ViewModel.cs +++ b/samples/MultiProjectApplication/Module2/ViewModels/Module2ViewModel.cs @@ -1,5 +1,4 @@ -using Autodesk.Revit.DB; -using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Nice3point.Revit.Toolkit; diff --git a/samples/MultiProjectApplication/Module2/Views/Converters/BoolVisibilityConverter.cs b/samples/MultiProjectApplication/Module2/Views/Converters/BoolVisibilityConverter.cs deleted file mode 100644 index 2e0c60b..0000000 --- a/samples/MultiProjectApplication/Module2/Views/Converters/BoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace Module2.Views.Converters; - -public class BoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! == Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module2/Views/Converters/EnumVisibilityConverter.cs b/samples/MultiProjectApplication/Module2/Views/Converters/EnumVisibilityConverter.cs deleted file mode 100644 index 4526367..0000000 --- a/samples/MultiProjectApplication/Module2/Views/Converters/EnumVisibilityConverter.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace Module2.Views.Converters; - -public class EnumVisibilityConverter : MarkupExtension, IValueConverter where TEnum : Enum -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is not TEnum valueEnum) - { - throw new ArgumentException($"{nameof(value)} is not type: {typeof(TEnum)}"); - } - - if (parameter is not TEnum parameterEnum) - { - throw new ArgumentException($"{nameof(parameter)} is not type: {typeof(TEnum)}"); - } - - return EqualityComparer.Default.Equals(valueEnum, parameterEnum) ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module2/Views/Converters/InverseBoolConverter.cs b/samples/MultiProjectApplication/Module2/Views/Converters/InverseBoolConverter.cs deleted file mode 100644 index d6e7e63..0000000 --- a/samples/MultiProjectApplication/Module2/Views/Converters/InverseBoolConverter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Globalization; -using System.Windows.Data; -using System.Windows.Markup; - -namespace Module2.Views.Converters; - -public class InverseBoolConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module2/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/MultiProjectApplication/Module2/Views/Converters/InverseBoolVisibilityConverter.cs deleted file mode 100644 index e800df2..0000000 --- a/samples/MultiProjectApplication/Module2/Views/Converters/InverseBoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace Module2.Views.Converters; - -public class InverseBoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! == false ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! != Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectApplication/Module3/DatabaseConnection.cs b/samples/MultiProjectApplication/Module3/DatabaseConnection.cs index ebcfab1..b217619 100644 --- a/samples/MultiProjectApplication/Module3/DatabaseConnection.cs +++ b/samples/MultiProjectApplication/Module3/DatabaseConnection.cs @@ -1,4 +1,3 @@ -using Autodesk.Revit.DB; using Autodesk.Revit.DB.ExtensibleStorage; using Module3.Enums; using Module3.Schemas; diff --git a/samples/MultiProjectApplication/Module3/Module3.csproj b/samples/MultiProjectApplication/Module3/Module3.csproj index f703489..cc7270d 100644 --- a/samples/MultiProjectApplication/Module3/Module3.csproj +++ b/samples/MultiProjectApplication/Module3/Module3.csproj @@ -8,70 +8,45 @@ $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows - $(RevitVersion) - true - true - false + - - + + + - diff --git a/samples/MultiProjectApplication/RevitAddIn/RevitAddIn.csproj b/samples/MultiProjectApplication/RevitAddIn/RevitAddIn.csproj index 9841f30..f6abc05 100644 --- a/samples/MultiProjectApplication/RevitAddIn/RevitAddIn.csproj +++ b/samples/MultiProjectApplication/RevitAddIn/RevitAddIn.csproj @@ -5,80 +5,54 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG + - - + + + - @@ -93,31 +67,4 @@ - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModalModule/ModalModule.csproj b/samples/MultiProjectSolution/source/ModalModule/ModalModule.csproj index a5e9f97..c2181e5 100644 --- a/samples/MultiProjectSolution/source/ModalModule/ModalModule.csproj +++ b/samples/MultiProjectSolution/source/ModalModule/ModalModule.csproj @@ -9,76 +9,51 @@ $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 net8.0-windows - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER - $(RevitVersion) - true - true - false + + - - - - - + + + + + - diff --git a/samples/MultiProjectSolution/source/ModalModule/ViewModels/ModalModuleViewModel.cs b/samples/MultiProjectSolution/source/ModalModule/ViewModels/ModalModuleViewModel.cs index 84095a4..b5363d5 100644 --- a/samples/MultiProjectSolution/source/ModalModule/ViewModels/ModalModuleViewModel.cs +++ b/samples/MultiProjectSolution/source/ModalModule/ViewModels/ModalModuleViewModel.cs @@ -1,5 +1,4 @@ using System.Text.Json; -using Autodesk.Revit.DB; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.Logging; diff --git a/samples/MultiProjectSolution/source/ModalModule/Views/Converters/BoolVisibilityConverter.cs b/samples/MultiProjectSolution/source/ModalModule/Views/Converters/BoolVisibilityConverter.cs deleted file mode 100644 index b0c2a79..0000000 --- a/samples/MultiProjectSolution/source/ModalModule/Views/Converters/BoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace ModalModule.Views.Converters; - -public class BoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! == Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModalModule/Views/Converters/EnumVisibilityConverter.cs b/samples/MultiProjectSolution/source/ModalModule/Views/Converters/EnumVisibilityConverter.cs deleted file mode 100644 index 521b6c4..0000000 --- a/samples/MultiProjectSolution/source/ModalModule/Views/Converters/EnumVisibilityConverter.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace ModalModule.Views.Converters; - -public class EnumVisibilityConverter : MarkupExtension, IValueConverter where TEnum : Enum -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is not TEnum valueEnum) - { - throw new ArgumentException($"{nameof(value)} is not type: {typeof(TEnum)}"); - } - - if (parameter is not TEnum parameterEnum) - { - throw new ArgumentException($"{nameof(parameter)} is not type: {typeof(TEnum)}"); - } - - return EqualityComparer.Default.Equals(valueEnum, parameterEnum) ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModalModule/Views/Converters/InverseBoolConverter.cs b/samples/MultiProjectSolution/source/ModalModule/Views/Converters/InverseBoolConverter.cs deleted file mode 100644 index 5892412..0000000 --- a/samples/MultiProjectSolution/source/ModalModule/Views/Converters/InverseBoolConverter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Globalization; -using System.Windows.Data; -using System.Windows.Markup; - -namespace ModalModule.Views.Converters; - -public class InverseBoolConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModalModule/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/MultiProjectSolution/source/ModalModule/Views/Converters/InverseBoolVisibilityConverter.cs deleted file mode 100644 index a83f59c..0000000 --- a/samples/MultiProjectSolution/source/ModalModule/Views/Converters/InverseBoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace ModalModule.Views.Converters; - -public class InverseBoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! == false ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! != Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModelessModule/ModelessModule.csproj b/samples/MultiProjectSolution/source/ModelessModule/ModelessModule.csproj index 56febb1..13cfc12 100644 --- a/samples/MultiProjectSolution/source/ModelessModule/ModelessModule.csproj +++ b/samples/MultiProjectSolution/source/ModelessModule/ModelessModule.csproj @@ -9,75 +9,50 @@ $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 net8.0-windows - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER - $(RevitVersion) - true - true - false + + - - - - - + + + + + - diff --git a/samples/MultiProjectSolution/source/ModelessModule/Utils/WindowController.cs b/samples/MultiProjectSolution/source/ModelessModule/Utils/WindowController.cs index 55d34f6..e333578 100644 --- a/samples/MultiProjectSolution/source/ModelessModule/Utils/WindowController.cs +++ b/samples/MultiProjectSolution/source/ModelessModule/Utils/WindowController.cs @@ -1,4 +1,5 @@ using System.Windows; +using Visibility = System.Windows.Visibility; namespace ModelessModule.Utils; diff --git a/samples/MultiProjectSolution/source/ModelessModule/ViewModels/ModelessModuleViewModel.cs b/samples/MultiProjectSolution/source/ModelessModule/ViewModels/ModelessModuleViewModel.cs index a7d3bff..fb8bd01 100644 --- a/samples/MultiProjectSolution/source/ModelessModule/ViewModels/ModelessModuleViewModel.cs +++ b/samples/MultiProjectSolution/source/ModelessModule/ViewModels/ModelessModuleViewModel.cs @@ -1,5 +1,4 @@ -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; +using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; diff --git a/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/BoolVisibilityConverter.cs b/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/BoolVisibilityConverter.cs deleted file mode 100644 index a50e77a..0000000 --- a/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/BoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace ModelessModule.Views.Converters; - -public class BoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! == Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/EnumVisibilityConverter.cs b/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/EnumVisibilityConverter.cs deleted file mode 100644 index 3ec2feb..0000000 --- a/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/EnumVisibilityConverter.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace ModelessModule.Views.Converters; - -public class EnumVisibilityConverter : MarkupExtension, IValueConverter where TEnum : Enum -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is not TEnum valueEnum) - { - throw new ArgumentException($"{nameof(value)} is not type: {typeof(TEnum)}"); - } - - if (parameter is not TEnum parameterEnum) - { - throw new ArgumentException($"{nameof(parameter)} is not type: {typeof(TEnum)}"); - } - - return EqualityComparer.Default.Equals(valueEnum, parameterEnum) ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/InverseBoolConverter.cs b/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/InverseBoolConverter.cs deleted file mode 100644 index c1ff32b..0000000 --- a/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/InverseBoolConverter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Globalization; -using System.Windows.Data; -using System.Windows.Markup; - -namespace ModelessModule.Views.Converters; - -public class InverseBoolConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/InverseBoolVisibilityConverter.cs deleted file mode 100644 index 44a8573..0000000 --- a/samples/MultiProjectSolution/source/ModelessModule/Views/Converters/InverseBoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace ModelessModule.Views.Converters; - -public class InverseBoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! == false ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! != Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/MultiProjectSolution/source/RevitAddIn/Application.cs b/samples/MultiProjectSolution/source/RevitAddIn/Application.cs index 11dc315..bbc76a3 100644 --- a/samples/MultiProjectSolution/source/RevitAddIn/Application.cs +++ b/samples/MultiProjectSolution/source/RevitAddIn/Application.cs @@ -28,7 +28,7 @@ private void CreateRibbon() .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); - panel.AddPushButton("Show\nModelessWindow") + panel.AddPushButton("Show\nModeless window") .SetImage("/RevitAddIn;component/Resources/Icons/RibbonIcon16.png") .SetLargeImage("/RevitAddIn;component/Resources/Icons/RibbonIcon32.png"); } diff --git a/samples/MultiProjectSolution/source/RevitAddIn/Config/LoggerConfigurator.cs b/samples/MultiProjectSolution/source/RevitAddIn/Config/LoggerConfigurator.cs index e3e104e..126ba4f 100644 --- a/samples/MultiProjectSolution/source/RevitAddIn/Config/LoggerConfigurator.cs +++ b/samples/MultiProjectSolution/source/RevitAddIn/Config/LoggerConfigurator.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.Logging; +using Serilog; using Serilog.Core; using Serilog.Events; diff --git a/samples/MultiProjectSolution/source/RevitAddIn/RevitAddIn.csproj b/samples/MultiProjectSolution/source/RevitAddIn/RevitAddIn.csproj index e8b28f3..743008e 100644 --- a/samples/MultiProjectSolution/source/RevitAddIn/RevitAddIn.csproj +++ b/samples/MultiProjectSolution/source/RevitAddIn/RevitAddIn.csproj @@ -5,87 +5,60 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 net8.0-windows - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG - - + + + - - - - + + + + + - - @@ -98,31 +71,4 @@ - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/SingleProjectApplication/RevitAddIn/Commands/StartupCommand.cs b/samples/SingleProjectApplication/RevitAddIn/Commands/StartupCommand.cs index 02c6852..f9a1cf4 100644 --- a/samples/SingleProjectApplication/RevitAddIn/Commands/StartupCommand.cs +++ b/samples/SingleProjectApplication/RevitAddIn/Commands/StartupCommand.cs @@ -1,5 +1,4 @@ using Autodesk.Revit.Attributes; -using Autodesk.Revit.DB; using Nice3point.Revit.Toolkit.External; using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; diff --git a/samples/SingleProjectApplication/RevitAddIn/RevitAddIn.csproj b/samples/SingleProjectApplication/RevitAddIn/RevitAddIn.csproj index d34644c..ef03310 100644 --- a/samples/SingleProjectApplication/RevitAddIn/RevitAddIn.csproj +++ b/samples/SingleProjectApplication/RevitAddIn/RevitAddIn.csproj @@ -5,80 +5,54 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG + - - + + + - @@ -87,31 +61,4 @@ - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.csproj b/samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.csproj index 269b1bc..cc1fccd 100644 --- a/samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.csproj +++ b/samples/SingleProjectDIApplication/RevitAddIn/RevitAddIn.csproj @@ -5,86 +5,60 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - + 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG + - + - - + + + - - + @@ -94,31 +68,4 @@ - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/SingleProjectDIApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs b/samples/SingleProjectDIApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs index 17f0c17..2e8de5b 100644 --- a/samples/SingleProjectDIApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs +++ b/samples/SingleProjectDIApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs @@ -1,5 +1,4 @@ -using Autodesk.Revit.DB; -using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Nice3point.Revit.Toolkit; diff --git a/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs deleted file mode 100644 index 67fe242..0000000 --- a/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class BoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! == Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs deleted file mode 100644 index 796d686..0000000 --- a/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class EnumVisibilityConverter : MarkupExtension, IValueConverter where TEnum : Enum -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is not TEnum valueEnum) - { - throw new ArgumentException($"{nameof(value)} is not type: {typeof(TEnum)}"); - } - - if (parameter is not TEnum parameterEnum) - { - throw new ArgumentException($"{nameof(parameter)} is not type: {typeof(TEnum)}"); - } - - return EqualityComparer.Default.Equals(valueEnum, parameterEnum) ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs deleted file mode 100644 index b84c5bf..0000000 --- a/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Globalization; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class InverseBoolConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs deleted file mode 100644 index 1729ae1..0000000 --- a/samples/SingleProjectDIApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class InverseBoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! == false ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! != Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.csproj b/samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.csproj index d156941..fa9dc54 100644 --- a/samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.csproj +++ b/samples/SingleProjectHostingApplication/RevitAddIn/RevitAddIn.csproj @@ -5,83 +5,57 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG + - - + + - - + + + - @@ -94,31 +68,4 @@ - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/SingleProjectHostingApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs b/samples/SingleProjectHostingApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs index 17f0c17..2e8de5b 100644 --- a/samples/SingleProjectHostingApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs +++ b/samples/SingleProjectHostingApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs @@ -1,5 +1,4 @@ -using Autodesk.Revit.DB; -using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Nice3point.Revit.Toolkit; diff --git a/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs deleted file mode 100644 index 67fe242..0000000 --- a/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class BoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! == Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs deleted file mode 100644 index 796d686..0000000 --- a/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class EnumVisibilityConverter : MarkupExtension, IValueConverter where TEnum : Enum -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is not TEnum valueEnum) - { - throw new ArgumentException($"{nameof(value)} is not type: {typeof(TEnum)}"); - } - - if (parameter is not TEnum parameterEnum) - { - throw new ArgumentException($"{nameof(parameter)} is not type: {typeof(TEnum)}"); - } - - return EqualityComparer.Default.Equals(valueEnum, parameterEnum) ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs deleted file mode 100644 index b84c5bf..0000000 --- a/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Globalization; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class InverseBoolConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs deleted file mode 100644 index 1729ae1..0000000 --- a/samples/SingleProjectHostingApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class InverseBoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! == false ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! != Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectWpfModalApplication/RevitAddIn/RevitAddIn.csproj b/samples/SingleProjectWpfModalApplication/RevitAddIn/RevitAddIn.csproj index 7934cfd..ccccfaf 100644 --- a/samples/SingleProjectWpfModalApplication/RevitAddIn/RevitAddIn.csproj +++ b/samples/SingleProjectWpfModalApplication/RevitAddIn/RevitAddIn.csproj @@ -5,81 +5,55 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG + - - + + + - @@ -92,31 +66,4 @@ - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/SingleProjectWpfModalApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs b/samples/SingleProjectWpfModalApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs index 6376923..d196b53 100644 --- a/samples/SingleProjectWpfModalApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs +++ b/samples/SingleProjectWpfModalApplication/RevitAddIn/ViewModels/RevitAddInViewModel.cs @@ -1,5 +1,4 @@ -using Autodesk.Revit.DB; -using CommunityToolkit.Mvvm.ComponentModel; +using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Nice3point.Revit.Toolkit; diff --git a/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs b/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs deleted file mode 100644 index 67fe242..0000000 --- a/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class BoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! == Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs b/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs deleted file mode 100644 index 796d686..0000000 --- a/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class EnumVisibilityConverter : MarkupExtension, IValueConverter where TEnum : Enum -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is not TEnum valueEnum) - { - throw new ArgumentException($"{nameof(value)} is not type: {typeof(TEnum)}"); - } - - if (parameter is not TEnum parameterEnum) - { - throw new ArgumentException($"{nameof(parameter)} is not type: {typeof(TEnum)}"); - } - - return EqualityComparer.Default.Equals(valueEnum, parameterEnum) ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs b/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs deleted file mode 100644 index b84c5bf..0000000 --- a/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Globalization; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class InverseBoolConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs deleted file mode 100644 index 1729ae1..0000000 --- a/samples/SingleProjectWpfModalApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class InverseBoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! == false ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! != Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/RevitAddIn.csproj b/samples/SingleProjectWpfModelessApplication/RevitAddIn/RevitAddIn.csproj index 7934cfd..5e95820 100644 --- a/samples/SingleProjectWpfModelessApplication/RevitAddIn/RevitAddIn.csproj +++ b/samples/SingleProjectWpfModelessApplication/RevitAddIn/RevitAddIn.csproj @@ -5,81 +5,55 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 - net8.0 - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER + net8.0-windows $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG + - + + - @@ -92,31 +66,4 @@ - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Utils/WindowController.cs b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Utils/WindowController.cs index d166460..c04d72f 100644 --- a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Utils/WindowController.cs +++ b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Utils/WindowController.cs @@ -1,4 +1,5 @@ using System.Windows; +using Visibility = System.Windows.Visibility; namespace RevitAddIn.Utils; diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/ViewModels/RevitAddinViewModel.cs b/samples/SingleProjectWpfModelessApplication/RevitAddIn/ViewModels/RevitAddinViewModel.cs index db4d3af..1196640 100644 --- a/samples/SingleProjectWpfModelessApplication/RevitAddIn/ViewModels/RevitAddinViewModel.cs +++ b/samples/SingleProjectWpfModelessApplication/RevitAddIn/ViewModels/RevitAddinViewModel.cs @@ -1,5 +1,4 @@ -using Autodesk.Revit.DB; -using Autodesk.Revit.UI; +using Autodesk.Revit.UI; using Autodesk.Revit.UI.Selection; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs deleted file mode 100644 index 67fe242..0000000 --- a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/BoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class BoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! == Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs deleted file mode 100644 index 491ea2b..0000000 --- a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/EnumVisibilityConverter.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class EnumVisibilityConverter : MarkupExtension, IValueConverter where TEnum : Enum -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - if (value is not TEnum valueEnum) - { - throw new ArgumentException($"{nameof(value)} is not type: {typeof(TEnum)}"); - } - - if (parameter is not TEnum parameterEnum) - { - throw new ArgumentException($"{nameof(parameter)} is not type: {typeof(TEnum)}"); - } - - return EqualityComparer.Default.Equals(valueEnum, parameterEnum) - ? Visibility.Visible - : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - throw new NotSupportedException(); - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs deleted file mode 100644 index b84c5bf..0000000 --- a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/InverseBoolConverter.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Globalization; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class InverseBoolConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return !(bool)value!; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs b/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs deleted file mode 100644 index 1729ae1..0000000 --- a/samples/SingleProjectWpfModelessApplication/RevitAddIn/Views/Converters/InverseBoolVisibilityConverter.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Globalization; -using System.Windows; -using System.Windows.Data; -using System.Windows.Markup; - -namespace RevitAddIn.Views.Converters; - -public class InverseBoolVisibilityConverter : MarkupExtension, IValueConverter -{ - public object Convert(object value, Type targetType, object parameter, CultureInfo culture) - { - return (bool)value! == false ? Visibility.Visible : Visibility.Hidden; - } - - public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) - { - return (Visibility)value! != Visibility.Visible; - } - - public override object ProvideValue(IServiceProvider serviceProvider) - { - return this; - } -} \ No newline at end of file diff --git a/source/Nice3point.Revit.AddIn.Application/Application.cs b/source/Nice3point.Revit.AddIn.Application/Application.cs index 0c4bf7f..08dcc1f 100644 --- a/source/Nice3point.Revit.AddIn.Application/Application.cs +++ b/source/Nice3point.Revit.AddIn.Application/Application.cs @@ -1,6 +1,7 @@ using Nice3point.Revit.Toolkit.External; using Nice3point.Revit.AddIn.Commands; #if (log && !UseIoc) +using Serilog; using Serilog.Events; #endif @@ -38,9 +39,9 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "Nice3point.Revit.AddIn"); - var showButton = panel.AddPushButton("Execute"); - showButton.SetImage("/Nice3point.Revit.AddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/Nice3point.Revit.AddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/Nice3point.Revit.AddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/Nice3point.Revit.AddIn;component/Resources/Icons/RibbonIcon32.png"); } #if (log && !UseIoc) diff --git a/source/Nice3point.Revit.AddIn.Application/Config/LoggerConfigurator.cs b/source/Nice3point.Revit.AddIn.Application/Config/LoggerConfigurator.cs index f3c6c6b..4e5a46d 100644 --- a/source/Nice3point.Revit.AddIn.Application/Config/LoggerConfigurator.cs +++ b/source/Nice3point.Revit.AddIn.Application/Config/LoggerConfigurator.cs @@ -4,6 +4,7 @@ #if (Hosting) using Microsoft.Extensions.Logging; #endif +using Serilog; using Serilog.Core; using Serilog.Events; diff --git a/source/Nice3point.Revit.AddIn.Application/Nice3point.Revit.AddIn.csproj b/source/Nice3point.Revit.AddIn.Application/Nice3point.Revit.AddIn.csproj index 7fbc8d9..63df67d 100644 --- a/source/Nice3point.Revit.AddIn.Application/Nice3point.Revit.AddIn.csproj +++ b/source/Nice3point.Revit.AddIn.Application/Nice3point.Revit.AddIn.csproj @@ -5,75 +5,49 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 net8.0-windows - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG + - - + + @@ -81,26 +55,23 @@ - - + + - - + + - - + + + - - - - @@ -108,33 +79,6 @@ - - - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/source/Nice3point.Revit.AddIn.Module/Nice3point.Revit.AddIn.csproj b/source/Nice3point.Revit.AddIn.Module/Nice3point.Revit.AddIn.csproj index 44d25ba..040c87c 100644 --- a/source/Nice3point.Revit.AddIn.Module/Nice3point.Revit.AddIn.csproj +++ b/source/Nice3point.Revit.AddIn.Module/Nice3point.Revit.AddIn.csproj @@ -11,77 +11,52 @@ $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 net8.0-windows - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER - $(RevitVersion) - true - true - false + - - + + - - + + + - diff --git a/source/Nice3point.Revit.AddIn.Module/Utils/WindowController.cs b/source/Nice3point.Revit.AddIn.Module/Utils/WindowController.cs index 1c87798..775cfe2 100644 --- a/source/Nice3point.Revit.AddIn.Module/Utils/WindowController.cs +++ b/source/Nice3point.Revit.AddIn.Module/Utils/WindowController.cs @@ -1,4 +1,5 @@ using System.Windows; +using Visibility = System.Windows.Visibility; namespace Nice3point.Revit.AddIn.Utils; diff --git a/source/Nice3point.Revit.AddIn.Module/Views/Converters/BoolVisibilityConverter.cs b/source/Nice3point.Revit.AddIn.Module/Views/Converters/BoolVisibilityConverter.cs index 4bb761e..274b01d 100644 --- a/source/Nice3point.Revit.AddIn.Module/Views/Converters/BoolVisibilityConverter.cs +++ b/source/Nice3point.Revit.AddIn.Module/Views/Converters/BoolVisibilityConverter.cs @@ -1,7 +1,7 @@ using System.Globalization; -using System.Windows; using System.Windows.Data; using System.Windows.Markup; +using Visibility = System.Windows.Visibility; namespace Nice3point.Revit.AddIn.Views.Converters; diff --git a/source/Nice3point.Revit.AddIn.Module/Views/Converters/EnumVisibilityConverter.cs b/source/Nice3point.Revit.AddIn.Module/Views/Converters/EnumVisibilityConverter.cs index 2f6a2a6..1a4667e 100644 --- a/source/Nice3point.Revit.AddIn.Module/Views/Converters/EnumVisibilityConverter.cs +++ b/source/Nice3point.Revit.AddIn.Module/Views/Converters/EnumVisibilityConverter.cs @@ -1,7 +1,7 @@ using System.Globalization; -using System.Windows; using System.Windows.Data; using System.Windows.Markup; +using Visibility = System.Windows.Visibility; namespace Nice3point.Revit.AddIn.Views.Converters; diff --git a/source/Nice3point.Revit.AddIn.Module/Views/Converters/InverseBoolVisibilityConverter.cs b/source/Nice3point.Revit.AddIn.Module/Views/Converters/InverseBoolVisibilityConverter.cs index 358adcc..c690380 100644 --- a/source/Nice3point.Revit.AddIn.Module/Views/Converters/InverseBoolVisibilityConverter.cs +++ b/source/Nice3point.Revit.AddIn.Module/Views/Converters/InverseBoolVisibilityConverter.cs @@ -1,7 +1,7 @@ using System.Globalization; -using System.Windows; using System.Windows.Data; using System.Windows.Markup; +using Visibility = System.Windows.Visibility; namespace Nice3point.Revit.AddIn.Views.Converters; diff --git a/source/Nice3point.Revit.AddIn/Application.cs b/source/Nice3point.Revit.AddIn/Application.cs index 0c4bf7f..08dcc1f 100644 --- a/source/Nice3point.Revit.AddIn/Application.cs +++ b/source/Nice3point.Revit.AddIn/Application.cs @@ -1,6 +1,7 @@ using Nice3point.Revit.Toolkit.External; using Nice3point.Revit.AddIn.Commands; #if (log && !UseIoc) +using Serilog; using Serilog.Events; #endif @@ -38,9 +39,9 @@ private void CreateRibbon() { var panel = Application.CreatePanel("Commands", "Nice3point.Revit.AddIn"); - var showButton = panel.AddPushButton("Execute"); - showButton.SetImage("/Nice3point.Revit.AddIn;component/Resources/Icons/RibbonIcon16.png"); - showButton.SetLargeImage("/Nice3point.Revit.AddIn;component/Resources/Icons/RibbonIcon32.png"); + panel.AddPushButton("Execute") + .SetImage("/Nice3point.Revit.AddIn;component/Resources/Icons/RibbonIcon16.png") + .SetLargeImage("/Nice3point.Revit.AddIn;component/Resources/Icons/RibbonIcon32.png"); } #if (log && !UseIoc) diff --git a/source/Nice3point.Revit.AddIn/Commands/StartupCommand.cs b/source/Nice3point.Revit.AddIn/Commands/StartupCommand.cs index e695215..0073e8b 100644 --- a/source/Nice3point.Revit.AddIn/Commands/StartupCommand.cs +++ b/source/Nice3point.Revit.AddIn/Commands/StartupCommand.cs @@ -13,6 +13,7 @@ using Nice3point.Revit.AddIn.Utils; #endif #if (log && Command) +using Serilog; using Serilog.Events; #endif diff --git a/source/Nice3point.Revit.AddIn/Config/LoggerConfigurator.cs b/source/Nice3point.Revit.AddIn/Config/LoggerConfigurator.cs index f3c6c6b..4e5a46d 100644 --- a/source/Nice3point.Revit.AddIn/Config/LoggerConfigurator.cs +++ b/source/Nice3point.Revit.AddIn/Config/LoggerConfigurator.cs @@ -4,6 +4,7 @@ #if (Hosting) using Microsoft.Extensions.Logging; #endif +using Serilog; using Serilog.Core; using Serilog.Events; diff --git a/source/Nice3point.Revit.AddIn/Nice3point.Revit.AddIn.csproj b/source/Nice3point.Revit.AddIn/Nice3point.Revit.AddIn.csproj index a57fec3..886ac70 100644 --- a/source/Nice3point.Revit.AddIn/Nice3point.Revit.AddIn.csproj +++ b/source/Nice3point.Revit.AddIn/Nice3point.Revit.AddIn.csproj @@ -5,75 +5,49 @@ latest x64 true + true Debug R20;Debug R21;Debug R22;Debug R23;Debug R24;Debug R25 $(Configurations);Release R20;Release R21;Release R22;Release R23;Release R24;Release R25 - - full - true - $(DefineConstants);DEBUG - - - true - none - $(DefineConstants);RELEASE - 2020 net48 - $(DefineConstants);R20 - $(DefineConstants);R20_OR_GREATER 2021 net48 - $(DefineConstants);R21 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER 2022 net48 - $(DefineConstants);R22 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER 2023 net48 - $(DefineConstants);R23 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER 2024 net48 - $(DefineConstants);R24 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER 2025 net8.0-windows - $(DefineConstants);R25 - $(DefineConstants);R20_OR_GREATER;R21_OR_GREATER;R22_OR_GREATER;R23_OR_GREATER;R24_OR_GREATER;R25_OR_GREATER $(RevitVersion) - true - true - false - - - Program C:\Program Files\Autodesk\Revit $(RevitVersion)\Revit.exe /language ENG + - - + + @@ -84,26 +58,23 @@ - - + + - - + + - - + + + - - - - @@ -119,31 +90,4 @@ - - - - - - - - bin\$(RevitVersion) $(Configuration)\ - $(RootDir)$(AssemblyName)\ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/source/Nice3point.Revit.AddIn/Utils/WindowController.cs b/source/Nice3point.Revit.AddIn/Utils/WindowController.cs index 1c87798..775cfe2 100644 --- a/source/Nice3point.Revit.AddIn/Utils/WindowController.cs +++ b/source/Nice3point.Revit.AddIn/Utils/WindowController.cs @@ -1,4 +1,5 @@ using System.Windows; +using Visibility = System.Windows.Visibility; namespace Nice3point.Revit.AddIn.Utils; diff --git a/source/Nice3point.Revit.AddIn/Views/Converters/BoolVisibilityConverter.cs b/source/Nice3point.Revit.AddIn/Views/Converters/BoolVisibilityConverter.cs index 4bb761e..274b01d 100644 --- a/source/Nice3point.Revit.AddIn/Views/Converters/BoolVisibilityConverter.cs +++ b/source/Nice3point.Revit.AddIn/Views/Converters/BoolVisibilityConverter.cs @@ -1,7 +1,7 @@ using System.Globalization; -using System.Windows; using System.Windows.Data; using System.Windows.Markup; +using Visibility = System.Windows.Visibility; namespace Nice3point.Revit.AddIn.Views.Converters; diff --git a/source/Nice3point.Revit.AddIn/Views/Converters/EnumVisibilityConverter.cs b/source/Nice3point.Revit.AddIn/Views/Converters/EnumVisibilityConverter.cs index 2f6a2a6..1a4667e 100644 --- a/source/Nice3point.Revit.AddIn/Views/Converters/EnumVisibilityConverter.cs +++ b/source/Nice3point.Revit.AddIn/Views/Converters/EnumVisibilityConverter.cs @@ -1,7 +1,7 @@ using System.Globalization; -using System.Windows; using System.Windows.Data; using System.Windows.Markup; +using Visibility = System.Windows.Visibility; namespace Nice3point.Revit.AddIn.Views.Converters; diff --git a/source/Nice3point.Revit.AddIn/Views/Converters/InverseBoolVisibilityConverter.cs b/source/Nice3point.Revit.AddIn/Views/Converters/InverseBoolVisibilityConverter.cs index 358adcc..c690380 100644 --- a/source/Nice3point.Revit.AddIn/Views/Converters/InverseBoolVisibilityConverter.cs +++ b/source/Nice3point.Revit.AddIn/Views/Converters/InverseBoolVisibilityConverter.cs @@ -1,7 +1,7 @@ using System.Globalization; -using System.Windows; using System.Windows.Data; using System.Windows.Markup; +using Visibility = System.Windows.Visibility; namespace Nice3point.Revit.AddIn.Views.Converters; From c4b4ad5b0c367062151eb43388903b51c349e01d Mon Sep 17 00:00:00 2001 From: Nice3point Date: Tue, 2 Apr 2024 16:34:18 +0300 Subject: [PATCH 21/21] Bump version --- Changelog.md | 18 +++++------------- build/Build.Configuration.cs | 2 +- samples/Readme.md | 2 -- 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/Changelog.md b/Changelog.md index 4adcf4e..c82fbf0 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,22 +1,14 @@ -# 4.0.0-preview.3.0 - -- New icons -- Renamed some options -- Added summary for logger - -# 4.0.0-preview.2.0 - -- Downgrade dependencies for Revit 2025 compability -- Rename some files -- Bug fixes - -# 4.0.0-preview.1.0 +# 4.0.1 - Revit 2025 support - Inversion of Control support +- Nuke 8.0.0 support +- New icons - New templates for single dll applications and modular solutions - New samples https://github.com/Nice3point/RevitTemplates/tree/develop/samples - Wiki updated https://github.com/Nice3point/RevitTemplates/wiki/Templates +- Wiki updated https://github.com/Nice3point/RevitTemplates/wiki/Multiple-Revit-Versions +- Jetbrains Rider don't respect solution templates for now. Please use CLI or VS22 # 3.2.2 diff --git a/build/Build.Configuration.cs b/build/Build.Configuration.cs index 9b9dc39..fa54b79 100644 --- a/build/Build.Configuration.cs +++ b/build/Build.Configuration.cs @@ -1,6 +1,6 @@ sealed partial class Build { - const string Version = "4.0.0"; + const string Version = "4.0.1"; readonly AbsolutePath ArtifactsDirectory = RootDirectory / "output"; readonly AbsolutePath ChangeLogPath = RootDirectory / "Changelog.md"; diff --git a/samples/Readme.md b/samples/Readme.md index debe444..8ae82f2 100644 --- a/samples/Readme.md +++ b/samples/Readme.md @@ -1,5 +1,3 @@ -Relevant for Beta version: `dotnet new install Nice3point.Revit.Templates::4.0.0-preview.3.0` - Add-in examples created with these templates are suitable for beginners and advanced users. You can create your own add-ins with different settings or completely empty. Templates will take care of project configuration and multi Revit version compability.