БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° плъгини Π·Π° CAD прилоТСния (Π² моя случай Ρ‚ΠΎΠ²Π° са AutoCAD, Revit ΠΈ Renga) с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ сС появява Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ – ΠΈΠ·Π»ΠΈΠ·Π°Ρ‚ Π½ΠΎΠ²ΠΈ вСрсии Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ‚Π΅, промСня сС тСхният API ΠΈ трябва Π΄Π° сС правят Π½ΠΎΠ²ΠΈ вСрсии Π½Π° ΠΏΠ»ΡŠΠ³ΠΈΠ½ΠΈΡ‚Π΅.

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ само Π΅Π΄ΠΈΠ½ плъгин ΠΈΠ»ΠΈ стС Π½ΠΎΠ²Π°ΠΊ Π² Ρ‚ΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΠΎΠΏΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ мСста Π² Π½Π΅Π³ΠΎ ΠΈ Π΄Π° ΡΡŠΠ±Π΅Ρ€Π΅Ρ‚Π΅ Π½ΠΎΠ²Π° вСрсия Π½Π° плъгина. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, послСдващитС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄Π° Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π°Ρ‚ Π΄ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° трудоСмкостта.

Π‘ Π½Π°Ρ‚Ρ€ΡƒΠΏΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠΏΠΈΡ‚ ΠΈ знания Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ няколко Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° автоматизация Π½Π° Ρ‚ΠΎΠ·ΠΈ процСс. Аз съм ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π» ΠΏΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΏΡŠΡ‚ ΠΈ искам Π΄Π° сподСля с вас Π΄ΠΎ ΠΊΠ°ΠΊΠ²ΠΎ съм стигнал Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΈ ΠΊΠΎΠ»ΠΊΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΅.

ΠŸΡŠΡ€Π²ΠΎ, Π½Π΅ΠΊΠ° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ дълго Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ….

Π’Ρ€ΡŠΠ·ΠΊΠΈ към Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

И Π·Π° Π΄Π° Π΅ всичко просто, Π½Π°Π³Π»Π΅Π΄Π½ΠΎ ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΎ, Ρ‰Π΅ опиша всичко Π½Π° абстрактСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° плъгин.

ΠžΡ‚Π²Π°Ρ€ΡΠΌΠ΅ Visual Studio (Π°Π· ΠΈΠΌΠ°ΠΌ вСрсия Community 2019. И Π΄Π° – Π½Π° руски) ΠΈ създавамС Π½ΠΎΠ²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. НСка Π³ΠΎ Π½Π°Ρ€Π΅Ρ‡Π΅ΠΌ MySuperPluginForRevit

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

Π©Π΅ ΠΏΡ€Π°Π²ΠΈΠΌ плъгин Π·Π° Revit Π·Π° вСрсиитС 2015-2020. Π—Π°Ρ‚ΠΎΠ²Π° Ρ‰Π΅ създам Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° класовС .Net Framework) ΠΈ Ρ‰Π΅ Π³ΠΎ Π½Π°Ρ€Π΅Ρ‡Π΅ΠΌ MySuperPluginForRevit_2015

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

Врябва Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²Ρ€ΡŠΠ·ΠΊΠΈ към API Π½Π° Revit. Π Π°Π·Π±ΠΈΡ€Π° сС, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²Ρ€ΡŠΠ·ΠΊΠΈ към Π»ΠΎΠΊΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (трябва Π΄Π° инсталирамС всичкитС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ SDK ΠΈΠ»ΠΈ всички вСрсии Π½Π° Revit), Π½ΠΎ Π½ΠΈΠ΅ Ρ‰Π΅ ΠΏΠΎΠ΅ΠΌΠ΅ΠΌ ΠΏΠΎ правилния ΠΏΡŠΡ‚ ΠΈ Ρ‰Π΅ ΡΠ²ΡŠΡ€ΠΆΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° NuGet. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π΅ΠΌΠ°Π»ΠΊΠΎ количСство ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Π½ΠΎ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ собствСнитС си.

Π‘Π»Π΅Π΄ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ с дСсния Π±ΡƒΡ‚ΠΎΠ½ Π²ΡŠΡ€Ρ…Ρƒ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Β«Π’Ρ€ΡŠΠ·ΠΊΠΈΒ» ΠΈ ΠΈΠ·Π±Π΅Ρ€Π΅Ρ‚Π΅ Π² ΠΌΠ΅Π½ΡŽΡ‚ΠΎ Β«ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈ packages.config Π² PackageReference…»

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

