ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ื•ื•ืขืŸ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืคึผืœื•ื’ื™ื ืก ืคึฟืึทืจ CAD ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– (ืื™ืŸ ืžื™ื™ืŸ ืคืึทืœ ื“ืึธืก ื–ืขื ืขืŸ AutoCAD, Revit ืื•ืŸ Renga) ืžื™ื˜ ืฆื™ื™ื˜, ืื™ื™ืŸ ืคึผืจืึธื‘ืœืขื ืื™ื– ืืจื•ื™ืก - ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืžื’ื™ืœื” ื–ืขื ืขืŸ ื‘ืืคืจื™ื™ื˜, ื–ื™ื™ืขืจ ืึทืคึผื™ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื•ืŸ ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืคึผืœื•ื’ื™ื ืก ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ื’ืขืžืื›ื˜.

ื•ื•ืขืŸ ืื™ืจ ื”ืึธื‘ืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืึธื“ืขืจ ืื™ืจ ื–ืขื ื˜ ื ืึธืš ืึท ื–ื™ืš-ื’ืขืœืขืจื ื˜ ืึธื ื”ื™ื™ื‘ืขืจ ืื™ืŸ ื“ืขื ืขื ื™ืŸ, ืื™ืจ ืงืขื ืขืŸ ืคืฉื•ื˜ ืžืึทื›ืŸ ืึท ืงืึธืคึผื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึผืจื•ื™ืขืงื˜, ื˜ื•ื™ืฉืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืขืจื˜ืขืจ ืื™ืŸ ืขืก ืื•ืŸ ืึทืกืขืžื‘ืึทืœ ืึท ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึผืœื•ื’ื™ืŸ. ืึทืงืงืึธืจื“ื™ื ื’ืœื™, ืกืึทื‘ืกืึทืงื•ื•ืึทื ื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืงืึธื“ ื•ื•ืขื˜ ืึทืจื™ื™ึทื ืฆื™ืขืŸ ืึท ืงื™ื™ืคืœ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ืึทืจื‘ืขื˜ ืงืึธืก.

ื•ื•ืขืŸ ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ื“ืขืจืคืึทืจื•ื ื’ ืื•ืŸ ื•ื•ื™ืกืŸ, ืื™ืจ ื•ื•ืขื˜ ื’ืขืคึฟื™ื ืขืŸ ืขื˜ืœืขื›ืข ื•ื•ืขื’ืŸ ืฆื• ืึธื˜ืึทืžื™ื™ื˜ ื“ืขื ืคึผืจืึธืฆืขืก. ืื™ืš ื’ืขื’ืื ื’ืขืŸ ื“ืขื ื•ื•ืขื’ ืื•ืŸ ืื™ืš ื•ื•ื™ืœืŸ ืฆื• ื–ืึธื’ืŸ ืื™ืจ ื•ื•ืึธืก ืื™ืš ืขื ื“ื™ืงื˜ ื–ื™ืš ืžื™ื˜ ืื•ืŸ ื•ื•ื™ ื‘ืึทืงื•ื•ืขื ืขืก ืื™ื–.

ืขืจืฉื˜ืขืจ, ืœืึธืžื™ืจ ืงื•ืงืŸ ืื™ืŸ ืึท ืื•ืคึฟืŸ ื•ื•ืึธืก ืื™ื– ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืื•ืŸ ื•ื•ืึธืก ืื™ืš ื”ืึธื‘ืŸ ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜.

ืœื™ื ืงืก ืฆื• ืคึผืจื•ื™ืขืงื˜ ื˜ืขืงืขืก

ืื•ืŸ ืฆื• ืžืึทื›ืŸ ืึทืœืฅ ืคึผืฉื•ื˜, ื•ื•ื™ื–ืฉืึทื•ื•ืึทืœ ืื•ืŸ ืคืึทืจืฉื˜ื™ื™ื™ืง, ืื™ืš ื•ื•ืขืœ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึทืœืฅ ืžื™ื˜ ืึทืŸ ืึทื‘ืกื˜ืจืึทืงื˜ ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืคึผืœื•ื’ื™ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’.

ืœืึธืžื™ืจ ืขืคึฟืขื ืขืŸ ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ (ืื™ืš ื”ืึธื‘ืŸ ื“ื™ ืงืึทืžื™ื•ื ื™ื˜ื™ 2019 ื•ื•ืขืจืกื™ืข. ืื•ืŸ ื™ืึธ - ืื•ื™ืฃ ืจื•ืกื™ืฉ) ืื•ืŸ ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืœื™ื™ื–ื•ื ื’. ืœืึธืžื™ืจ ืื™ื ืจื•ืคืŸ MySuperPluginForRevit

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืžื™ืจ ื•ื•ืขืœืŸ ืžืึทื›ืŸ ืึท ืคึผืœื•ื’ื™ืŸ ืคึฟืึทืจ Revit ืคึฟืึทืจ ื•ื•ืขืจืกื™ืขืก 2015-2020. ื“ืขืจื™ื‘ืขืจ, ืœืึธื–ืŸ ืื•ื ื“ื– ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ ื“ืขืจ ืœื™ื™ื–ื•ื ื’ (ื ืขื˜ ืคืจืึทืžืขื•ื•ืึธืจืง ืงืœืึทืก ื‘ื™ื‘ืœื™ืึธื˜ืขืง) ืื•ืŸ ืจื•ืคืŸ ืขืก MySuperPluginForRevit_2015

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ื’ืŸ ืœื™ื ืงืก ืฆื• ื“ื™ Revit API. ืคื•ืŸ ืงื•ืจืก, ืžื™ืจ ืงืขื ืขืŸ ืœื™ื™ื’ืŸ ืœื™ื ืงืก ืฆื• ื”ื™ื’ืข ื˜ืขืงืขืก (ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึทืœืข ื“ื™ ื ื™ื™ื˜ื™ืง SDKs ืึธื“ืขืจ ืึทืœืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit), ืึธื‘ืขืจ ืžื™ืจ ื•ื•ืขืœืŸ ื’ืœื™ื™ืš ื ืึธื›ื’ื™ื™ืŸ ื“ื™ ืจืขื›ื˜ ื•ื•ืขื’ ืื•ืŸ ืคืึทืจื‘ื™ื ื“ืŸ ื“ื™ NuGet ืคึผืขืงืœ. ืื™ืจ ืงืขื ืขืŸ ื’ืขืคึฟื™ื ืขืŸ ื’ืึทื ืฅ ืึท ื‘ื™ืกืœ ืคึผืึทืงืึทื“ื–ืฉืึทื–, ืึธื‘ืขืจ ืื™ืš ื•ื•ืขืœ ื ื•ืฆืŸ ืžื™ื™ืŸ ืื™ื™ื’ืขื ืข.

