เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เป€เบกเบทเปˆเบญเบžเบฑเบ”เบ—เบฐเบ™เบฒ plugins เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ CAD (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™ AutoCAD, Revit เปเบฅเบฐ Renga) เป€เบกเบทเปˆเบญเป€เบงเบฅเบฒเบœเปˆเบฒเบ™เป„เบ›, เบšเบฑเบ™เบซเบฒเบซเบ™เบถเปˆเบ‡เบˆเบฐเบ›เบฒเบเบปเบ” - เบฎเบธเปˆเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เป‚เบ›เบฅเปเบเบฅเบกเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ API เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบฅเบฐเบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡ plugins เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เป€เบฎเบฑเบ”.

เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปˆเบฒเบ™เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡ plugin เบซเบผเบทเบ—เปˆเบฒเบ™เบเบฑเบ‡เป€เบ›เบฑเบ™เบœเบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบชเบญเบ™เบ•เบปเบ™เป€เบญเบ‡เปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™, เบ›เปˆเบฝเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เบกเบฑเบ™เปเบฅเบฐเบ›เบฐเบเบญเบš plugin เบฎเบธเปˆเบ™เปƒเบซเบกเปˆ. เบ•เบฒเบกโ€‹เบ™เบฑเป‰เบ™โ€‹เปเบฅเป‰เบง, เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบˆเบฐโ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบ„เปˆเบฒโ€‹เปเบฎเบ‡โ€‹เบ‡เบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เบ‚เบถเป‰เบ™โ€‹เบซเบผเบฒเบโ€‹เบ„เบฑเป‰เบ‡.

เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเบชเบปเบšเบเบฒเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰, เบ—เปˆเบฒเบ™เบˆเบฐเบŠเบญเบเบซเบฒเบซเบผเบฒเบเบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบตเป‰เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ‚เป‰เบญเบเบเปˆเบฒเบ‡เป„เบ›เบ•เบฒเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ™เบตเป‰ เปเบฅเบฐเบขเบฒเบเบšเบญเบเป€เบˆเบปเป‰เบฒเบงเปˆเบฒเบ‚เป‰เบญเบเบˆเบปเบšเบกเบฒเปเบ™เบงเปƒเบ” เปเบฅเบฐเบกเบฑเบ™เบชเบฐเบ”เบงเบเปเบ™เบงเปƒเบ”.

เบ—เปเบฒเบญเบดเบ”, เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เปเบฅเบฐเบ—เบตเปˆเบ‚เป‰เบญเบเป„เบ”เป‰เปƒเบŠเป‰เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™.

เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป„เบŸเบฅเปŒเป‚เบ„เบ‡เบเบฒเบ™

เปเบฅเบฐเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ plugin.

เบกเบฒเป€เบ›เบตเบ” Visual Studio (เบ‚เป‰เบญเบเบกเบต Community 2019 เป€เบงเบตเบŠเบฑเปˆเบ™. เปเบฅเบฐเปเบกเปˆเบ™ - เปƒเบ™เบžเบฒเบชเบฒเบฅเบฑเบ”เป€เบŠเบ) เปเบฅเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเปเปˆ. เปƒเบซเป‰เป‚เบ—เบซเบฒเบฅเบฒเบง MySuperPluginForRevit

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เบ›เบฅเบฑเบเบญเบดเบ™เบชเปเบฒเบฅเบฑเบš Revit เบชเปเบฒเบฅเบฑเบšเบฎเบธเปˆเบ™ 2015-2020. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบซเป‰เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบซเบกเปˆเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚ (Net Framework Class Library) เปเบฅเบฐเป‚เบ—เบซเบฒเบกเบฑเบ™ MySuperPluginForRevit_2015

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบš Revit API. เปเบ™เปˆเบ™เบญเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป„เบŸเบฅเปŒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ (เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡ SDKs เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบซเบผเบท Revit เบ—เบธเบเบฅเบธเป‰เบ™), เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบŠเบธเบ” NuGet เบ—เบฑเบ™เบ—เบต. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบŠเบธเบ”เบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบšเปเปˆเบซเบผเบฒเบเบ›เบฒเบ™เปƒเบ”, เปเบ•เปˆเบ‚เป‰เบญเบเบˆเบฐเปƒเบŠเป‰เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบŠเบธเบ”, เบ„เบฅเบดเบเบ‚เบงเบฒเปƒเบชเปˆเบฅเบฒเบเบเบฒเบ™ "เป€เบญเบเบฐเบชเบฒเบ™"เปเบฅเบฐเป€เบฅเบทเบญเบเบฅเบฒเบเบเบฒเบ™"เบเป‰เบฒเบ packages.config เป„เบ› PackageReference...ยป

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เบ–เป‰เบฒเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เปƒเบ™เบˆเบธเบ”เบ™เบตเป‰, เป€เบˆเบปเป‰เบฒเป€เบฅเบตเปˆเบกเบ•เบปเบเปƒเบˆ, เป€เบžเบฒเบฐเบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบŠเบธเบ”เบˆเบฐเบšเปเปˆเบกเบตเบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ "เบชเบณเป€เบ™เบปเบฒเบขเบนเปˆเปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™", เบŠเบถเปˆเบ‡เปเบ™เปˆเบ™เบญเบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบกเบนเบ™เบ„เปˆเบฒ เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบขเปˆเบฒเบ•เบปเบเปƒเบˆ - เป„เบ›เบ—เบตเปˆเป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบเบฒเบ™, เป€เบ›เบตเบ”เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ™เบฒเบกเบชเบฐเบเบธเบ™ .csproj เปƒเบ™เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™เบ—เบตเปˆเบชเบฐเบ”เบงเบเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™ (เบ‚เป‰เบญเบเปƒเบŠเป‰ Notepad ++) เปเบฅเบฐเบŠเบญเบเบซเบฒเบฅเบฒเบเบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบŠเบธเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เบ™เบฒเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

