Quick Start
หน้านี้เหมาะกับคนที่อยากให้ plugin ขึ้นใน Revit ก่อน แล้วค่อยย้อนกลับไปอ่านรายละเอียดในบทอื่น
1. เตรียมเครื่อง
Section titled “1. เตรียมเครื่อง”- ติดตั้ง
Visual Studio 2022 - ติดตั้ง
.NET 8 SDK(สำหรับ Revit 2026) หรือ.NET 10 SDK(สำหรับ Revit 2027) - ติดตั้ง
Revit 2026(หรือ 2027)
2. สร้างโปรเจ็กต์
Section titled “2. สร้างโปรเจ็กต์”สร้างโปรเจ็กต์แบบ Class Library แล้วตั้งค่า RevitToolkit.csproj ให้ใกล้เคียงนี้
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <!-- Revit 2026 รันบน .NET 8 (ถ้าเป็น Revit 2027 ให้แก้เป็น net10.0-windows) --> <TargetFramework>net8.0-windows</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <!-- สำคัญ: ต้องระบุเป็น x64 เท่านั้น ห้ามเป็น Any CPU เพราะ Revit ทำงานบน 64-bit เท่านั้น --> <PlatformTarget>x64</PlatformTarget> </PropertyGroup>
<ItemGroup> <!-- อ้างอิง Core API สำหรับการเข้าถึงโมเดลและพารามิเตอร์วัตถุ --> <Reference Include="RevitAPI"> <HintPath>C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll</HintPath> <!-- <Private>false</Private> (Copy Local = False) ป้องกันไม่ให้ก๊อปปี้ DLL หลักของ Revit ไปยังโฟลเดอร์ Output เนื่องจาก Revit มีไฟล์นี้อยู่ในตัวระบบอยู่แล้ว --> <Private>false</Private> </Reference> <!-- อ้างอิง UI API สำหรับการควบคุมหน้าต่างและริบบอนเมนูบนจอ --> <Reference Include="RevitAPIUI"> <HintPath>C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll</HintPath> <Private>false</Private> </Reference> </ItemGroup></Project>💡 เจาะลึกโครงสร้างโปรเจ็กต์
Section titled “💡 เจาะลึกโครงสร้างโปรเจ็กต์”<TargetFramework>: กำหนดเวอร์ชัน .NET (Revit 2026 ใช้ .NET 8.0 ส่วน Revit 2027 จะอัปเกรดเป็น .NET 10.0)<Private>false</Private>: เป็นจุดที่มือใหม่ผิดพลาดบ่อยที่สุด! หากเปิดเป็นtrueระบบจะก๊อปปี้ไฟล์RevitAPI.dllขนาดมหึมาไปกองไว้ที่ output ซึ่งจะสร้างความขัดแย้งเชิงหน่วยความจำในระบบ Revit (Assembly Loading Conflict) เมื่อปลั๊กอินเปิดใช้งานจริง
3. เขียน command แรก
Section titled “3. เขียน command แรก”สร้าง Command.cs
using Autodesk.Revit.Attributes;using Autodesk.Revit.DB;using Autodesk.Revit.UI;
namespace RevitToolkit;
// 1. [Transaction(TransactionMode.Manual)]: ประกาศว่าคลาสนี้จะรับผิดชอบควบคุม Transaction (บันทึกข้อมูล) ด้วยโค้ด C# ของเราเอง[Transaction(TransactionMode.Manual)]public class Command : IExternalCommand // 2. บังคับสืบทอดไอคอน IExternalCommand เพื่อระบุว่าคลาสนี้คือ "ปุ่มสั่งงาน" ของ Revit{ // 3. เมธอด Execute: เป็น Entry Point ที่ Revit จะวิ่งมาเรียกทำงานเมื่อผู้ใช้คลิกปุ่มบนหน้าจอ public Result Execute( ExternalCommandData commandData, // อ็อบเจกต์เก็บชุดข้อมูลพิกัด ข้อมูลไฟล์โปรเจ็กต์ปัจจุบัน ref string message, // ตัวแปรเก็บประวัติตัวอักษรกรณีทำงานล้มเหลว ElementSet elements) // ชุดวัตถุที่ใช้สำหรับทำไฮไลท์สีแดงเวลาเกิดข้อผิดพลาด { // 4. TaskDialog.Show: เรียกใช้งานหน้าต่างแสดงผลข้อความอย่างรวดเร็วของ Revit TaskDialog.Show("RevitToolkit", "Hello from Revit 2026");
// 5. คืนสถานะ: บังคับส่งค่า Result กลับออกไปเพื่อบอก Revit ว่าปุ่มนี้ทำงานสมบูรณ์เรียบร้อยดี return Result.Succeeded; }}4. สร้างไฟล์ .addin
Section titled “4. สร้างไฟล์ .addin”สร้าง RevitToolkit.addin (ตั้งชื่อให้ตรงกับชื่อโปรเจ็กต์ของคุณ)
<?xml version="1.0" encoding="utf-8" standalone="no"?><RevitAddIns> <AddIn Type="Command"> <Name>RevitToolkit</Name> <!-- โหลด DLL ผ่าน Relative Path ตามโฟลเดอร์ที่ Deploy --> <Assembly>RevitToolkit\RevitToolkit.dll</Assembly>
<!-- ฝัง GUID เฉพาะตัวของโปรเจ็กต์ อย่าซ้ำกับคนอื่น --> <AddInId>YOUR-NEW-GUID-HERE</AddInId>
<!-- Path ของ Class เต็มรูปแบบ (Namespace.Class) ชี้ไปยังไฟล์ Command.cs --> <FullClassName>RevitToolkit.Command</FullClassName> <Text>RevitToolkit</Text>
<VendorId>PREMIX</VendorId> <VendorDescription>Premix Company</VendorDescription> </AddIn></RevitAddIns>5. ตั้ง deploy path และ copy ไฟล์หลัง build
Section titled “5. ตั้ง deploy path และ copy ไฟล์หลัง build”ให้คุณเพิ่มบล็อก <Target> เข้าไปด้านล่างสุดในแฟ้ม .csproj ของคุณ (ก่อนแท็กปิด </Project>) เพื่อให้ระบบก๊อปปี้ไฟล์ .dll และ .addin ไปลงในเครื่องอัตโนมัติทุกครั้งที่กดรัน:
<Target Name="CopyRevitFiles" AfterTargets="Build"> <!-- ก๊อปปี้ DLL เข้าไปโฟลเดอร์รหัสตามชื่อโปรเจ็กต์ $(AssemblyName) --> <Copy SourceFiles="$(TargetPath)" DestinationFolder="$(ProgramData)\Autodesk\Revit\Addins\2026\$(AssemblyName)\" /> <!-- ก๊อปปี้ไฟล์ .addin เข้าโฟลเดอร์หลักของ Revit อัตโนมัติ --> <Copy SourceFiles="$(ProjectDir)$(AssemblyName).addin" DestinationFolder="$(ProgramData)\Autodesk\Revit\Addins\2026\" /> </Target>ถ้าข้ามขั้นนี้ Revit จะยังไม่รู้จัก plugin ของคุณ เพราะยังไม่มีแฟ้มข้อมูลส่งไปลงทะเบียนในโฟลเดอร์ของระบบครับ
6. ทดสอบ
Section titled “6. ทดสอบ”- Build โปรเจ็กต์
- เปิด Revit 2026
- กด
Always Loadถ้ามี warning เรื่อง unsigned add-in - ไปที่
Add-Ins > External Tools > RevitToolkit - ถ้าขึ้น
Hello from Revit 2026แปลว่า setup ผ่านแล้ว