Ако извСднъТ Ρ‚ΡƒΠΊ Π²ΠΈ Π·Π°Π²Π»Π°Π΄Π΅Π΅ ΠΏΠ°Π½ΠΈΠΊΠ°, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° Π½Π° свойствата Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° няма ваТния Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Β«ΠšΠΎΠΏΠΈΡ€Π°ΠΉ Π»ΠΎΠΊΠ°Π»Π½ΠΎΒ», ΠΊΠΎΠΉΡ‚ΠΎ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½ΠΎ трябва Π΄Π° сС Π·Π°Π΄Π°Π΄Π΅ Π½Π° стойност Π½Π΅Π²Π΅Ρ€Π½ΠΎ, Π½Π΅ сС ΠΏΠ°Π½ΠΈΠΊΡŒΠΎΡΠ²Π°ΠΉΡ‚Π΅ – ΠΎΡ‚ΠΈΠ²Π°ΠΌΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, отварямС Ρ„Π°ΠΉΠ»Π° с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .csproj Π² ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° вас Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ (Π°Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Notepad++) ΠΈ Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ записа Π·Π° нашия ΠΏΠ°ΠΊΠ΅Ρ‚. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

1.0.0

ДобавямС ΠΌΡƒ свойството runtime. ΠŸΠΎΠ»ΡƒΡ‡Π°Π²Π° сС Ρ‚Π°ΠΊΠ°:

1.0.0
  runtime

Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° няма Π΄Π° сС ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚ Π² ΠΈΠ·Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ°.
ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ – Π²Π΅Π΄Π½Π°Π³Π° Ρ‰Π΅ прСдставим, Ρ‡Π΅ Π½Π°ΡˆΠΈΡΡ‚ плъгин Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅Ρ‰ΠΎ ΠΎΡ‚ Revit API, ΠΊΠΎΠ΅Ρ‚ΠΎ сС Π΅ промСняло с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ вСрсии. Или просто трябва Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ Π½Π΅Ρ‰ΠΎ Π² ΠΊΠΎΠ΄Π° Π² зависимост ΠΎΡ‚ вСрсията Π½Π° Revit, Π·Π° която ΠΏΡ€Π°Π²ΠΈΠΌ плъгина. Π—Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° Ρ€Π°Π·Π»ΠΈΠΊΠΈ Π² ΠΊΠΎΠ΄Π° Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ символи Π·Π° условна компилация. Π©Π΅ ΠΎΡ‚Π²ΠΎΡ€ΠΈΠΌ свойствата Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ Π½Π° Ρ‚Π°Π±Π° β€žΠ‘Π±ΠΎΡ€ΠΊΠ°β€œ ΠΈ Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ β€žΠ”Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΠΈ Π·Π° условна ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡβ€œ Ρ‰Π΅ напишСм R2015.

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŠΡ‚ трябва Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ ΠΈ Π·Π° конфигурация Debug ΠΈ Π·Π° конфигурация Release.

Π”ΠΎΠΊΠ°Ρ‚ΠΎ смС Π² ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° със свойствата, Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ Π½Π° Ρ‚Π°Π±Π° β€žΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅β€œ ΠΈ Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ β€žΠžΡΠ½ΠΎΠ²Π½ΠΎ пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°β€œ ΠΈ Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ΠΌ суфикса _2015, Π·Π° Π΄Π° бъдС Π½Π°ΡˆΠ΅Ρ‚ΠΎ пространство ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π° унивСрсално ΠΈ нСзависимо ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° сборката:

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

Π’ моя случай Π² крайния ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΏΠ»ΡŠΠ³ΠΈΠ½ΠΈΡ‚Π΅ Π½Π° всички вСрсии сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² Π΅Π΄Π½Π° ΠΏΠ°ΠΏΠΊΠ°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° сборкитС ΠΌΠΈ остават с суфикс ΠΎΡ‚ Π²ΠΈΠ΄Π° _20Ρ…Ρ…. Но ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅Ρ‚Π΅ суфикса ΠΈ ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° сборката, Π°ΠΊΠΎ сС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°ΠΏΠΊΠΈ.

ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ към ΠΊΠΎΠ΄Π° Π½Π° Ρ„Π°ΠΉΠ»Π° Class1.cs ΠΈ ΠΈΠΌΠΈΡ‚ΠΈΡ€Π°ΠΌΠ΅ Ρ‚Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠ΄ с ΠΎΠ³Π»Π΅Π΄ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ вСрсии Π½Π° Revit:

namespace MySuperPluginForRevit
{
    using Autodesk.Revit.Attributes;
    using Autodesk.Revit.DB;
    using Autodesk.Revit.UI;

    [Regeneration(RegenerationOption.Manual)]
    [Transaction(TransactionMode.Manual)]
    public class Class1 : IExternalCommand
    {
        public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
        {
#if R2015
            TaskDialog.Show("ModPlus", "Π—Π΄Ρ€Π°Π²Π΅ΠΉ, Revit 2015");
#elif R2016
            TaskDialog.Show("ModPlus", "Π—Π΄Ρ€Π°Π²Π΅ΠΉ, Revit 2016");
#elif R2017
            TaskDialog.Show("ModPlus", "Π—Π΄Ρ€Π°Π²Π΅ΠΉ, Revit 2017");
#elif R2018
            TaskDialog.Show("ModPlus", "Π—Π΄Ρ€Π°Π²Π΅ΠΉ, Revit 2018");
#elif R2019
            TaskDialog.Show("ModPlus", "Π—Π΄Ρ€Π°Π²Π΅ΠΉ, Revit 2019");
#elif R2020
            TaskDialog.Show("ModPlus", "Π—Π΄Ρ€Π°Π²Π΅ΠΉ, Revit 2020");
#endif
            return Result.Succeeded;
        }
    }
}

Π’Π΅Π΄Π½Π°Π³Π° Π²Π·Π΅Ρ… ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ всички вСрсии Π½Π° Revit, ΠΏΠΎ-Π³ΠΎΡ€Π΅ ΠΎΡ‚ вСрсия 2015 (ΠΊΠΎΠΈΡ‚ΠΎ бяха Π½Π°Π»ΠΈΡ‡Π½ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° писанСто Π½Π° статията) ΠΈ Π²Π΅Π΄Π½Π°Π³Π° Π²Π·Π΅Ρ… ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° символи Π·Π° условна компилация, ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ шаблон.

ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ към основната ΠΈΠ·Π½Π΅Π½Π°Π΄Π°. БъздавамС Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, само Ρ‡Π΅ Π·Π° вСрсията Π½Π° плъгина ΠΏΠΎΠ΄ Revit 2016. ΠŸΠΎΠ²Ρ‚Π°Ρ€ΡΠΌΠ΅ всичкитС описани ΠΏΠΎ-Π³ΠΎΡ€Π΅ дСйствия, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ замСнямС числото 2015 с 2016. Но Ρ„Π°ΠΉΠ»ΡŠΡ‚ Class1.cs ΠΎΡ‚ новия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°ΠΌΠ΅.

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

Π€Π°ΠΉΠ»ΡŠΡ‚ с нСобходимия ΠΊΠΎΠ΄ – Class1.cs – Π²Π΅Ρ‡Π΅ Π³ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΠΈ просто трябва Π΄Π° поставим Π»ΠΈΠ½ΠΊ към Π½Π΅Π³ΠΎ Π² новия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Има Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° вмъкванС Π½Π° Π»ΠΈΠ½ΠΊΠΎΠ²Π΅:

  1. Π”ΡŠΠ»ΡŠΠ³ – натискамС с дСсния Π±ΡƒΡ‚ΠΎΠ½ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ опцията Β«Π”ΠΎΠ±Π°Π²ΠΈΒ» -> Β«Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Β», Π² ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΎΡ‚ΠΎ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ‡Π΅ Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ нуТния Ρ„Π°ΠΉΠ» ΠΈ вмСсто опцията Β«Π”ΠΎΠ±Π°Π²ΠΈΒ» ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ опцията Β«Π”ΠΎΠ±Π°Π²ΠΈ ΠΊΠ°Ρ‚ΠΎ Π²Ρ€ΡŠΠ·ΠΊΠ°Β»

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

  1. ΠšΡ€Π°Ρ‚ΡŠΠΊ – Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Ρ€Π΅ΡˆΠ°Π²Π°Ρ‡Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ нуТния Ρ„Π°ΠΉΠ» (ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ Ρ†Π΅Π»ΠΈ ΠΏΠ°ΠΏΠΊΠΈ) ΠΈ Π³ΠΈ плъзгамС Π² новия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π·Π°Π΄ΡŠΡ€ΠΆΠ°ΠΉΠΊΠΈ клавиша Alt. ΠŸΡ€ΠΈ ΠΏΠ»ΡŠΠ·Π³Π°Π½Π΅Ρ‚ΠΎ Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Π΅ ΠΊΡƒΡ€ΡΠΎΡ€ΡŠΡ‚ Π½Π° ΠΌΠΈΡˆΠΊΠ°Ρ‚Π° Ρ‰Π΅ смСня Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° си ΠΎΡ‚ ΠΏΠ»ΡŽΡΡ‡Π΅ Π½Π° стрСлка, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π·Π°Π΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅ клавиша Alt.
    UPD: Някак си внСсох ΠΎΠ±ΡŠΡ€ΠΊΠ²Π°Π½Π΅ Π² Ρ‚ΠΎΠ·ΠΈ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„ – Π·Π° Π΄Π° прСмСстватС няколко Ρ„Π°ΠΉΠ»Π°, трябва Π΄Π° Π·Π°Π΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅ Shift+Alt!

Π‘Π»Π΅Π΄ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ‚Π° Π² нашия Π²Ρ‚ΠΎΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‰Π΅ сС появи Ρ„Π°ΠΉΠ» Class1.cs с ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° ΠΈΠΊΠΎΠ½ΠΊΠ° (синя стрСлка):

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

ΠŸΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΎ Π΄Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅ Π² контСкста Π½Π° ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΄Π° сС ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ символи Π½Π° условна компилация:

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

По Ρ‚Π°Π·ΠΈ схСма създавамС всички останали ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ (2017-2020). Π›Π°ΠΉΡ„Ρ…Π°ΠΊ – Π°ΠΊΠΎ ΠΏΠ»ΡŠΠ·Π³Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² Ρ€Π΅ΡˆΠ°Π²Π°Ρ‡Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π΅ ΠΎΡ‚ основния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‚Π΅ Π²Π΅Ρ‡Π΅ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Π²Ρ€ΡŠΠ·ΠΊΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π΅ Π·Π°Π΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅ клавиша Alt!

ΠžΠΏΠΈΡΠ°Π½ΠΈΡΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ напълно Π΄ΠΎΠ±ΡŠΡ€, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π½ΠΎΠ²Π° вСрсия Π½Π° плъгина ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° – всичко Ρ‚ΠΎΠ²Π° става доста досадно. А наскоро извСднъТ ΠΎΡΡŠΠ·Π½Π°Ρ… ΠΊΠ°ΠΊ всичко Ρ‚ΠΎΠ²Π° Π΄Π° сС Ρ€Π΅ΡˆΠΈ с Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ към втория ΠΌΠ΅Ρ‚ΠΎΠ΄.

Магия Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ стигнСтС Π΄ΠΎ Ρ‚ΡƒΠΊ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ°Ρ‚Π΅ Β«Π—Π°Ρ‰ΠΎ описваш ΠΏΡŠΡ€Π²ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π°ΠΊΠΎ статията Π΅ Π²Π΅Π΄Π½Π°Π³Π° Π·Π° втория?!Β». ΠžΠΏΠΈΡΠ°Ρ… всичко, Π·Π° Π΄Π° Π΅ ΠΏΠΎ-ясно Π·Π° ΠΊΠ°ΠΊΠ²ΠΎ са Π½ΠΈ Π½ΡƒΠΆΠ½ΠΈ символитС Π½Π° условната компилация ΠΈ Π² ΠΊΠ°ΠΊΠ²ΠΈ мСста ΠΈΠΌΠ°ΠΌΠ΅ различия Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅. И сСга Π½ΠΈ става ΠΏΠΎ-ясно ΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π»ΠΈΠΊΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ трябва Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅, оставяйки само Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

И Π·Π° Π΄Π° Π΅ всичко ΠΏΠΎ-ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, няма Π΄Π° създавамС Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π° Ρ‰Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² тСкущия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, създадСн ΠΏΠΎ ΠΏΡŠΡ€Π²ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄.

И Ρ‚Π°ΠΊΠ°, Π½Π° ΠΏΡŠΡ€Π²ΠΎ място, ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°ΠΌΠ΅ ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ всички ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, освСн основния (ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅). Π’.Π΅. ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ‚Π΅ Π·Π° вСрсиитС 2016-2020. ΠžΡ‚Π²Π°Ρ€ΡΠΌΠ΅ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°ΠΌΠ΅ ΠΏΠ°ΠΏΠΊΠΈΡ‚Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.

