Hướng dẫn viết plugin bằng C# để tạo menu, button mới cho AutoDesk Revit

Revit là một ứng dụng rất nổi tiếng của hãng AutoDesk cho phép các kỹ sư, kiến trúc sư mô hình hóa bản vẽ của mình trên máy tính. Ứng dụng này có vai trò rất quan trọng trong việc thể hiện trước các bản vẽ bằng model 3D, từ đó sẽ giúp các kỹ sư có thể tạo ra mô hình dựa trên các thông tin trên bản vẽ. Ngoài những chức năng có sẵn thì Revit còn làm hẳn một kho API cho phép các lập trình viên tạo ra thêm các chức năng tùy biến tùy theo mục đích của dự án. Hôm nay Trình sẽ giới thiệu cách tạo một plugin cho revit bằng C# – tạo một menu ribbon mới và một button với chức năng export model.

Hướng dẫn 4 bước cài đặt và tạo Revit plugin bằng C#

Bước 1: Tải template revit plugin cho C# và thêm vào visual studio,

Tìm và tải template Revit plugin cho C# sau đó add thêm vào visual studio, nhớ tải đúng với phiên bản revit mà máy bạn đang cài. Ở đây mình đang dùng bản revit 2021
+ Click vào link để tải: https://github.com/jeremytammik/VisualStudioRevitAddinWizard/tags
+ Giải nén file đã tải và copy vào thư mục : “C:\Users\ <USER NAME> \Documents\Visual Studio 2019\Templates\ProjectTemplates\Visual C#”

Bước 2: Mở visual studio và tạo project mới bằng template vừa cài

Search “revit” và chọn template C# sau đó ấn “Next”

Bước 2: Mở visual studio và tạo project mới bằng template vừa cài

Bước 2: Mở visual studio và tạo project mới bằng template vừa cài

Đặt tên và chọn nơi chức project sau đó ấn “Create”

Đặt tên và chọn nơi chức project sau đó ấn "Create"

Đặt tên và chọn nơi chức project sau đó ấn “Create”

 

Cấu trúc của template

Cấu trúc của template

Theo hình trên thì template đã tạo sẳn 2 script “App.cs”“Command.cs”. “App.cs” là script chính của plugin trong scipts sẽ có hàm “OnStartUp” sẽ được gọi khi khởi tạo script và hàm “OnShutDown” sẽ được gọi khi script hết hoạt động. Nôm na là mở revit thì chạy hàm “OnStartUp” và tắt revit thì chạy hàm “OnShutDown”. Còn script “Command.cs” là một script mẫu tý nửa mình sẽ dùng nó để add sự kiện cho button chuẩn bị tạo.

Giờ thì click đôi vào “Properties” có biểu tưởng cái cờ lê ở trước => ấn vào “Debug” => trong mục “Start action” tích vào “Start external program” và nhập đường mở revit vào đây. Đường dẫn mặc định: “C:\Program Files\Autodesk\Revit 2021\Revit.exe”

 

Bước 3: Tạo mẫu một button có chức năng export model

+ Thêm thư viện UI cho project bằng các thêm dll cho references. Nếu trong References đã có “RevitAPI”“RevitAPIUI” thì bỏ qua bước này
* Ấn phải chuột vào “References” và chọn vào “Add Reference…”

*Chọn vào Browse và trỏ đến đường dẫn :”C:\Program Files\Autodesk\Revit 2021″ theo hình dưới và tìm “RevitAPI.dll”“RevitAPIUI.dll”

*Kiểm tra xem đã chọn chưa nếu chưa thì chọn rồi ấn “OK”

+ Tạo fordel “Resources” bỏ hình thumbnail của button vào đó
* (1): Phải chuột vào tên project
* (2): Chọn “Add”
* (3): Chọn “New Folder”
* (4): Đổi tên thành “Resources”

+ Thêm image button vào resource bằng cách kéo trực tiếp hình vào thư mục Resources

+ Sau khi kéo vào thì ấn vào hình và chuyển “Build Action” của hình thành “Embedded Resource”

+ Bắt đầu code để tạo ra một button theo code dưới:

Tạo ribbon và button mới trong “App.cs”

 

Tạo sự kiên export model cho button vừa tạo ở trên trong “Command.cs”

 

Bước 4: Chạy thử

+ Ấn “Start” và Revit sẽ tự mở, khi khởi động revit sẽ hiện panel hỏi có load plugin không? Các bạn nhớ ấn “Always Load”(Tự load plugin khi mở revit lần tới) hoặc “Load Once”(hỏi lần này và hỏi lại vào lần tiếp theo), đừng ấn “Do Not Load”(Không load lần này)

+ Mở một project, nếu chưa có project. Có thể vào link https://knowledge.autodesk.com/support/revit-products/getting-started/caas/CloudHelp/cloudhelp/2019/ENU/Revit-GetStarted/files/GUID-61EF2F22-3A1F-4317-B925-1E85F138BE88-htm.html để tải một project mẫu. Sau đó ấn (1)“Open” và (2)nhập địa chỉ project đã tải vào và ấn (3)”Open”

+ Chuyển góc nhìn sang 3D

+ Ấn vào menu có tên mà các bạn đã đặt, ở đây sẽ xuất hiện một cái button ứng với cái button các bạn đã tạo ấn vào nó và Revit sẽ bắt đầu export

Revit đang export model

+ Mở thư mục theo đường dẫn gắn vào lúc export sẽ thấy có file model FBX mà revit đã export ở đó

Ngoài export model API của Revit còn rất nhiều các lệnh khác, các lập trình viên có thể sử dụng để tạo ra các menu mới theo yêu cầu dự án, các bạn có thể tham khảo tại đây https://www.revitapidocs.com/2020/. Ngoài các API của revit các bạn có thể dùng C# để làm nhiều thứ khác, ví dụ như mình đã dùng C# để kết nối với một ứng dụng được tạo bằng unity và đồng bộ model real time. Unity hổ trợ thêm các thư viện để tạo ra một ứng dụng thực tế ảo nên mình đã làm ra được kết quả như hình dưới

 

Mẫu liên hệ

Bình luận

Mẫu liên hệ