ื ืึธืš ืงืึทื ืขืงื˜ื™ื ื’ ื“ืขื ืคึผืขืงืœ, ืจืขื›ื˜ ื’ื™ื˜ ืื•ื™ืฃ ื“ื™ ื ื•ืžืขืจ "ืจืขืคึฟืขืจืขื ืฆืŸ"ืื•ืŸ ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื ื ื•ืžืขืจ"ืžืึทืš packages.config ืฆื• PackageReference ...ยป

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืื•ื™ื‘ ืคึผืœื•ืฆืœื™ื ื’ ืื™ืŸ ื“ืขื ืคื•ื ื˜ ืื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ืคึผืึทื ื™ืง, ื•ื•ื™ื™ึทืœ ืื™ืŸ ื“ื™ ืคึผืขืงืœ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคึฟืขื ืฆื˜ืขืจ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงื™ื™ืŸ ื•ื•ื™ื›ื˜ื™ืง ื ื•ืžืขืจ "ืงืึธืคึผื™ืข ืœืึธื•ืงืึทืœื™", ื•ื•ืึธืก ืžื™ืจ ื‘ืืฉื˜ื™ืžื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ื•ื•ืขืจื˜ ืคืึทืœืฉ, ื“ืขืžืึธืœื˜ ื˜ืึธืŸ ื ื™ื˜ ืคึผืึทื ื™ืง - ื’ื™ื™ืŸ ืฆื• ื“ื™ ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืคึผืจื•ื™ืขืงื˜, ืขืคึฟืขื ืขืŸ ื“ื™ ื˜ืขืงืข ืžื™ื˜ ื“ื™ .csproj ื’ืขืฉืคึผืจื™ื™ื˜ ืื™ืŸ ืึท ืจืขื“ืึทืงื˜ืึธืจ ื•ื•ืึธืก ืื™ื– ื‘ืึทืงื•ื•ืขื ืคึฟืึทืจ ืื™ืจ (ืื™ืš ื ื•ืฆืŸ ื ืึธื˜ืขืคึผืึทื“ ++) ืื•ืŸ ื’ืขืคึฟื™ื ืขืŸ ืึทืŸ ืคึผืึธื–ื™ืฆื™ืข ื•ื•ืขื’ืŸ ืื•ื ื“ื–ืขืจ ืคึผืขืงืœ ื“ืึธืจื˜. ื–ื™ ื–ืขื˜ ืื™ืฆื˜ ืื•ื™ืก ืื–ื•ื™:

<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 ืคึฟืึทืจ ื•ื•ืึธืก ืžื™ืจ ืžืึทื›ืŸ ื“ืขื ืคึผืœื•ื’ื™ืŸ. ืฆื• ืกืึธืœื•ื•ืข ืึทื–ืึท ื“ื™ืคืขืจืึทื ืกื™ื– ืื™ืŸ ืงืึธื“, ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ืกื™ืžื‘ืึธืœืก. ืขืคึฟืขื ืขืŸ ื“ื™ ืคึผืจืึธื™ืขืงื˜ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก, ื’ื™ื™ืŸ ืฆื• ื“ื™ "Assembly"ืื•ืŸ ืื™ืŸ ื“ื™ ืคืขืœื“"ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ื ืึธื•ื˜ื™ื™ืฉืึทืŸืดืœืืžื™ืจ ืฉืจื™ื™ื‘ืŸ ืจืงืกื ื•ืžืงืก.

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ื‘ืึทืžืขืจืงื•ื ื’ ืึทื– ื“ืขืจ ืกื™ืžื‘ืึธืœ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืคึฟืึทืจ ื‘ื™ื™ื“ืข ื“ื™ื‘ื•ื’ ืื•ืŸ ืžืขืœื“ื•ื ื’ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–.

ื ื•, ื‘ืฉืขืช ืžื™ืจ ื–ืขื ืขืŸ ืื™ืŸ ื“ื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคึฟืขื ืฆื˜ืขืจ, ืžื™ืจ ืžื™ื“ ื’ื™ื™ืŸ ืฆื• ื“ื™ " ืงื•ื•ื™ื˜ืœืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ"ืื•ืŸ ืื™ืŸ ื“ื™ ืคืขืœื“"ืคืขืœื™ืงื™ื™ึทื˜ ื ืึธืžืขืŸ ืกืคึผื™ื™ืกยป ืึทืจืึธืคึผื ืขืžืขืŸ ื“ื™ ืกืึทืคื™ืงืก _ืงืกื ื•ืžืงืกืึทื–ื•ื™ ืึทื– ืื•ื ื“ื–ืขืจ ื ืึทืžืขืกืคึผืึทืกืข ืื™ื– ื•ื ื™ื•ื•ืขืจืกืึทืœ ืื•ืŸ ืคืจื™ื™ึท ืคื•ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื ืึธืžืขืŸ:

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ 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", "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 (ื•ื•ืึธืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ื‘ื ื™ืžืฆื ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ืฉืจื™ื™ื‘ืŸ) ืื•ืŸ ื’ืœื™ื™ืš ื’ืขื ื•ืžืขืŸ ืื™ืŸ ื—ืฉื‘ื•ืŸ ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ืกื™ืžื‘ืึธืœืก, ื•ื•ืึธืก ื–ืขื ืขืŸ ื‘ืืฉืืคืŸ ืžื™ื˜ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืžื•ืกื˜ืขืจ.