<PackageReference Include="ModPlus.Revit.API.2015">
  <Version>1.0.0</Version>
</PackageReference>

เป€เบžเบตเปˆเบกเบŠเบฑเบšเบชเบดเบ™เปƒเบชเปˆเบกเบฑเบ™ เป€เบงเบฅเบฒเปเบฅเปˆเบ™. เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เปเบšเบšเบ™เบตเป‰:

<PackageReference Include="ModPlus.Revit.API.2015">
  <Version>1.0.0</Version>
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™, เป„เบŸเบฅเปŒเบˆเบฒเบเบŠเบธเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบ„เบฑเบ”เบฅเบญเบเปƒเบชเปˆเป‚เบŸเบ™เป€เบ”เบตเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.
เปƒเบซเป‰เป„เบ›เบ•เบทเปˆเบกเบญเบตเบ - เปƒเบซเป‰เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบ—เบฑเบ™เบ—เบตเบงเปˆเบฒเบ›เบฑเปŠเบเบญเบดเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฒเบ Revit API, เป€เบŠเบดเปˆเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ. เบ”เบต, เบซเบผเบทเบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบฅเบฐเบซเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เบ•เบฒเบกเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ Revit เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบชเป‰เบฒเบ‡ plugin. เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบฅเบฐเบซเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบชเบฑเบ™เบเบฒเบฅเบฑเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เป€เบ›เบตเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™, เป„เบ›เบ—เบตเปˆเปเบ–เบš โ€œAssembly"เปเบฅเบฐเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก"เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚"เปƒเบซเป‰เบ‚เบฝเบ™ R2015.

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เปƒเบซเป‰เบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบเบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเป€เบžเบตเปˆเบกเบชเปเบฒเบฅเบฑเบšเบ—เบฑเบ‡ Debug เปเบฅเบฐ Release configurations.

เบ”เบต, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”, เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ™เบ—เบตเป„เบ›เบ—เบตเปˆเปเบ–เบš "Application"เปเบฅเบฐเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก"namespace เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ยป เป€เบญเบปเบฒเบ„เบณเบ•เปเปˆเบ—เป‰เบฒเบเบญเบญเบ _2015เป€เบžเบทเปˆเบญเปƒเบซเป‰ namespace เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบŠเบทเปˆเบชเบฐเบžเบฒ:

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ, เปƒเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบ, plugins เบ‚เบญเบ‡เบ—เบธเบเบฎเบธเปˆเบ™เบ–เบทเบเปƒเบชเปˆเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบŸเป€เบ”เบตเบ”เบฝเบง, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบŠเบทเปˆเบเบฒเบ™เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบ‚เป‰เบญเบเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบเบฑเบšเบชเปˆเบงเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เปเบšเบšเบŸเบญเบก. _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", "Hello Revit 2015");
#elif R2016
            TaskDialog.Show("ModPlus", "Hello Revit 2016");
#elif R2017
            TaskDialog.Show("ModPlus", "Hello Revit 2017");
#elif R2018
            TaskDialog.Show("ModPlus", "Hello Revit 2018");
#elif R2019
            TaskDialog.Show("ModPlus", "Hello Revit 2019");
#elif R2020
            TaskDialog.Show("ModPlus", "Hello Revit 2020");
#endif
            return Result.Succeeded;
        }
    }
}

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ—เบฑเบ™เบ—เบตเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ—เบธเบเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ Revit เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบชเบฐเบšเบฑเบš 2015 (เบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เป€เบงเบฅเบฒเบ‚เบฝเบ™) เปเบฅเบฐเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบชเบฑเบ™เบเบฒเบฅเบฑเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰เปเบกเปˆเปเบšเบšเบ”เบฝเบงเบเบฑเบ™.

