Skip to content

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 ให้ใกล้เคียงนี้

โปรเจ็กต์.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) เมื่อปลั๊กอินเปิดใช้งานจริง

สร้าง Command.cs

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;
}
}

สร้าง RevitToolkit.addin (ตั้งชื่อให้ตรงกับชื่อโปรเจ็กต์ของคุณ)

โปรเจ็กต์.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 ของคุณ เพราะยังไม่มีแฟ้มข้อมูลส่งไปลงทะเบียนในโฟลเดอร์ของระบบครับ

  1. Build โปรเจ็กต์
  2. เปิด Revit 2026
  3. กด Always Load ถ้ามี warning เรื่อง unsigned add-in
  4. ไปที่ Add-Ins > External Tools > RevitToolkit
  5. ถ้าขึ้น Hello from Revit 2026 แปลว่า setup ผ่านแล้ว