ื–ืืœ ืก ืžืึทืš ืื•ื™ืฃ ืฆื• ื“ื™ ื”ื•ื™ืคึผื˜ ื”ื•ื™ื›ืคึผื•ื ืงื˜. ืžื™ืจ ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืœื™ื™ื–ื•ื ื’, ื‘ืœื•ื™ื– ืคึฟืึทืจ ื“ื™ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืคึผืœื•ื’ื™ืŸ ืคึฟืึทืจ Revit 2016. ืžื™ืจ ืื™ื‘ืขืจื—ื–ืจืŸ ืึทืœืข ื“ื™ ืกื˜ืขืคึผืก ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ื™ื‘ืŸ, ืจื™ืกืคึผืขืงื˜ื™ื•ื•ืœื™, ืจื™ืคึผืœื™ื™ืกื™ื ื’ ื“ื™ ื ื•ืžืขืจ 2015 ืžื™ื˜ ื“ื™ ื ื•ืžืขืจ 2016. Class1.cs ื•ื™ืกืžืขืงืŸ ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜.

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืคืืจืœืื ื’ื˜ ืงืึธื“ - Class1.cs - ืžื™ืจ ื”ืึธื‘ืŸ ืขืก ืฉื•ื™ืŸ ืื•ืŸ ืžื™ืจ ื ืึธืจ ื“ืึทืจืคึฟืŸ ืฆื• ืึทืจื™ื™ึทื ืœื™ื™ื’ืŸ ืึท ืœื™ื ืง ืฆื• ืขืก ืื™ืŸ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜. ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ื•ื•ืขื’ืŸ ืฆื• ืึทืจื™ื™ึทื ืœื™ื™ื’ืŸ ืœื™ื ืงืก:

  1. ืœืื ื’ - ืจืขื›ื˜ ื’ื™ื˜ ืื•ื™ืฃ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืกืขืœืขืงื˜ื™ืจืŸ "ืœื™ื™ื’ืŸยป->ยซื™ื’ื–ื™ืกื˜ื™ื ื’ ืขืœืขืžืขื ื˜", ืื™ืŸ ื“ื™ ืคึฟืขื ืฆื˜ืขืจ ื•ื•ืึธืก ืขืคืขื ืขืŸ, ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืคืืจืœืื ื’ื˜ ื˜ืขืงืข ืื•ืŸ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื“ื™ ืึธืคึผืฆื™ืข "ืœื™ื™ื’ืŸ"ืกืขืœืขืงื˜ื™ืจืŸ ื“ื™ ืึธืคึผืฆื™ืข"ืœื™ื™ื’ ื•ื•ื™ ืงืฉืจยป

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

  1. ืงื•ืจืฅ - ื’ืœื™ื™ืš ืื™ืŸ ื“ื™ ืœื™ื™ื–ื•ื ื’ Explorer, ืกืขืœืขืงื˜ื™ืจืŸ ื“ื™ ื’ืขื‘ืขื˜ืŸ ื˜ืขืงืข (ืึธื“ืขืจ ืืคื™ืœื• ื˜ืขืงืขืก, ืึธื“ืขืจ ืืคื™ืœื• ื’ืึทื ืฅ ืคืึธืœื“ืขืจืก) ืื•ืŸ ืฉืœืขืคึผืŸ ืขืก ืื™ืŸ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜ ื‘ืฉืขืช ืื™ืจ ื”ืึทืœื˜ืŸ ื“ื™ ืึทืœื˜ ืฉืœื™ืกืœ. ื•ื•ืขืŸ ืื™ืจ ืฉืœืขืคึผืŸ, ืื™ืจ ื•ื•ืขื˜ ื–ืขืŸ ืึทื– ื•ื•ืขืŸ ืื™ืจ ื“ืจื™ืงืŸ ื“ื™ ืึทืœื˜ ืฉืœื™ืกืœ, ื“ื™ ืžื•ื™ื– ืœื•ื™ืคึฟืขืจ ื•ื•ืขื˜ ื˜ื•ื™ืฉืŸ ืคื•ืŸ ืึท ืคึผืœื•ืก ืฆื™ื™ื›ืŸ ืฆื• ืึท ืคื™ื™ึทืœ.
    UPD: ืื™ืš ื’ืขืžืื›ื˜ ืึท ื‘ื™ืกืœ ืฆืขืžื™ืฉื•ื ื’ ืื™ืŸ ื“ืขื ืคึผืึทืจืึทื’ืจืึทืฃ - ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืขื˜ืœืขื›ืข ื˜ืขืงืขืก ืื™ืจ ื–ืึธืœ ื”ืึทืœื˜ืŸ ืึทืจืึธืคึผ ื™ื‘ืขืจืจื•ืง + ืึทืœื˜!

ื ืึธืš ื“ื•ืจื›ืคื™ืจืŸ ื“ืขื ืคึผืจืึธืฆืขื“ื•ืจ, ืžื™ืจ ื•ื•ืขืœืŸ ื”ืึธื‘ืŸ ืึท ื˜ืขืงืข ืื™ืŸ ื“ื™ ืจื’ืข ืคึผืจื•ื™ืขืงื˜ Class1.cs ืžื™ื˜ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ื‘ื™ืœื“ืœ (ื‘ืœื•ื™ ืคื™ื™ึทืœ):

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ื•ื•ืขืŸ ืขื“ื™ื˜ื™ื ื’ ืงืึธื“ ืื™ืŸ ื“ื™ ืจืขื“ืึทืงื˜ืึธืจ ืคึฟืขื ืฆื˜ืขืจ, ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ืงืœื™ื™ึทื‘ืŸ ื•ื•ืึธืก ืคึผืจื•ื™ืขืงื˜ ืงืึธื ื˜ืขืงืกื˜ ืฆื• ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ืงืึธื“ ืื™ืŸ, ื•ื•ืึธืก ื•ื•ืขื˜ ืœืึธื–ืŸ ืื™ืจ ืฆื• ื–ืขืŸ ื“ื™ ืงืึธื“ ืขื“ื™ื˜ื™ื“ ืื•ื ื˜ืขืจ ืคืึทืจืฉื™ื“ืขื ืข ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ืกื™ืžื‘ืึธืœืก:

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืžื™ืจ ืžืึทื›ืŸ ืึทืœืข ืื ื“ืขืจืข ืคึผืจืึทื“ื–ืฉืขืงืก (2017-2020) ื ื™ืฆืŸ ื“ืขื ืกื›ืขืžืข. ืœืขื‘ืŸ ื›ืึทืง - ืื•ื™ื‘ ืื™ืจ ืฉืœืขืคึผืŸ ื˜ืขืงืขืก ืื™ืŸ ื“ื™ ืœื™ื™ื–ื•ื ื’ Explorer ื ื™ื˜ ืคึฟื•ืŸ ื“ื™ ื‘ืึทื–ืข ืคึผืจื•ื™ืขืงื˜, ืึธื‘ืขืจ ืคึฟื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื•ื•ื• ื–ื™ื™ ื–ืขื ืขืŸ ืฉื•ื™ืŸ ื™ื ืกืขืจื˜ืึทื“ ื•ื•ื™ ืึท ืœื™ื ืง, ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืฆื• ื”ืึทืœื˜ืŸ ื“ื™ ืึทืœื˜ ืฉืœื™ืกืœ!

ื“ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืึธืคึผืฆื™ืข ืื™ื– ื’ืึทื ืฅ ื’ื•ื˜ ื‘ื™ื– ื“ืขื ืžืึธืžืขื ื˜ ืคื•ืŸ ืึทื“ื™ื ื’ ืึท ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึผืœื•ื’ื™ืŸ ืึธื“ืขืจ ื‘ื™ื– ื“ืขื ืžืึธืžืขื ื˜ ืคื•ืŸ ืึทื“ื™ื ื’ ื ื™ื™ึท ื˜ืขืงืขืก ืฆื• ื“ื™ ืคึผืจื•ื™ืขืงื˜ - ืึทืœืข ื“ืขื ื•ื•ืขืจื˜ ื–ื™ื™ืขืจ ื˜ื™ื“ื™ืึทืก. ืื•ืŸ ืœืขืฆื˜ื ืก ืื™ืš ืคึผืœื•ืฆืœื™ื ื’ ืื™ื™ื ื’ืขื–ืขืŸ ื•ื•ื™ ืฆื• ืกืึธืจื˜ ืขืก ืึทืœืข ืื•ื™ืก ืžื™ื˜ ืื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืžื™ืจ ืžืึทืš ืื•ื™ืฃ ืฆื• ื“ื™ ืจื’ืข ืื•ืคึฟืŸ