เปƒเบซเป‰เบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเบˆเบธเบ”เป€เบ”เบฑเปˆเบ™เบ•เบปเป‰เบ™เบ•เป. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบซเบกเปˆเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡ plugin เบชเปเบฒเบฅเบฑเบš Revit 2016. เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เป€เบฅเบทเป‰เบกเบ„เบทเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เบ—เบปเบ”เปเบ—เบ™เบˆเปเบฒเบ™เบงเบ™ 2015 เบเบฑเบšเบˆเปเบฒเบ™เบงเบ™ 2016. เปเบ•เปˆเป„เบŸเบฅเปŒ Class1.cs เบฅเบถเบšเบญเบญเบเบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เปƒเบซเบกเปˆ.

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ - Class1.cs โ€“ เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบกเบฑเบ™เบขเบนเปˆเปเบฅเป‰เบง เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบชเปˆเบฅเบดเป‰เบ‡เป„เบ›เบซเบฒเบกเบฑเบ™เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เปƒเปเปˆ. เบกเบตเบชเบญเบ‡เบงเบดเบ—เบตเบ—เบตเปˆเบˆเบฐเปƒเบชเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ:

  1. เบเบฒเบง - เบ„เบฅเบดเบเบ‚เบงเบฒเปƒเบชเปˆเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเป€เบฅเบทเบญเบ "เบ•เบทเปˆเบกยป-> ยซเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง", เปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ—เบตเปˆเป€เบ›เบตเบ”, เบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบ "เบ•เบทเปˆเบก"เป€เบฅเบทเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบ"เป€เบžเบตเปˆเบกเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆยป

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

  1. เบชเบฑเป‰เบ™ โ€“ เป‚เบ”เบโ€‹เบเบปเบ‡โ€‹เปƒเบ™โ€‹เบเบฒเบ™ explorer เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹, เป€เบฅเบทเบญเบโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™ (เบซเบผเบทโ€‹เปเบกเป‰โ€‹เบเบฐโ€‹เบ—เบฑเป‰เบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹, เบซเบผเบทโ€‹เปเบกเป‰โ€‹เบเบฐโ€‹เบ—เบฑเป‰เบ‡โ€‹เป‚เบŸโ€‹เป€เบ”เบตโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹) เปเบฅเบฐ drag เบกเบฑเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป„เบ›โ€‹เปƒเบ™โ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เปƒเบซเบกเปˆโ€‹เปƒเบ™โ€‹เบ‚เบฐโ€‹เบ™เบฐโ€‹เบ—เบตเปˆโ€‹เบเบปเบ”โ€‹เบ›เบธเปˆเบก Alt เบ„เป‰เบฒเบ‡โ€‹เป„เบงเป‰โ€‹. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฅเบฒเบ, เบ—เปˆเบฒเบ™เบˆเบฐเป€เบซเบฑเบ™เบงเปˆเบฒเป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบเบปเบ”เบ›เบธเปˆเบก Alt, เบ•เบปเบงเบเบฐเบžเบดเบšเบ‚เบญเบ‡เบซเบ™เบนเบˆเบฐเบ›เปˆเบฝเบ™เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบšเบงเบเป„เบ›เบซเบฒเบฅเบนเบเบชเบญเบ™.
    UPS: เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบงเบฑเบเบ™เบตเป‰ - เป€เบžเบทเปˆเบญเป‚เบญเบ™เป„เบŸเบฅเปŒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ„เบงเบ™เบ–เบทเบฅเบปเบ‡ Shift + Alt!

เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบฑเป‰เบ™เบ•เบญเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบกเบตเป€เบญเบเบฐเบชเบฒเบ™เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเบชเบญเบ‡ Class1.cs เบเบฑเบšเป„เบญเบ„เบญเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ (เบฅเบนเบเบชเบญเบ™เบชเบตเบŸเป‰เบฒ):

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เป€เบกเบทเปˆเบญเปเบเป‰เป„เบ‚เบฅเบฐเบซเบฑเบ”เบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบชเบฐเปเบ”เบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบ”เบฑเบ”เปเบเป‰เบžเบฒเบเปƒเบ•เป‰เบชเบฑเบ™เบเบฒเบฅเบฑเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™:

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เบซเบกเบปเบ” (2017-2020) เป‚เบ”เบเปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰. เบเบฒเบ™ hack เบŠเบตเบงเบดเบ” - เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบฒเบเป„เบŸเบฅเปŒเปƒเบ™ Solution Explorer เบšเปเปˆเป„เบ”เป‰เบกเบฒเบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™, เปเบ•เปˆเบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ–เบทเบเปƒเบชเปˆเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเป‰เบง, เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบปเบ”เบ›เบธเปˆเบก Alt เบ„เป‰เบฒเบ‡เป„เบงเป‰!

เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ”เบตเบˆเบปเบ™เบเปˆเบงเบฒเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบ‚เบญเบ‡ plugin เบซเบผเบทเบˆเบปเบ™เบเปˆเบงเบฒเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเป„เบŸเบฅเปŒเปƒเบซเบกเปˆเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ - เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™ tedious เบซเบผเบฒเบ. เปเบฅเบฐเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰, เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบนเป‰เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบกเบฑเบ™เบญเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบเป‚เบ„เบ‡เบเบฒเบ™เบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเบชเบญเบ‡

magic เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹

เบˆเบปเบšเบเบฒเบ™เบญเปˆเบฒเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เป€เบˆเบปเป‰เบฒเบญเบฒเบ”เบˆเบฐเบฎเป‰เบญเบ‡เบญเบญเบเบกเบฒเบงเปˆเบฒ, "เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เป€เบˆเบปเป‰เบฒเบˆเบถเปˆเบ‡เบญเบฐเบ—เบดเบšเบฒเบเบงเบดเบ—เบตเบ—เปเบฒเบญเบดเบ”, เบ–เป‰เบฒเบšเบปเบ”เบ„เบงเบฒเบกเปเบกเปˆเบ™เบเปˆเบฝเบงเบเบฑเบšเบ—เบตเบชเบญเบ‡?!" เปเบฅเบฐเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบเบ—เบธเบเบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบŠเบฑเบ”เป€เบˆเบ™เบ‚เบถเป‰เบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปเบฅเบฐเปƒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบกเบฑเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบงเปˆเบฒเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”, เบ›เปˆเบญเบเปƒเบซเป‰เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฝเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

เปเบฅเบฐเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเปเปˆเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบซเบกเปˆ, เปเบ•เปˆเบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ—เบฒเบ‡เบ—เปเบฒเบญเบดเบ”.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบปเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ—เบฑเบ‡ เปเบปเบ” เบญเบญเบเบˆเบฒเบเบเบฒเบ™เปเบเป‰เป„เบ‚เบเบปเบเป€เบงเบฑเป‰เบ™เบ•เบปเป‰เบ™เบ•เป (เบšเบฑเบ™เบˆเบธเป„เบŸเบฅเปŒเป‚เบ”เบเบเบปเบ‡). เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบš 2016-2020โ€‹. เป€เบ›เบตเบ”เป‚เบŸเบ™เป€เบ”เบตเบ”เป‰เบงเบเบเบฒเบ™เปเบเป‰เป„เบ‚เปเบฅเบฐเบฅเบถเบšเป‚เบŸเบ™เป€เบ”เบตเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™.

เบžเบงเบเป€เบฎเบปเบฒเบกเบตเป‚เบ„เบ‡เบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ - MySuperPluginForRevit_2015. เป€เบ›เบตเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เบกเบฑเบ™ เปเบฅเบฐ:

  1. เบขเบนเปˆเปƒเบ™เปเบ–เบš "Application"เป€เบญเบปเบฒเบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบเบญเบญเบเบˆเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบชเบฐเบžเบฒเปเบซเปˆเบ‡ _2015 (เบกเบฑเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ•เปเปˆเบกเบฒ)
  2. เบขเบนเปˆเปƒเบ™เปเบ–เบš "Assemblyยป เป€เบญเบปเบฒเบชเบฑเบ™เบเบฒเบฅเบฑเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ R2015 เบˆเบฒเบเบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™

เบซเบกเบฒเบเป€เบซเบ”: Visual Studio เบฎเบธเปˆเบ™เบซเบผเป‰เบฒเบชเบธเบ”เบกเบตเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡ - เบชเบฑเบ™เบเบฒเบฅเบฑเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบšเปเปˆเป„เบ”เป‰เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบกเบตเบขเบนเปˆ. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบ—เปˆเบฒเบ™โ€‹เบ›เบฐโ€‹เบชเบปเบšโ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ™เบตเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบ—เปˆเบฒเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป€เบญเบปเบฒโ€‹เบžเบงเบโ€‹เป€เบ‚เบปเบฒโ€‹เบญเบญเบโ€‹เบ”เป‰เบงเบโ€‹เบ•เบปเบ™โ€‹เป€เบญเบ‡โ€‹เบˆเบฒเบโ€‹เป„เบŸเบฅโ€‹เปŒ .csprojโ€‹. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบกเบฑเบ™, เบชเบฐเบ™เบฑเป‰เบ™เบญเปˆเบฒเบ™เบ•เปเปˆเป„เบ›.

เบ›เปˆเบฝเบ™เบŠเบทเปˆเป‚เบ„เบ‡เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบก Explorer เบเบฒเบ™เปเบเป‰เป„เบ‚เป‚เบ”เบเบเบฒเบ™เบ–เบญเบ™เบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบ _2015 เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบญเบปเบฒเป‚เบ„เบ‡เบเบฒเบ™เบญเบญเบเบˆเบฒเบเบเบฒเบ™เปเบเป‰เป„เบ‚. เบ™เบตเป‰เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบฅเบฐเบšเบฝเบšเบฎเบฝเบšเบฎเป‰เบญเบเปเบฅเบฐเบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ‚เบญเบ‡ perfectionists! เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เป‚เบŸเป€เบ”เบตเบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ›เปˆเบฝเบ™เบŠเบทเปˆเป‚เบŸเบ™เป€เบ”เบตเป‚เบ„เบ‡เบเบฒเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเป‚เบซเบฅเบ”เป‚เบ„เบ‡เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚.