Π’ Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ остава само Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” MySuperPluginForRevit_2015. ΠžΡ‚Π²Π°Ρ€ΡΠΌΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ свойства ΠΈ:

  1. На Ρ‚Π°Π±Π° Β«ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β» ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° компилацията ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°ΠΌΠ΅ ΡΡƒΡ„ΠΈΠΊΡΡŠΡ‚ _2015 (ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ Ρ‰Π΅ станС ясно Π·Π°Ρ‰ΠΎ)
  2. На Ρ‚Π°Π±Π° Β«Π‘Π±ΠΎΡ€ΠΊΠ°Β» ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ символа Π½Π° условна компилация R2015 ΠΎΡ‚ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅

Π—Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°: Π² послСдната вСрсия Π½Π° Visual Studio ΠΈΠΌΠ° бъг – символитС Π½Π° условна компилация Π½Π΅ сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ Π² ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° със свойства Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΌΠ°ΠΊΠ°Ρ€ Ρ‡Π΅ са Π½Π°Π»ΠΈΡ‡Π½ΠΈ. Ако Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚Π΅ Ρ‚ΠΎΠ·ΠΈ бъг, Ρ‰Π΅ трябва Π΄Π° Π³ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅Ρ‚Π΅ Ρ€ΡŠΡ‡Π½ΠΎ ΠΎΡ‚ Ρ„Π°ΠΉΠ»Π° .csproj. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, всС ΠΎΡ‰Π΅ Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ Π² Π½Π΅Π³ΠΎ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅.

ΠŸΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅ΠΌ суфиксa _2015 ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅ Π½Π° Ρ€Π΅Π΄ ΠΈ чувството Π½Π° ΠΏΠ΅Ρ€Ρ„Π΅ΠΊΡ†ΠΈΠΎΠ½ΠΈΠ·ΡŠΠΌ! ΠžΡ‚Π²Π°Ρ€ΡΠΌΠ΅ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ Ρ‚Π°ΠΌ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½ ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ.

ΠžΡ‚Π²Π°Ρ€ΡΠΌΠ΅ диспСтчСра Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡΡ‚Π° Release Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Π½Π΅ Π½ΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°, Π·Π°Ρ‚ΠΎΠ²Π° я ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅. БъздавамС Π½ΠΎΠ²ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с Π²Π΅Ρ‡Π΅ ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈΡ‚Π΅ Π½ΠΈ ΠΈΠΌΠ΅Π½Π° R2015, R2016, …, R2020. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Π½Π΅ Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

ΠžΡ‚ΠΈΠ²Π°ΠΌΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ отварямС Ρ„Π°ΠΉΠ»Π° с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .csproj Π² ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° вас Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€. ДСйствитСлно, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ ΠΈ Π² Visual Studio – трябва Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ Π² контСкстното мСню Ρ‰Π΅ бъдС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° опция:

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ Π² Visual Studio Π΅ Π΄Π°ΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π½ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΡŠΡ‚ подравнява ΠΈ подскаТС.

Π’ Ρ„Π°ΠΉΠ»Π° Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ PropertyGroup – Π² самия Π²Ρ€ΡŠΡ… Π΅ общият, слСдван ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ с условия. Π’Π΅Π·ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π·Π°Π΄Π°Π²Π°Ρ‚ свойства Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅. ΠŸΡŠΡ€Π²ΠΈΡΡ‚ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ няма условия, Π·Π°Π΄Π°Π²Π° ΠΎΠ±Ρ‰ΠΈΡ‚Π΅ свойства, Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ с условия, ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, промСнят някои свойства Π² зависимост ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅.

ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ към общия (ΠΏΡŠΡ€Π²ΠΈ) Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ PropertyGroup ΠΈ Π³Π»Π΅Π΄Π°ΠΌΠ΅ свойството AssemblyName – Ρ‚ΠΎΠ²Π° Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° сборката ΠΈ Ρ‚ΠΎ Π½Π΅ трябва Π΄Π° ΠΈΠΌΠ° суфикс _2015. Ако ΡΡƒΡ„ΠΈΠΊΡΡŠΡ‚ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½, Π³ΠΎ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅.

НамирамС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° с условиС

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

Π’ΠΎΠΉ Π½Π΅ Π½ΠΈ Π΅ Π½ΡƒΠΆΠ΅Π½ – ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ Π³ΠΎ.

Π•Π»Π΅ΠΌΠ΅Π½Ρ‚ΡŠΡ‚ с условиС

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

Ρ‰Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π΅Ρ‚Π°ΠΏΠ° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ отстраняванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° промСнятС свойствата ΠΌΡƒ спорСд Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ си – Π΄Π° Π·Π°Π΄Π°Π²Π°Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ·Ρ…ΠΎΠ΄Π½ΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π°, Π΄Π° промСнятС символитС Π½Π° условна компилация ΠΈ Ρ‚.Π½.