ื“ื™ ืžืึทื’ื™ืฉ ืคื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–

ื ืึธืš ืœื™ื™ืขื ืขืŸ ื“ืึธ, ืื™ืจ ืงืขืŸ ืื•ื™ืกืจื•ืคืŸ, "ืคืืจื•ื•ืืก ื”ืื˜ ืื™ืจ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืขืจืฉื˜ืขืจ ืื•ืคึฟืŸ, ืื•ื™ื‘ ื“ืขืจ ืึทืจื˜ื™ืงืœ ืื™ื– ืžื™ื“ ื•ื•ืขื’ืŸ ื“ืขืจ ืฆื•ื•ื™ื™ื˜ืขืจ?!" ืื•ืŸ ืื™ืš ื“ื™ืกืงืจื™ื™ื‘ื“ ืึทืœืฅ ืฆื• ืžืึทื›ืŸ ืขืก ืงืœืึธืจ ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ืกื™ืžื‘ืึธืœืก ืื•ืŸ ืื™ืŸ ื•ื•ืึธืก ืขืจื˜ืขืจ ืื•ื ื“ื–ืขืจ ืคึผืจืึทื“ื–ืฉืขืงืก ืึทื ื“ืขืจืฉ. ืื•ืŸ ืื™ืฆื˜ ืขืก ื•ื•ืขืจื˜ ืงืœืึธืจ ืคึฟืึทืจ ืื•ื ื“ื– ืคึผื•ื ืงื˜ ื•ื•ืึธืก ื“ื™ืคืขืจืึทื ืกื™ื– ืื™ืŸ ืคึผืจืึทื“ื–ืฉืขืงืก ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜, ื’ืขืœืื–ืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜.

ืื•ืŸ ืฆื• ืžืึทื›ืŸ ืึทืœืฅ ืžืขืจ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’, ืžื™ืจ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ืžืึทื›ืŸ ืึท ื ื™ื™ึท ืคึผืจื•ื™ืขืงื˜, ืึธื‘ืขืจ ื•ื•ืขื˜ ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ืื•ื ื“ื–ืขืจ ืงืจืึทื ื˜ ืคึผืจื•ื™ืขืงื˜ ื‘ืืฉืืคืŸ ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื•ื•ืขื’.

ืึทื–ื•ื™, ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข, ืžื™ืจ ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ืึทืœืข ืคึผืจืึทื“ื–ืฉืขืงืก ืคื•ืŸ ื“ื™ ืœื™ื™ื–ื•ื ื’ ืึทื—ื•ืฅ ื“ื™ ื”ื•ื™ืคึผื˜ (ืžื™ื˜ ื“ื™ ื˜ืขืงืขืก ื’ืœื™ื™ึทืš). ื™ืขื ืข. ืคึผืจืึทื“ื–ืฉืขืงืก ืคึฟืึทืจ ื•ื•ืขืจืกื™ืขืก 2016-2020. ืขืคึฟืขื ืขืŸ ื“ื™ ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืœื™ื™ื–ื•ื ื’ ืื•ืŸ ื•ื™ืกืžืขืงืŸ ื“ื™ ืคืึธืœื“ืขืจืก ืคื•ืŸ ื“ื™ ืคึผืจืึทื“ื–ืฉืขืงืก ื“ืึธืจื˜.

ืžื™ืจ ื”ืึธื‘ืŸ ืื™ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืœื™ื ืงืก ืื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ืึทืฉืœื•ืก - MySuperPluginForRevit_2015. ืขืคืขื ืขืŸ ื–ื™ื™ึทืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื•ืŸ:

  1. ืื•ื™ืฃ ื“ื™ ืงื•ื•ื™ื˜ืœ "ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ"ื ืขื ืึทื•ื•ืขืง ื“ื™ ืกืึทืคื™ืงืก ืคื•ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื ืึธืžืขืŸ _ืงืกื ื•ืžืงืก (ืขืก ื•ื•ืขื˜ ื•ื•ืขืจืŸ ืงืœืึธืจ ื•ื•ืึธืก ืฉืคึผืขื˜ืขืจ)
  2. ืื•ื™ืฃ ื“ื™ ืงื•ื•ื™ื˜ืœ "Assemblyยป ืึทืจืึธืคึผื ืขืžืขืŸ ื“ื™ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ืกื™ืžื‘ืึธืœ ืจืงืกื ื•ืžืงืก ืคื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืคืขืœื“

ื‘ืึทืžืขืจืงื•ื ื’: ื“ื™ ืœืขืฆื˜ืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ ื”ืื˜ ืึท ื–ืฉื•ืง - ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ืกื™ืžื‘ืึธืœืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคึฟืขื ืฆื˜ืขืจ, ื›ืึธื˜ืฉ ื–ื™ื™ ื–ืขื ืขืŸ ื‘ื ื™ืžืฆื. ืื•ื™ื‘ ืื™ืจ ื“ืขืจืคืึทืจื•ื ื’ ื“ืขื ื’ืœื™ื˜ืฉ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทื–ื™ื™ึทื˜ื™ืงืŸ ื–ื™ื™ ืžืึทื ื™ื•ืึทืœื™ ืคื•ืŸ ื“ื™ .csproj ื˜ืขืงืข. ืึธื‘ืขืจ, ืžื™ืจ ื ืึธืš ื”ืึธื‘ืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ ืื™ืŸ ืขืก, ืึทื–ื•ื™ ืœื™ื™ืขื ืขืŸ ืื•ื™ืฃ.

