Ghim và bỏ ghim theo danh mục
Nhóm Pin / UnPin trên BimSpeed.GEN → Căn dóng (Align) đặt trạng thái ghim cho phần tử theo danh mục trong tài liệu Revit đang mở. Các lệnh này không giới hạn theo tập phần tử đang chọn hoặc view đang mở.
Đã đối chiếu ribbon, các command Pin/UnPin và PinController trong mã nguồn. Chưa kiểm tra bản add-in đang cài trong Revit vì phiên khởi động ngày 23/10/2026 đang chờ đăng nhập Autodesk. Các ví dụ dưới đây là bài thực hành đề xuất; chưa có ảnh hoặc số lượng kết quả thực chạy trong phiên này.
Chọn đúng phạm vi trước khi chạy
- Tạo bản sao RVT và mở bản sao để thực hành.
- Xác định danh mục cần ghim. Nếu chỉ muốn ghim vài phần tử, chọn chúng và dùng lệnh Pin của Revit; các lệnh BIMSpeed ở trang này quét toàn tài liệu.
- Mở menu Pin hoặc UnPin, chọn danh mục tương ứng.
- Kiểm tra một phần tử trong view hiện tại và một phần tử cùng danh mục ở view/tầng khác. Chỉ nhìn phần tử đang chọn không chứng minh toàn bộ danh mục đã được xử lý.
Từng lựa chọn
Mỗi lựa chọn có hai hướng: Pin đặt Pinned = true; UnPin đặt Pinned = false. Phần tử đã có trạng thái đích được giữ nguyên. Không có trường khoảng cách, số lượng hoặc chọn tầng trong controller này.
| Lựa chọn | Phần tử được tìm trong mã nguồn | Cách kiểm tra |
|---|---|---|
| Grids | Trục, OST_Grids | Chọn một trục và kiểm tra biểu tượng ghim |
| Levels | Cao độ, OST_Levels | Mở mặt đứng/mặt cắt, kiểm tra một cao độ |
| Sections | OST_Viewers | Kiểm tra ký hiệu view; phạm vi kỹ thuật là danh mục Viewers |
| Elevations | OST_Elev | Kiểm tra ký hiệu mặt đứng |
| Tags | Các danh mục có tên chứa Tag | Kiểm tra tag ở nhiều view và cả trạng thái sau Undo |
| Sheets | Các View trả về từ GetAllPlacedViews() của mọi ViewSheet | Cần kiểm tra riêng trên bản đang cài; xem giới hạn bên dưới |
| Columns | Cột kết cấu, OST_StructuralColumns | Kiểm tra cột kết cấu; không suy ra cột kiến trúc cũng được xử lý |
| Framings | Dầm/khung kết cấu, OST_StructuralFraming | Kiểm tra dầm ở nhiều tầng |
| Floors | Sàn, OST_Floors | Kiểm tra sàn ở view khác |
| Walls | Tường, OST_Walls | Kiểm tra một tường có thể sửa |
| Foundations | Móng kết cấu, OST_StructuralFoundation | Kiểm tra móng; không mặc định mọi sàn đều là móng |
| Generic Models | OST_GenericModel | Kiểm tra một instance Generic Model |
| Elements Has Volume | Instance có tham số HOST_VOLUME_COMPUTED | Kiểm tra danh mục thực tế; điều kiện là có tham số, không phải thể tích lớn hơn 0 |
| Rebars | Cốt thép, OST_Rebar | Chọn một phần tử Rebar, kiểm tra trạng thái ghim |
| Groups | Các phần tử lớp Group | Kiểm tra instance group; không suy ra từng thành viên được ghim riêng |
| Link / Links | Instance liên kết Revit, OST_RvtLinks | Kiểm tra instance liên kết trong file chủ; không thay đổi phần tử bên trong file liên kết |
Separator là vạch phân cách. Dù dữ liệu JSON còn ghi một command trên mục này, RibbonUtils nhận diện tên Separator để tạo vạch phân cách thay cho nút lệnh. Mô tả tooltip có thể không khớp đối tượng ở một số nút; cần đối chiếu kết quả theo đúng lựa chọn và phiên bản.
Hai trường hợp cần kiểm tra riêng
Sheets
Controller lấy ID của View đã đặt lên sheet rồi đổi Pinned trên các View đó. Controller không thu thập trực tiếp Viewport. Vì vậy trang này chưa khẳng định lệnh khóa được vị trí viewport trên sheet. Nếu mục tiêu là cố định khung nhìn trên tờ, kiểm tra viewport thực tế và dùng Pin của Revit cho viewport nếu cần.
Tags và Undo
Lệnh Tags lặp qua các danh mục có tên chứa Tag, gọi một transaction cho từng danh mục. Vì vậy có thể cần nhiều bước Undo để quay lại trạng thái trước khi chạy. Kiểm tra danh sách Undo và trạng thái đại diện; không mặc định một lần Ctrl+Z phục hồi mọi tag.
Bài thực hành: ghim rồi bỏ ghim trục
Chuẩn bị ít nhất hai trục ở các view khác nhau. Ghi lại trạng thái ban đầu, chạy Pin → Grids, sau đó kiểm tra trạng thái của cả hai trục. Chạy UnPin → Grids và kiểm tra lại. Kết quả dự kiến theo mã nguồn là các trục có thể sửa đổi sẽ nhận trạng thái đích.
Ghim không phải cơ chế khóa quyền chỉnh sửa: phần tử có thể được bỏ ghim sau đó. Lưu RVT để giữ thay đổi đã thực hiện lên model.
Phần tử không thay đổi
Controller danh mục, Groups và Elements Has Volume bắt lỗi trên từng phần tử rồi tiếp tục. Thành viên group, phần tử không cho ghim hoặc phần tử không có quyền sửa có thể bị bỏ qua mà không có bảng tổng hợp chi tiết. Với Sheets, đường xử lý không có cùng cơ chế bỏ qua từng phần tử; cần kiểm tra kết quả riêng.
Khi thấy một phần tử chưa đổi trạng thái, kiểm tra đúng category, khả năng chỉnh sửa trong worksharing và quan hệ group. Kiểm tra cả dữ liệu trước/sau và Undo trước khi lưu bản thực hành.