Π‘Π΅Π³Π° създавамС Π½ΠΎΠ²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ PropertyGroup Π·Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Π’ Ρ‚Π΅Π·ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π½ΠΈ Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π° Π·Π°Π΄Π°Π΄Π΅ΠΌ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ свойства:

  • OutputPath – ΠΈΠ·Ρ…ΠΎΠ΄Π½Π°Ρ‚Π° ΠΏΠ°ΠΏΠΊΠ°. Аз Π·Π°Π΄Π°Π²Π°ΠΌ стандартната стойност binR20xx
  • DefineConstants – символи Π·Π° условна компилация. Врябва Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ стойност TRACE;R20Ρ…Ρ…
  • TargetFrameworkVersion – вСрсия Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°. Π—Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit API трябва Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ.
  • AssemblyName – ΠΈΠΌΠ΅ Π½Π° сборката (Ρ‚.Π΅. ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π°). ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° сборката, Π½ΠΎ Π·Π° унивСрсалност ΡΡŠΠ²Π΅Ρ‚Π²Π°ΠΌ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ стойността $(AssemblyName)_20Ρ…Ρ…. Π—Π° Ρ†Π΅Π»Ρ‚Π° Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ…ΠΌΠ΅ суфикса ΠΎΡ‚ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° сборката

Най-Π²Π°ΠΆΠ½Π°Ρ‚Π° характСристика Π½Π° всички Ρ‚Π΅Π·ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ – Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ просто Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΊΠΎΠΏΠΈΡ€Π°Π½ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π±Π΅Π· Π΄Π° сС промСнят. По-Π΄ΠΎΠ»Ρƒ Π² статията Ρ‰Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»Π° .csproj.

Π”ΠΎΠ±Ρ€Π΅, с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΈΡ‚Π΅ свойства Ρ€Π°Π·Π±Ρ€Π°Ρ…ΠΌΠ΅ – Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ слоТно. Но ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ с Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (NuGet ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ). Ако ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΠΊ, Ρ‰Π΅ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ сС Π·Π°Π΄Π°Π²Π°Ρ‚ Π² Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ItemGroup. Но Π΅Ρ‚ΠΎ Π΅Π΄Π½ΠΎ Π½Π΅Π΄ΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠ΅ – Ρ‚ΠΎΠ·ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° условията Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, ΠΊΠ°Ρ‚ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ PropertyGroup. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Ρ‚ΠΎΠ²Π° Π΄Π° Π΅ Π΄ΠΎΡ€ΠΈ бъг Π½Π° Visual Studio, Π½ΠΎ Π°ΠΊΠΎ Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ няколко Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° ItemGroup с условията Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅, Π° Π²ΡŠΡ‚Ρ€Π΅ поставитС Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ към NuGet ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, Ρ‚ΠΎ ΠΏΡ€ΠΈ смяна Π½Π° конфигурацията към ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° сС добавят всички посочСни ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ.

На ΠΏΠΎΠΌΠΎΡ‰ Π½ΠΈ ΠΈΠ΄Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΡŠΡ‚ Π˜Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ ΠΏΠΎΠ·Π½Π°Ρ‚Π°Ρ‚Π° Π½ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° if-then-else.

Използвайки Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π˜Π·Π±Π΅Ρ€Π΅Ρ‚Π΅, Π·Π°Π΄Π°Π²Π°ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ NuGet ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:

Всичкото ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ csproj

Debug
    AnyCPU
    {5AD738D6-4122-4E76-B865-BE7CE0F6B3EB}
    Library
    Properties
    MySuperPluginForRevit
    MySuperPluginForRevit
    v4.5
    512
    true
  
  
    true
    full
    false
    binDebug
    DEBUG;R2015
    prompt
    4
  
  
    binR2015
    TRACE;R2015
    v4.5
    $(AssemblyName)_2015
  
  
    binR2016
    TRACE;R2016
    v4.5
    $(AssemblyName)_2016
  
  
    binR2017
    TRACE;R2017
    v4.5.2
    $(AssemblyName)_2017
  
  
    binR2018
    TRACE;R2018
    v4.5.2
    $(AssemblyName)_2018
  
  
    binR2019
    TRACE;R2019
    v4.7
    $(AssemblyName)_2019
  
  
    binR2020
    TRACE;R2020
    v4.7
    $(AssemblyName)_2020
  
  
    
    
    
    
    
    
    
    
  
  
    
    
  
  
    
      
        
          1.0.0
          runtime
        
      
    
    
      
        
          1.0.0
          runtime
        
      
    
    
      
        
          1.0.0
          runtime
        
      
    
    
      
        
          1.0.0
          runtime
        
      
    
    
      
        
          1.0.0
          runtime
        
      
    
    
      
        
          1.0.0
          runtime

ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ Π² Π΅Π΄Π½ΠΎ ΠΎΡ‚ условията посочих Π΄Π²Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‡Ρ€Π΅Π· Π˜Π›Π˜ (Or). Π’Π°ΠΊΠ° Ρ‰Π΅ сС ΡΠ²ΡŠΡ€Π·Π²Π° нСобходимият ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΡ€ΠΈ конфигурация Debug.