ืจืขื ืึทืžืข ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ ื“ื™ ืœื™ื™ื–ื•ื ื’ Explorer ืคึฟืขื ืฆื˜ืขืจ ื“ื•ืจืš ืจื™ืžื•ื•ื•ื™ื ื’ ื“ื™ ืกืึทืคื™ืงืก _ืงืกื ื•ืžืงืก ืื•ืŸ ื“ืขืžืึธืœื˜ ืึทืจืึธืคึผื ืขืžืขืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืคื•ืŸ ื“ื™ ืœื™ื™ื–ื•ื ื’. ื“ืึธืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื”ืึทืœื˜ืŸ ืกื“ืจ ืื•ืŸ ื’ืขืคื™ืœืŸ ืคื•ืŸ ืคึผืขืจืคืขืงืฉืึทื ื™ืกืฅ! ืžื™ืจ ืขืคึฟืขื ืขืŸ ื“ื™ ื˜ืขืงืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืœื™ื™ื–ื•ื ื’, ืจืขื ืึทืžืข ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื˜ืขืงืข ื“ืึธืจื˜ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื•ื•ืขื’ ืื•ืŸ ืœืึธื“ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืฆื•ืจื™ืง ืื™ืŸ ื“ืขืจ ืœื™ื™ื–ื•ื ื’.

ืขืคืขื ืขืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคืึทืจื•ื•ืึทืœื˜ืขืจ. ื™ื•. ืขืก. ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืžืขืœื“ื•ื ื’ ืื™ืŸ ืคึผืจื™ื ืฆื™ืคึผ, ืขืก ื•ื•ืขื˜ ื ื™ื˜ ื–ื™ื™ืŸ ื“ืืจืฃ, ืึทื–ื•ื™ ืžื™ืจ ื•ื™ืกืžืขืงืŸ ืขืก. ืžื™ืจ ืžืึทื›ืŸ ื ื™ื™ึทืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืžื™ื˜ ื ืขืžืขืŸ ื•ื•ืึธืก ื–ืขื ืขืŸ ืฉื•ื™ืŸ ื‘ืึทืงืึทื ื˜ ืฆื• ืื•ื ื“ื– ืจืงืกื ื•ืžืงืก, ืจืงืกื ื•ืžืงืก,โ€ฆ, ืจืงืกื ื•ืžืงืก. ื‘ืึทืžืขืจืงื•ื ื’ ืึทื– ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื ืึธื›ืžืึทื›ืŸ ืกืขื˜ื˜ื™ื ื’ืก ืคื•ืŸ ืื ื“ืขืจืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืื•ืŸ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืึทืคึฟืŸ ืคึผืจื•ื™ืขืงื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–:

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ื’ื™ื™ืŸ ืฆื• ื“ื™ ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืขืคืขื ืขืŸ ื“ื™ ื˜ืขืงืข ืžื™ื˜ ื“ื™ .csproj ื’ืขืฉืคึผืจื™ื™ื˜ ืื™ืŸ ืึท ืจืขื“ืึทืงื˜ืึธืจ ื•ื•ืึธืก ืื™ื– ื‘ืึทืงื•ื•ืขื ืคึฟืึทืจ ืื™ืจ. ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ืื™ืจ ืงืขื ืขืŸ ืื•ื™ืš ืขืคึฟืขื ืขืŸ ืขืก ืื™ืŸ ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ - ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืึทื ืœืึธื•ื“ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ื“ืขืžืึธืœื˜ ื“ืขืจ ื’ืขื•ื•ืืœื˜ ื ื•ืžืขืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ื“ื™ ืงืึธื ื˜ืขืงืกื˜ ืžืขื ื™ื•:

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืขื“ื™ื˜ื™ื ื’ ืื™ืŸ ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ ืื™ื– ืืคื™ืœื• ื‘ื™ืœื›ืขืจ, ื–ื™ื ื˜ ื“ืขืจ ืจืขื“ืึทืงื˜ืึธืจ ื‘ื™ื™ื“ืข ืึทืœื™ื™ื ื– ืื•ืŸ ืคึผืจืึทืžืคึผืก.

ืื™ืŸ ื“ืขืจ ื˜ืขืงืข ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ื“ื™ ืขืœืขืžืขื ื˜ืŸ ืคึผืจืึธืคึผืขืจื˜ื™ ื’ืจืึธื•ืคึผ โ€“ ืื™ืŸ ื“ืขืจ ืฉืคึผื™ืฅ ืื™ื– ื“ืขืจ ืึทืœื’ืขืžื™ื™ื ืขืจ, ืื•ืŸ ื“ืขืจื ืึธืš ืงื•ืžืขืŸ ื“ื™ ื‘ืึทื“ื™ื ื’ื•ื ื’ืขืŸ. ื“ื™ ืขืœืขืžืขื ื˜ืŸ ืฉื˜ืขืœืŸ ื“ื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ื•ื•ืขืŸ ืขืก ืื™ื– ื’ืขื‘ื•ื™ื˜. ื“ืขืจ ืขืจืฉื˜ืขืจ ืขืœืขืžืขื ื˜, ื•ื•ืึธืก ืื™ื– ืึธืŸ ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ, ืฉื˜ืขืœื˜ ืึทืœื’ืขืžื™ื™ื ืข ืคึผืจืึธืคึผืขืจื˜ื™ืขืก, ืื•ืŸ ืขืœืขืžืขื ื˜ืŸ ืžื™ื˜ ื˜ื ืึธื™ื, ืึทืงืึธืจื“ื™ื ื’ืœื™, ื˜ื•ื™ืฉืŸ ืขื˜ืœืขื›ืข ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–.

ื’ื™ื™ืŸ ืฆื• ื“ืขืจ ืคึผืจืึธืกื˜ (ืขืจืฉื˜ืขืจ) ืขืœืขืžืขื ื˜ ืคึผืจืึธืคึผืขืจื˜ื™ ื’ืจืึธื•ืคึผ ืื•ืŸ ืงื•ืง ืื•ื™ืฃ ื“ื™ ืคืึทืจืžืึธื’ ืึทืกืขืžื‘ืœื™ ื ืึธืžืขืŸ โ€“ ื“ืึธืก ืื™ื– ื“ืขืจ ื ืึธืžืขืŸ ืคึฟื•ืŸ ื“ืขืจ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื•ืŸ ืžื™ืจ ื–ืึธืœืŸ ืขืก ื”ืึธื‘ืŸ ืึธืŸ ืึท ืกื•ืคึฟื™ืงืก _ืงืกื ื•ืžืงืก. ืื•ื™ื‘ ืขืก ืื™ื– ืึท ืกืึทืคื™ืงืก, ืึทืจืึธืคึผื ืขืžืขืŸ ืขืก.

ื’ืขืคึฟื™ื ืขืŸ ืึทืŸ ืขืœืขืžืขื ื˜ ืžื™ื˜ ืึท ืฆื•ืฉื˜ืึทื ื“

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

ืžื™ืจ ื“ืึทืจืคึฟืŸ ืขืก ื ื™ื˜ - ืžื™ืจ ื•ื™ืกืžืขืงืŸ ืขืก.