เป€เบ›เบตเบ”เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฐเบซเบฐเบฅเบฑเบ” เบเบฒเบ™เบ›เปˆเบญเบ เปƒเบ™เบซเบผเบฑเบเบเบฒเบ™, เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบฅเบถเบšเบกเบฑเบ™เบญเบญเบ. เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเบกเปˆเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ R2015, R2016, ... , R2020. เบˆเบปเปˆเบ‡เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ„เบฑเบ”เบฅเบญเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบˆเบฒเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบญเบทเปˆเบ™เปเบฅเบฐเบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™:

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เป„เบ›เบ—เบตเปˆเป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเป€เบ›เบตเบ”เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบ™เบฒเบกเบชเบฐเบเบธเบ™ .csproj เปƒเบ™เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™เบ—เบตเปˆเบชเบฐเบ”เบงเบเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™. เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ Visual Studio - เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบปเบเป€เบฅเบตเบเป‚เบ„เบ‡เบเบฒเบ™เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบˆเบฐเบขเบนเปˆเปƒเบ™เป€เบกเบ™เบนเบชเบฐเบžเบฒเบšเบเบฒเบ™:

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เบเบฒเบ™เปเบเป‰เป„เบ‚เปƒเบ™ Visual Studio เปเบกเปˆเบ™เบ”เบตเบเบงเปˆเบฒ, เป€เบžเบฒเบฐเบงเปˆเบฒเบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™เบ—เบฑเบ‡เบชเบญเบ‡เบˆเบฑเบ”เบฎเบฝเบ‡เปเบฅเบฐเบเบฐเบ•เบธเป‰เบ™เป€เบ•เบทเบญเบ™.

เปƒเบ™เป„เบŸเบฅเปŒเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš PropertyGroup โ€“ เบขเบนเปˆโ€‹เป€เบ—เบดเบ‡โ€‹เบชเบธเบ”โ€‹เปเบกเปˆเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹เบ—เบปเปˆเบงโ€‹เป„เบ›โ€‹, เปเบฅเบฐโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบกเบฒโ€‹เป€เบ‡เบทเปˆเบญเบ™โ€‹เป„เบ‚โ€‹. เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเปเบฒเบ™เบปเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เปเบฒเบญเบดเบ”, เบ—เบตเปˆเบšเปเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เบเปเบฒเบ™เบปเบ”เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบปเปˆเบงเป„เบ›, เปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚, เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เบ›เปˆเบฝเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

เป„เบ›เบซเบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบปเปˆเบงเป„เบ› (เบ—เปเบฒเบญเบดเบ”). PropertyGroup เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบŠเบฑเบšเบชเบดเบ™ เบŠเบทเปˆเบชเบฐเบžเบฒ โ€“ เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบŠเบธเบกโ€‹เปเบฅเบฐโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบ„เบงเบ™โ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบกเบฑเบ™โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ•เปเปˆโ€‹เบ—เป‰เบฒเบโ€‹ _2015. เบ–เป‰เบฒเบกเบตเบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบญเบปเบฒเบกเบฑเบ™เบญเบญเบ.

เบŠเบญเบเบซเบฒเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚

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

เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบกเบฑเบ™ - เบžเบงเบเป€เบฎเบปเบฒเบฅเบถเบšเบกเบฑเบ™.

เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบกเบตเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚

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

เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบเบฒเบ™เบ”เบตเบšเบฑเบ. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบ„เบธเบ™โ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹เปƒเบซเป‰โ€‹เป€เบซเบกเบฒเบฐโ€‹เบชเบปเบกโ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™ - เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ—เบตเปˆโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบเบฑเบ™โ€‹, เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹เบฅเบฑเบโ€‹เบเบฒเบ™โ€‹เบฅเบงเบšโ€‹เบฅเบงเบกโ€‹, เปเบฅเบฐโ€‹เบญเบทเปˆเบ™เป†

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเปƒเบซเบกเปˆ PropertyGroup เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบชเบตเปˆเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”:

  • เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบญเบญเบ - เป‚เบŸเป€เบ”เบตเบœเบปเบ™เบœเบฐเบฅเบดเบ”. เบ‚เป‰เบญเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ binR20xx
  • เบเบณเบ™เบปเบ”เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆ - เบชเบฑเบ™เบเบฒเบฅเบฑเบเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚. เบ„เปˆเบฒเบ„เบงเบ™เบ–เบทเบเบฅเบฐเบšเบธ TRACE;R20ั…ั…
  • TargetFrameworkVersion - เบชเบฐโ€‹เบšเบฑเบšโ€‹เป€เบงโ€‹เบ—เบตโ€‹. เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡ Revit API เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบฅเบฐเบšเบธเป€เบงเบ—เบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.
  • เบŠเบทเปˆเบชเบฐเบžเบฒ - เบŠเบทเปˆโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบญเบฒโ€‹เบŠเบตเบš (เป€เบŠเบฑเปˆเบ™โ€‹: เบŠเบทเปˆโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹)โ€‹. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบŠเบทเปˆเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบเบญเบš, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš versatility เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ‚เบฝเบ™เบกเบนเบ™เบ„เปˆเบฒ $(AssemblyName)_20ั…ั…. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบญเบปเบฒเบ„เปเบฒเบ•เปเปˆเบ—เป‰เบฒเบเบญเบญเบเบˆเบฒเบเบŠเบทเปˆเบเบฒเบ™เบ›เบฐเบเบญเบš

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ„เบฑเบ”เบฅเบญเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบญเบทเปˆเบ™เป†เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบ›เปˆเบฝเบ™เบžเบงเบเบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ•เปเปˆเบกเบฒเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบ„เบฑเบ”เบ•เบดเบ”เป€เบ™เบทเป‰เบญเปƒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เป„เบŸเบฅเปŒ .csproj.

เบ•เบปเบเบฅเบปเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบŠเบญเบเบซเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบฅเป‰เบง - เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบเบฒเบ. เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” plug-in (เบŠเบธเบ” NuGet). เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบšเบดเปˆเบ‡เบ•เบทเปˆเบกเบญเบตเบ, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เบงเปˆเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบงเบกเป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš เบเบธเปˆเบกเบฅเบฒเบเบเบฒเบ™. เปเบ•เปˆเป‚เบŠเบเบšเปเปˆเบ”เบต - เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ™เบตเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เป€เบ›เบฑเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš PropertyGroup. เบšเบฒเบ‡เบ—เบตเบ™เบตเป‰เปเบกเปˆเบ™เป€เบ–เบดเบ‡เปเบกเปˆเบ™ Visual Studio glitch, เปเบ•เปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบฅเบฐเบšเบธเบญเบปเบ‡เบ›เบฐเบเบญเบšเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡ เบเบธเปˆเบกเบฅเบฒเบเบเบฒเบ™ เบ”เป‰เบงเบเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เปเบฅเบฐเปƒเบชเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบเบฑเบšเปเบžเบฑเบเป€เบเบฑเบ” NuGet เบžเบฒเบเปƒเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบ›เปˆเบฝเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบ—เบธเบเปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเบˆเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™.

เบญเบปเบ‡เบ›เบฐเบเบญเบšเบกเบฒเบเบฑเบšเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ เป€เบฅเบทเบญเบ, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบกเป€เบซเบ”เบœเบปเบ™เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒ - เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ - เบญเบทเปˆเบ™.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบปเบ‡เบ›เบฐเบเบญเบš เป€เบฅเบทเบญเบ, เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบŠเบธเบ” NuGet เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™:

เป€เบ™เบทเป‰เบญเบซเบฒเบ—เบฑเบ‡เปเบปเบ” csproj

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0"  ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{5AD738D6-4122-4E76-B865-BE7CE0F6B3EB}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>MySuperPluginForRevit</RootNamespace>
    <AssemblyName>MySuperPluginForRevit</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>binDebug</OutputPath>
    <DefineConstants>DEBUG;R2015</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2015|AnyCPU' ">
    <OutputPath>binR2015</OutputPath>
    <DefineConstants>TRACE;R2015</DefineConstants>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <AssemblyName>$(AssemblyName)_2015</AssemblyName>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2016|AnyCPU' ">
    <OutputPath>binR2016</OutputPath>
    <DefineConstants>TRACE;R2016</DefineConstants>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <AssemblyName>$(AssemblyName)_2016</AssemblyName>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2017|AnyCPU' ">
    <OutputPath>binR2017</OutputPath>
    <DefineConstants>TRACE;R2017</DefineConstants>
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
    <AssemblyName>$(AssemblyName)_2017</AssemblyName>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2018|AnyCPU' ">
    <OutputPath>binR2018</OutputPath>
    <DefineConstants>TRACE;R2018</DefineConstants>
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
    <AssemblyName>$(AssemblyName)_2018</AssemblyName>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2019|AnyCPU' ">
    <OutputPath>binR2019</OutputPath>
    <DefineConstants>TRACE;R2019</DefineConstants>
    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
    <AssemblyName>$(AssemblyName)_2019</AssemblyName>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'R2020|AnyCPU' ">
    <OutputPath>binR2020</OutputPath>
    <DefineConstants>TRACE;R2020</DefineConstants>
    <TargetFrameworkVersion>v4.7</TargetFrameworkVersion>
    <AssemblyName>$(AssemblyName)_2020</AssemblyName>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Class1.cs" />
    <Compile Include="PropertiesAssemblyInfo.cs" />
  </ItemGroup>
  <Choose>
    <When Condition=" '$(Configuration)'=='R2015' ">
      <ItemGroup>
        <PackageReference Include="ModPlus.Revit.API.2015">
          <Version>1.0.0</Version>
          <ExcludeAssets>runtime</ExcludeAssets>
        </PackageReference>
      </ItemGroup>
    </When>
    <When Condition=" '$(Configuration)'=='R2016' ">
      <ItemGroup>
        <PackageReference Include="ModPlus.Revit.API.2016">
          <Version>1.0.0</Version>
          <ExcludeAssets>runtime</ExcludeAssets>
        </PackageReference>
      </ItemGroup>
    </When>
    <When Condition=" '$(Configuration)'=='R2017' ">
      <ItemGroup>
        <PackageReference Include="ModPlus.Revit.API.2017">
          <Version>1.0.0</Version>
          <ExcludeAssets>runtime</ExcludeAssets>
        </PackageReference>
      </ItemGroup>
    </When>
    <When Condition=" '$(Configuration)'=='R2018' ">
      <ItemGroup>
        <PackageReference Include="ModPlus.Revit.API.2018">
          <Version>1.0.0</Version>
          <ExcludeAssets>runtime</ExcludeAssets>
        </PackageReference>
      </ItemGroup>
    </When>
    <When Condition=" '$(Configuration)'=='R2019' ">
      <ItemGroup>
        <PackageReference Include="ModPlus.Revit.API.2019">
          <Version>1.0.0</Version>
          <ExcludeAssets>runtime</ExcludeAssets>
        </PackageReference>
      </ItemGroup>
    </When>
    <When Condition=" '$(Configuration)'=='R2020' or '$(Configuration)'=='Debug'">
      <ItemGroup>
        <PackageReference Include="ModPlus.Revit.API.2020">
          <Version>1.0.0</Version>
          <ExcludeAssets>runtime</ExcludeAssets>
        </PackageReference>
      </ItemGroup>
    </When>
  </Choose>
  <Import Project="$(MSBuildToolsPath)Microsoft.CSharp.targets" />
</Project>

เบเบฐเบฅเบธเบ™เบฒเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเปƒเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”เบชเบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ”เบเบœเปˆเบฒเบ™ เบซเบผเบท. เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, เบŠเบธเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบˆเบฐเบ–เบทเบเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ Debug.

เปเบฅเบฐเปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบกเบตเป€เบเบทเบญเบšเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เปเบšเบš. เบžเบงเบเป€เบฎเบปเบฒเป‚เบซเบผเบ”เป‚เบ„เบ‡เบเบฒเบ™เบ„เบทเบ™, เป€เบ›เบตเบ”เปƒเบŠเป‰เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™, เป‚เบ—เบซเบฒเบฅเบฒเบเบเบฒเบ™ "เปƒเบ™เป€เบกเบ™เบนเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚ (เบšเปเปˆเปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™)เบŸเบทเป‰เบ™เบŸเบนเปเบžเบฑเบเป€เบเบฑเบ” NuGet เบ—เบฑเบ‡เปเบปเบ”"เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบงเปˆเบฒเบŠเบธเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบ™เบงเปƒเบ”.

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เปเบฅเบฐเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰เบ‚เป‰เบญเบเบกเบฒเบฎเบญเบ”เบˆเบธเบ”เบ•เบฒเบ - เป€เบžเบทเปˆเบญเป€เบเบฑเบšเบเปเบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ›เบฐเบเบญเบš batch (เป€เบกเบ™เบน "Assemblyยป-> ยซเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบŠเบธเบ”"), เปเบ•เปˆเป€เบกเบทเปˆเบญเบ›เปˆเบฝเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เปเบžเบฑเบเป€เบเบฑเบ”เบˆเบฐเบšเปเปˆเบ–เบทเบเบŸเบทเป‰เบ™เบŸเบนเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบเบญเบšเป‚เบ„เบ‡เบเบฒเบ™, เบ™เบตเป‰เบเปเปˆเบšเปเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ, เปƒเบ™เบ—เบฒเบ‡เบ—เบดเบ”เบชเบฐเบ”เบต, เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐ. เบ‚เป‰เบญเบเบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบŠเบญเบเบซเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เปเบฅเบฐเบชเปˆเบงเบ™เบซเบผเบฒเบเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡ Visual Studio.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบเบญเบš batch, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ™เปเบฒเปƒเบŠเป‰เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ›เบฐเบเบญเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบžเบดเป€เบชเบ” Nuke. เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบตเป‰เป€เบžเบฒเบฐเบงเปˆเบฒเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบกเบฑเบ™ overkill เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ plugin, เปเบ•เปˆเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบšเปเปˆเป€เบซเบฑเบ™เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบญเบทเปˆเบ™เป†. เปเบฅเบฐเบเบฑเบšเบ„เปเบฒเบ–เบฒเบก "เป€เบ›เบฑเบ™เบซเบเบฑเบ‡ Nuke?" เบ„เปเบฒเบ•เบญเบšเปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ - เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบกเบฑเบ™เบขเบนเปˆเบšเปˆเบญเบ™เป€เบฎเบฑเบ”เบงเบฝเบ.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป„เบ›เบ—เบตเปˆเป‚เบŸเบ™เป€เบ”เบตเบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ (เบšเปเปˆเปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™), เบเบปเบ”เบ›เบธเปˆเบกเบ„เป‰เบฒเบ‡เป„เบงเป‰ เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ เปเบฅเบฐเบ„เบฅเบดเบเบ‚เบงเบฒเปƒเบชเปˆเบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™เป‚เบŸเบ™เป€เบ”เบต - เปƒเบ™เป€เบกเบ™เบนเบชเบฐเบžเบฒเบšเบเบฒเบ™เป€เบฅเบทเบญเบเบฅเบฒเบเบเบฒเบ™ "เป€เบ›เบตเบ”เปœเป‰เบฒเบˆเป PowerShell เบ—เบตเปˆเบ™เบตเป‰".

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบกเบฑเบ™โ€‹ nuke, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปเบฒเบญเบดเบ”เบ‚เบฝเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡

dotnet tool install Nuke.GlobalTool โ€“global

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบฝเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ nuke เปเบฅเบฐเบ—เปˆเบฒเบ™เบˆเบฐเบ–เบทเบเป€เบ•เบทเบญเบ™เปƒเบซเป‰ configure nuke เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบšเปเปˆโ€‹เบฎเบนเป‰โ€‹เบงเปˆเบฒโ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ‚เบฝเบ™โ€‹เบ™เบตเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹เปƒเบ™โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบฅเบฑเบ”โ€‹เป€เบŠเบ - เปƒเบ™โ€‹เบžเบฒโ€‹เบชเบฒโ€‹เบญเบฑเบ‡โ€‹เบเบดเบ”โ€‹เบกเบฑเบ™โ€‹เบˆเบฐโ€‹เบ‚เบฝเบ™โ€‹เบงเปˆเบฒโ€‹เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เป„เบŸเบฅโ€‹เปŒ .nukeโ€‹. เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบšเป? [y/n]

เบเบปเบ”เบ›เบธเปˆเบก Y เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบˆเบฐเบกเบตเบฅเบฒเบเบเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ”เบเบเบปเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”เป‚เบ”เบเปƒเบŠเป‰ MSBuild, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบ•เบญเบšเปƒเบ™ screenshot:

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เปƒเบซเป‰เป„เบ›เบ—เบตเปˆ Visual Studio, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเป‚เบซเบผเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบทเบ™เปƒเปเปˆ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เปƒเปเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบกเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเป‚เบซเบผเบ”เบเบฒเบ™เปเบเป‰เป„เบ‚เบ„เบทเบ™เปƒเบซเบกเปˆเปเบฅเบฐเป€เบซเบฑเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเป‚เบ„เบ‡เบเบฒเบ™ เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบปเบ™เปƒเบˆเบžเบฝเบ‡เปเบ•เปˆเป„เบŸเบฅเปŒเบ”เบฝเบง - Build.cs

เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™ plugin เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบชเปเบฒเบฅเบฑเบš Revit / AutoCAD เบฎเบธเปˆเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

เป€เบ›เบตเบ”เป„เบŸเบฅเปŒเบ™เบตเป‰เปเบฅเบฐเบ‚เบฝเบ™เบชเบฐเบ„เบดเบšเป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”. เบ”เบต, เบซเบผเบทเปƒเบŠเป‰ script เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เปƒเบซเป‰เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ:

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<Build>(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<string>();
            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 (เป€เบกเบ™เบน "viewยป-> ยซเบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบญเบทเปˆเบ™เป†ยป-> ยซPackage Manager Console"), เปเบ•เปˆเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเป€เบ›เบฑเบ™เบชเบตเบ”เปเบฒเปเบฅเบฐเบชเบตเบ‚เบฒเบง, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเบชเบฐเบ”เบงเบเบซเบผเบฒเบ.

เบ™เบตเป‰เบชเบฐเบซเบผเบธเบšเบšเบปเบ”เบ„เบงเบฒเบกเบ‚เบญเบ‡เบ‚เป‰เบญเบ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบดเบ”เบญเบญเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเปเบฒเบฅเบฑเบš AutoCAD เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เบˆเบฐเบŠเบญเบเบซเบฒ "เบฅเบนเบเบ„เป‰เบฒ" เบ‚เบญเบ‡เบกเบฑเบ™.

เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบ‚เบญเบ‡เบ—เปˆเบฒเบ™!

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™