И Π΅Ρ‚ΠΎ Ρ‡Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ всичко Π΅ ΠΈΠ΄Π΅Π°Π»Π½ΠΎ. Π—Π°Ρ€Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° конфигурация, ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ ΠΎΡ‚ контСкстното мСню Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ (Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°) ΠΏΡƒΠ½ΠΊΡ‚Π° β€žΠ’ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° всички ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ NuGetβ€œ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ сС промСнят ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½ΠΈ.

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

И Π½Π° Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ стигнах Π΄ΠΎ задънСна ΡƒΠ»ΠΈΡ†Π° – Π·Π° Π΄Π° ΡΡŠΠ±Π΅Ρ€Π΅ΠΌ Π²Π΅Π΄Π½Π°Π³Π° всички ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ…ΠΌΠ΅ Π΄Π° сС възползвамС ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΡ‚ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ (мСню β€žΠ‘Π±ΠΎΡ€ΠΊΠ°Β» -> Β«ΠŸΠ°ΠΊΠ΅Ρ‚Π½ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅β€œ), Π½ΠΎ ΠΏΡ€ΠΈ смяната Π½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅ няма Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. И ΠΏΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΡΡŠΡ‰ΠΎ Π½Π΅ сС случва, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΏΠΎ идСя Π±ΠΈ трябвало. РСшСниС Π½Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с стандартни срСдства Π½Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ…. И вСроятно Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰ΠΎ Π΅ бъг Π½Π° Visual Studio.

Π—Π°Ρ‚ΠΎΠ²Π° Π·Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ спСциализирана систСма Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Nuke. Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π½Π΅ исках Π΄Π° Π³ΠΎ правя, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ смятам, Ρ‡Π΅ Π΅ излишно Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° плъгини, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π΅ Π²ΠΈΠΆΠ΄Π°ΠΌ Π΄Ρ€ΡƒΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. А Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠ° β€žΠ—Π°Ρ‰ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Nuke?β€œ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ Π΅ прост – ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π³ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°.

И Ρ‚Π°ΠΊΠ°, ΠΎΡ‚ΠΈΠ²Π°ΠΌΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° Π½Π° Π½Π°ΡˆΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ (Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°), Π·Π°Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ клавиша Shift ΠΈ Ρ‰Ρ€Π°ΠΊΠ²Π°ΠΌΠ΅ с дСсния Π±ΡƒΡ‚ΠΎΠ½ Π½Π° ΠΌΠΈΡˆΠΊΠ°Ρ‚Π° Π²ΡŠΡ€Ρ…Ρƒ ΠΏΡ€Π°Π·Π½ΠΎΡ‚ΠΎ място Π² ΠΏΠ°ΠΏΠΊΠ°Ρ‚Π° – Π² контСкстното мСню ΠΈΠ·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡƒΠ½ΠΊΡ‚Π° β€žΠžΡ‚Π²ΠΎΡ€ΠΈ PowerShell Ρ‚ΡƒΠΊΒ».

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

Ако няматС инсталиран nuke, ΠΏΡŠΡ€Π²ΠΎ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°

dotnet tool install Nuke.GlobalTool –global

Π‘Π΅Π³Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° nuke ΠΈ Ρ‰Π΅ сС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ Π΄Π° настроитС nuke Π·Π° тСкущия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. НС Π·Π½Π°ΠΌ ΠΊΠ°ΠΊ Π΅ ΠΏΠΎ-ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° сС напишС Π½Π° Π±ΡŠΠ»Π³Π°Ρ€ΡΠΊΠΈ – Π½Π° английски Ρ‰Π΅ сС напишС Could not find .nuke file. Do you want to setup a build? [y/n]