ืขืœืขืžืขื ื˜ ืžื™ื˜ ืฆื•ืฉื˜ืึทื ื“

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

ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืืจืฃ ืฆื• ืึทืจื‘ืขื˜ืŸ ืื™ืŸ ื“ืขืจ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ืงืึธื“ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื•ืŸ ื“ื™ื‘ืึทื’ื™ื ื’. ืื™ืจ ืงืขื ืขืŸ ื˜ื•ื™ืฉืŸ ื“ื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืฆื• ื“ื™ื™ืŸ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ - ืฉื˜ืขืœืŸ ืคืึทืจืฉื™ื“ืขื ืข ืจืขื–ื•ืœื˜ืึทื˜ ืคึผืึทื˜ืก, ื˜ื•ื™ืฉืŸ ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ืกื™ืžื‘ืึธืœืก, ืขื˜ืง.

ืื™ืฆื˜ ืœืึธืžื™ืจ ืžืึทื›ืŸ ื ื™ื™ึทืข ืขืœืขืžืขื ื˜ืŸ ืคึผืจืึธืคึผืขืจื˜ื™ ื’ืจืึธื•ืคึผ ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–. ืื™ืŸ ื“ื™ ืขืœืขืžืขื ื˜ืŸ ืžื™ืจ ื ืึธืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ืคื™ืจ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก:

  • OutputPath - ืจืขื–ื•ืœื˜ืึทื˜ ื˜ืขืงืข. ืื™ืš ืฉื˜ืขืœืŸ ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ื•ื•ืขืจื˜ binR20xx
  • ื“ืขืคื™ื ื™ืจืŸ ืงืึธื ืกื˜ืึทื ืฅ - ืงืึทื ื“ื™ืฉืึทื ืึทืœ ื–ืึทืžืœื•ื ื’ ืกื™ืžื‘ืึธืœืก. ื“ื™ ื•ื•ืขืจื˜ ื–ืึธืœ ื–ื™ื™ืŸ ืกืคึผืขืกื™ืคื™ืขื“ TRACE;R20ั…ั…
  • TargetFrameworkVersion - ืคึผืœืึทื˜ืคืึธืจืžืข ื•ื•ืขืจืกื™ืข. ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื“ื™ Revit API ื“ืึทืจืคืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคึผืœืึทื˜ืคืึธืจืžืก.
  • ืึทืกืขืžื‘ืœื™ ื ืึธืžืขืŸ - ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื ืึธืžืขืŸ (ื“"ื” ื˜ืขืงืข ื ืึธืžืขืŸ). ืื™ืจ ืงืขื ืขืŸ ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืคึผื™ื ื˜ืœืขืš ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’, ืึธื‘ืขืจ ืคึฟืึทืจ ื•ื•ืขืจืกืึทื˜ื™ืœืึทื˜ื™ ืื™ืš ืจืขืงืึธืžืขื ื“ื™ืจืŸ ืฉืจื™ื™ื‘ืŸ ื“ื™ ื•ื•ืขืจื˜ $(AssemblyName)_20ั…ั…. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืžื™ืจ ืคืจื™ืขืจ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ื“ื™ ืกืึทืคื™ืงืก ืคื•ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื ืึธืžืขืŸ

ื“ื™ ืžืขืจืกื˜ ื•ื•ื™ื›ื˜ื™ืง ืฉื˜ืจื™ืš ืคื•ืŸ ืึทืœืข ื“ื™ ืขืœืขืžืขื ื˜ืŸ ืื™ื– ืึทื– ื–ื™ื™ ืงืขื ืขืŸ ืคืฉื•ื˜ ื–ื™ื™ืŸ ืงืึทืคึผื™ื“ ืื™ืŸ ืื ื“ืขืจืข ืคึผืจืึทื“ื–ืฉืขืงืก ืึธืŸ ื˜ืฉืึทื ื’ื™ื ื’ ื–ื™ื™ ื‘ื™ื™ึท ืึทืœืข. ืฉืคึผืขื˜ืขืจ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ืš ื•ื•ืขื˜ ืฆื•ื˜ืฉืขืคึผืขืŸ ืึทืœืข ื“ื™ ืื™ื ื”ืึทืœื˜ ืคื•ืŸ ื“ื™ .csproj ื˜ืขืงืข.

ืึธื•ืงื™ื™, ืžื™ืจ ื”ืึธื‘ืŸ ืคื™ื’ื™ืขืจื“ ื“ื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ - ืขืก ืื™ื– ื ื™ืฉื˜ ืฉื•ื•ืขืจ. ืึธื‘ืขืจ ื•ื•ืึธืก ืฆื• ื˜ืึธืŸ ืžื™ื˜ ืคึผืœื•ื’-ืื™ืŸ ืœื™ื™ื‘ืจืขืจื™ื– (NuGet ืคึผืึทืงืึทื“ื–ืฉืึทื–). ืื•ื™ื‘ ืžื™ืจ ืงื•ืงืŸ ื•ื•ื™ื™ึทื˜ืขืจ, ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ืึทื– ื“ื™ ื™ื ืงืœื•ื“ืขื“ ืœื™ื™ื‘ืจืขืจื™ื– ื–ืขื ืขืŸ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ื“ื™ ืขืœืขืžืขื ื˜ืŸ ItemGroup. ืื‘ืขืจ ืฉืœืขื›ื˜ ื’ืœื™ืง - ื“ืขื ืขืœืขืžืขื ื˜ ื™ื ืงืขืจืขืงื˜ืœื™ ืคึผืจืึทืกืขืกืึทื– ื“ื™ ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ ื•ื•ื™ ืึทืŸ ืขืœืขืžืขื ื˜ ืคึผืจืึธืคึผืขืจื˜ื™ ื’ืจืึธื•ืคึผ. ื˜ืึธืžืขืจ ื“ืึธืก ืื™ื– ืืคื™ืœื• ืึท ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ ื’ืœื™ื˜ืฉ, ืึธื‘ืขืจ ืื•ื™ื‘ ืื™ืจ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืขื˜ืœืขื›ืข ืขืœืขืžืขื ื˜ืŸ ItemGroup ืžื™ื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื˜ื ืึธื™ื, ืื•ืŸ ืึทืจื™ื™ึทื ืœื™ื™ื’ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืคึฟืึทืจื‘ื™ื ื“ื•ื ื’ืขืŸ ืฆื• NuGet ืคึผืึทืงืึทื“ื–ืฉืึทื– ื™ืŸ, ืื•ืŸ ื•ื•ืขืŸ ืื™ืจ ื˜ื•ื™ืฉืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืึทืœืข ืกืคึผืขืกื™ืคื™ืขื“ ืคึผืึทืงืึทื“ื–ืฉืึทื– ื–ืขื ืขืŸ ืงืึธื ื ืขืงื˜ืขื“ ืฆื• ื“ื™ ืคึผืจื•ื™ืขืงื˜.

ื“ืขืจ ืขืœืขืžืขื ื˜ ืงื•ืžื˜ ืื•ื ื“ื– ืฆื• ื”ื™ืœืฃ ืงืœื™ื™ึทื‘ืŸ, ื•ื•ืึธืก ืึทืจื‘ืขื˜ ืœื•ื™ื˜ ืื•ื ื“ื–ืขืจ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš ืœืึธื’ื™ืง ืื•ื™ื‘-ื“ืขืžืึธืœื˜-ืึทื ื“ืขืจืฉ.

ื ื™ืฆืŸ ืขืœืขืžืขื ื˜ ืงืœื™ื™ึทื‘ืŸ, ืžื™ืจ ืฉื˜ืขืœืŸ ืคืึทืจืฉื™ื“ืขื ืข NuGet ืคึผืึทืงืึทื“ื–ืฉืึทื– ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–:

ื›ืœ ืื™ื ื”ืึทืœื˜

<?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>

ื‘ื™ื˜ืข ื˜ืึธืŸ ืึทื– ืื™ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ ืื™ืš ืกืคึผืขืกื™ืคื™ืขื“ ืฆื•ื•ื™ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ื“ื•ืจืš OR. ื“ืขื ื•ื•ืขื’ ื“ื™ ืคืืจืœืื ื’ื˜ ืคึผืขืงืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืงืึธื ื ืขืงื˜ืขื“ ื‘ืขืฉืึทืก ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ื“ื™ื‘ืึทื’.

ืื•ืŸ ื“ืึธ ืžื™ืจ ื”ืึธื‘ืŸ ื›ึผืžืขื˜ ืึทืœืฅ ื’ืื ืฅ. ืžื™ืจ ืœืึธื“ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืฆื•ืจื™ืง, ื’ืขื‘ืŸ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ, ืจื•ืคืŸ ื“ื™ ื ื•ืžืขืจ "ืื™ืŸ ื“ื™ ืงืึธื ื˜ืขืงืกื˜ ืžืขื ื™ื• ืคื•ืŸ ื“ื™ ืœื™ื™ื–ื•ื ื’ (ื ื™ืฉื˜ ื“ื™ ืคึผืจื•ื™ืขืงื˜)ื•ืžืงืขืจืŸ ืึทืœืข NuGet ืคึผืึทืงืึทื“ื–ืฉืึทื–"ืื•ืŸ ืžื™ืจ ื–ืขืŸ ื•ื•ื™ ืื•ื ื“ื–ืขืจ ืคึผืึทืงืึทื“ื–ืฉืึทื– ื˜ื•ื™ืฉืŸ.

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืื•ืŸ ืื™ืŸ ื“ืขื ื‘ื™ื ืข ืื™ืš ื’ืขืงื•ืžืขืŸ ืฆื• ืึท ื˜ื•ื™ื˜ ืกื•ืฃ - ืื™ืŸ ืกื“ืจ ืฆื• ื–ืึทืžืœืขืŸ ืึทืœืข ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืื™ืŸ ืึทืžืึธืœ, ืžื™ืจ ืงืขืŸ ื ื•ืฆืŸ ืคึผืขืงืœ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ (ืžืขื ื™ื• "Assemblyยป->ยซืคึผืขืงืœ ื‘ื•ื™ืขืŸ"), ืึธื‘ืขืจ ื•ื•ืขืŸ ืกื•ื•ื™ื˜ืฉื™ื ื’ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–, ืคึผืึทืงืึทื“ื–ืฉืึทื– ื–ืขื ืขืŸ ื ื™ืฉื˜ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื’ืขื–ื•ื ื˜. ืื•ืŸ ื•ื•ืขืŸ ืึทืกืขืžื‘ืึทืœื™ื ื’ ื“ื™ ืคึผืจื•ื™ืขืงื˜, ื“ืึธืก ืื•ื™ืš ื˜ื•ื˜ ื ื™ืฉื˜ ืคึผืึทืกื™ืจืŸ, ื›ืึธื˜ืฉ, ืื™ืŸ ื˜ืขืึธืจื™ืข, ืขืก ื–ืึธืœ. ืื™ืš ื”ืื‘ ื ื™ืฉื˜ ื’ืขืคื•ื ืขืŸ ืึท ืœื™ื™ื–ื•ื ื’ ืฆื• ื“ืขื ืคึผืจืึธื‘ืœืขื ื ื™ืฆืŸ ื ืึธืจืžืึทืœ ืžื™ื˜ืœ. ืื•ืŸ ืจื•ื‘ึฟ ืžืกืชึผืžื ื“ืึธืก ืื™ื– ืื•ื™ืš ืึท ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ ื–ืฉื•ืง.

ื“ืขืจื™ื‘ืขืจ, ืคึฟืึทืจ ืคึผืขืงืœ ืคึฟืึทืจื–ืึทืžืœื•ื ื’, ืขืก ืื™ื– ื‘ืึทืฉืœืึธืกืŸ ืฆื• ื ื•ืฆืŸ ืึท ืกืคึผืขืฆื™ืขืœ ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืกื™ืกื˜ืขื ื ื•ืง. ืื™ืš ืึทืงื˜ืฉืึทื•ื•ืึทืœื™ ื”ืื˜ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ื“ืขื ื•ื•ื™ื™ึทืœ ืื™ืš ื˜ืจืึทื›ื˜ืŸ ืขืก ืื™ื– ืึธื•ื•ื•ืขืจืงื™ืœ ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ืคึผืœื•ื’ื™ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ืึธื‘ืขืจ ืื™ืŸ ื“ืขื ืžืึธืžืขื ื˜ ืื™ืš ื˜ืึธืŸ ื ื™ื˜ ื–ืขืŸ ืงื™ื™ืŸ ืื ื“ืขืจืข ืœื™ื™ื–ื•ื ื’. ืื•ืŸ ืฆื• ื“ื™ ืงืฉื™ื "ืคืืจื•ื•ืืก ื ื•ืงืข?" ื“ืขืจ ืขื ื˜ืคืขืจ ืื™ื– ืคึผืฉื•ื˜ - ืžื™ืจ ื ื•ืฆืŸ ืขืก ืื™ืŸ ืึทืจื‘ืขื˜.

ืึทื–ื•ื™, ื’ื™ื™ืŸ ืฆื• ื“ืขืจ ื˜ืขืงืข ืคื•ืŸ โ€‹โ€‹ืื•ื ื“ื–ืขืจ ืœื™ื™ื–ื•ื ื’ (ื ื™ืฉื˜ ื“ื™ ืคึผืจื•ื™ืขืงื˜), ื”ืึทืœื˜ืŸ ื“ื™ ืฉืœื™ืกืœ ื™ื‘ืขืจืจื•ืง ืื•ืŸ ืจืขื›ื˜ ื’ื™ื˜ ืื•ื™ืฃ ืึท ืœื™ื™ื“ื™ืง ืคึผืœืึทืฅ ืื™ืŸ ื“ืขืจ ื˜ืขืงืข - ืื™ืŸ ื“ื™ ืงืึธื ื˜ืขืงืกื˜ ืžืขื ื™ื• ืกืขืœืขืงื˜ื™ืจืŸ ื“ืขื ื ื•ืžืขืจ "ืขืคืขื ืขืŸ PowerShell ืคึฟืขื ืฆื˜ืขืจ ื“ืึธ'.

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืขืก ืื™ื ืกื˜ืึทืœื™ืจืŸ ื ื•ืง, ื“ืขืžืึธืœื˜ ืขืจืฉื˜ืขืจ ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื‘ืึทืคึฟืขืœ

dotnet tool install Nuke.GlobalTool โ€“global

ืื™ืฆื˜ ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ื ื•ืง ืื•ืŸ ืื™ืจ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผืจืึทืžืคึผื˜ื™ื“ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื ื•ืง ืคึฟืึทืจ ื“ื™ ืงืจืึทื ื˜ ืคึผืจื•ื™ืขืงื˜. ืื™ืš ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ืกืŸ ื•ื•ื™ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื“ืขื ืžืขืจ ืจื™ื›ื˜ื™ืง ืื™ืŸ ืจื•ืกื™ืฉ - ืื™ืŸ ืขื ื’ืœื™ืฉ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืฉืจื™ื‘ืŸ ืงืขืŸ ื ื™ื˜ ื’ืขืคึฟื™ื ืขืŸ .ื ื•ืงืข ื˜ืขืงืข. ืฆื™ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึท ื‘ื™ืœื“? [ื™/ืขืŸ]

ื“ืจื™ืงืŸ ื“ื™ Y ืฉืœื™ืกืœ ืื•ืŸ ื“ืขืžืึธืœื˜ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ื™ืจืขืงื˜ ืกืขื˜ื˜ื™ื ื’ืก. ืžื™ืจ ื“ืึทืจืคึฟืŸ ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืึธืคึผืฆื™ืข ื ื™ืฆืŸ MSBuild, ืึทื–ื•ื™ ืžื™ืจ ืขื ื˜ืคึฟืขืจืŸ ื•ื•ื™ ืื™ืŸ ื“ื™ ืกืงืจืขืขื ืฉืึธื˜:

ืžื™ืจ ืžืึทื›ืŸ ืื™ื™ืŸ ืคึผืœื•ื’ื™ืŸ ืคึผืจื•ื™ืขืงื˜ ืžื™ื˜ ื–ืึทืžืœื•ื ื’ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ Revit / AutoCAD

ืœืึธืžื™ืจ ื’ื™ื™ืŸ ืฆื• ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ, ื•ื•ืึธืก ื•ื•ืขื˜ ื‘ืขื˜ืŸ ืื•ื ื“ื– ืฆื• ืจื™ืœืึธื•ื“ ื“ื™ ืœื™ื™ื–ื•ื ื’, ื–ื™ื ื˜ ืึท ื ื™ื™ึทืข ืคึผืจื•ื™ืขืงื˜ ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ืื™ื. ืžื™ืจ ืจื™ืœืึธื•ื“ ื“ื™ ืœื™ื™ื–ื•ื ื’ ืื•ืŸ ื–ืขืŸ ืึทื– ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืคึผืจื•ื™ืขืงื˜ ื‘ื•ื™ืขืŸ ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ื–ืขื ืขืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ื‘ืœื•ื™ื– ืื™ื™ืŸ ื˜ืขืงืข - 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<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 ืคึฟืขื ืฆื˜ืขืจ ืื•ืŸ ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ื•ื•ื™ื“ืขืจ ื ื•ืง (ืื™ืจ ืงืขื ืขืŸ ืฉืจื™ื™ึทื‘ืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ื ื•ืง ื™ื ื“ืึทืงื™ื™ื˜ื™ื ื’ ื“ื™ ืคืืจืœืื ื’ื˜ ืฆื™ืœ. ืื‘ืขืจ ืžื™ืจ ื”ืึธื‘ืŸ ืื™ื™ืŸ ืฆื™ืœ, ื•ื•ืึธืก ืœื•ื™ืคื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜). ื ืึธืš ื“ืจื™ื ื’ืœืขืš ื“ื™ ืึทืจื™ื™ึทืŸ key, ืžื™ืจ ื•ื•ืขืœืŸ ืคื™ืœืŸ ื•ื•ื™ ืคืึทืงื˜ื™ืฉ ื›ืึทืงืขืจื–, ื•ื•ื™ื™ึทืœ, ื•ื•ื™ ืื™ืŸ ืึท ืคึฟื™ืœื, ืื•ื ื“ื–ืขืจ ืคึผืจื•ื™ืขืงื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ืึทืกืขืžื‘ืึทืœื“ ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–.

ื“ื•ืจืš ื“ืขื ื•ื•ืขื’, ืื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ PowerShell ื’ืœื™ื™ืš ืคึฟื•ืŸ ื•ื•ื™ืกื•ืึทืœ ืกื˜ื•ื“ื™ืึธ (ืžืขื ื™ื• "ืžื™ื™ื ื•ื ื’ยป->ยซืื ื“ืขืจืข ืคึฟืขื ืฆื˜ืขืจยป->ยซืคึผืขืงืœ ืžืึทื ืึทื’ืขืจ ืงืึทื ืกืึธื•ืœ"), ืึธื‘ืขืจ ืึทืœืฅ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ืฉื•ื•ืึทืจืฅ ืื•ืŸ ื•ื•ื™ื™ึทืก, ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ื–ื™ื™ืขืจ ื‘ืึทืงื•ื•ืขื.

ื“ืึธืก ืขื ื“ื™ืงื˜ ืžื™ื™ืŸ ืึทืจื˜ื™ืงืœ. ืื™ืš ื‘ื™ืŸ ื–ื™ื›ืขืจ ืึทื– ืื™ืจ ืงืขื ืขืŸ ื’ืขืคึฟื™ื ืขืŸ ื“ื™ ืึธืคึผืฆื™ืข ืคึฟืึทืจ AutoCAD ื–ื™ืš. ืื™ืš ื”ืึธืคึฟืŸ ืึทื– ื“ืขืจ ืžืึทื˜ืขืจื™ืึทืœ ื“ืขืจืœืื ื’ื˜ ื“ืึธ ื•ื•ืขื˜ ื’ืขืคึฟื™ื ืขืŸ ื–ื™ื™ึทืŸ "ืงืœื™ื™ืึทื ืฅ".

ื’ื•ื˜ ื’ืœื™ืง!

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’