НатискамС клавиша Y ΠΈ слСд Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΈΠΌΠ°ΠΌΠ΅ нСпосрСдствСни Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° настройка. НуТСн Π½ΠΈ Π΅ Π½Π°ΠΉ-простият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° MSBuild, Π·Π°Ρ‚ΠΎΠ²Π° отговарямС ΠΊΠ°ΠΊΡ‚ΠΎ Π½Π° Π΅ΠΊΡ€Π°Π½Π°:

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠΌΠ΅ сС Π² Visual Studio, която Ρ‰Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ Π΄Π° ΠΏΡ€Π΅Π·Π°Ρ€Π΅Π΄ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² Π½Π΅Π³ΠΎ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠŸΡ€Π΅Π·Π°Ρ€Π΅ΠΆΠ΄Π°ΠΌΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, Ρ‡Π΅ сС Π΅ появил ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ build , Π² ΠΊΠΎΠΉΡ‚ΠΎ Π½ΠΈ интСрСсува само Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ» – Build.cs

БъздавамС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π° плъгин с компилация Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ вСрсии Π½Π° Revit/AutoCAD

ΠžΡ‚Π²Π°Ρ€ΡΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» ΠΈ пишСм скрипт Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ΄ всички ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. Или ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ моя скрипт, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ Π·Π° сСбС си:

using System.IO;
using Nuke.Common;
using Nuke.Common.Execution;
using Nuke.Common.ProjectModel;
using Nuke.Common.Tools.MSBuild;
using static Nuke.Common.Tools.MSBuild.MSBuildTasks;

[CheckBuildProjectConfigurations]
[UnsetVisualStudioEnvironmentVariables]
class Build : NukeBuild
{
    public static int Main () => Execute(x => x.Compile);

    [Solution] readonly Solution Solution;

    // If the solution name and the project (plugin) name are different, then indicate the project (plugin) name here
    string PluginName => Solution.Name;

    Target Compile => _ => _
        .Executes(() =>
        {
            var project = Solution.GetProject(PluginName);
            if (project == null)
                throw new FileNotFoundException("Not found!");

            var build = new List();
            foreach (var (_, c) in project.Configurations)
            {
                var configuration = c.Split("|")[0];

                if (configuration == "Debug" || build.Contains(configuration))
                    continue;

                Logger.Normal($"Configuration: {configuration}");

                build.Add(configuration);

                MSBuild(_ => _
                    .SetProjectFile(project.Path)
                    .SetConfiguration(configuration)
                    .SetTargets("Restore"));
                MSBuild(_ => _
                    .SetProjectFile(project.Path)
                    .SetConfiguration(configuration)
                    .SetTargets("Rebuild"));
            }
        });
}

Π’Ρ€ΡŠΡ‰Π°ΠΌΠ΅ сС Π² ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° Π½Π° PowerShell ΠΈ ΠΎΡ‚Π½ΠΎΠ²ΠΎ пишСм ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° nuke (ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° nuke с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡ‚ΠΎ Π¦Π΅Π». Но ΠΈΠΌΠ°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ Π¦Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ сС изпълнява ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅). Π‘Π»Π΅Π΄ натисканС Π½Π° клавиша Enter, Ρ‰Π΅ сС почувствамС ΠΊΠ°Ρ‚ΠΎ истински Ρ…Π°ΠΊΠ΅Ρ€ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½Π°Ρ‚Π° компилация Π½Π° нашия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‰Π΅ сС случи, Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊΠ°ΠΊΡ‚ΠΎ във Ρ„ΠΈΠ»ΠΌΠΈΡ‚Π΅.

ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ PowerShell Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ Visual Studio (ΠΌΠ΅Π½ΡŽΡ‚ΠΎ β€žΠ˜Π·Π³Π»Π΅Π΄Β» -> Β«Π”Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠ·ΠΎΡ€Ρ†ΠΈΒ» -> «Конзола Π½Π° пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€β€œ), Π½ΠΎ Ρ‚Π°ΠΌ всичко Ρ‰Π΅ Π΅ Ρ‡Π΅Ρ€Π½ΠΎ-бяло, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

На Ρ‚ΠΎΠ²Π° ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°ΠΌ моята статия. Π£Π²Π΅Ρ€Π΅Π½ съм, Ρ‡Π΅ Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сами Π΄Π° сС справитС с вСрсията Π·Π° AutoCAD. Надявам сС, Ρ‡Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΡŠΡ‚, ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ Ρ‚ΡƒΠΊ, Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈ своитС β€žΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈβ€œ.

Благодаря Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ!

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster