[REVIT API Task] Tạo Addin RebarBeam - Phần 3: Truy xuất trục tọa độ | Vietbimcoder.com

[REVIT API TASK] TẠO ADD-IN REBAR BEAM – TẠO THÉP DẦM TỰ ĐỘNG (PHẦN 3: TRUY XUẤT TRỤC TỌA ĐỘ)

Tiếp tục series add-in Rebar Beam, ở phần 3 mình sẽ hướng dẫn truy xuất trục tọa độ của đối tượng dầm.

Các bài còn lại trong series:

Phần 1: Chọn đối tượng

Phần 2: Truy xuất kích thước hình học

Phần 4: Truy xuất tọa độ tiết diện

Kích thước hình học:

Width, Heigth, Length đại hiện cho chiều rộng, chiều cao và chiều dài của dầm.

Hệ tọa độ địa phương:

Kiểu dữ liệu XYZ chứa 3 giá trị X, Y, Z đại diện cho giá trị tọa độ một điểm, hoặc xác định một vector chỉ phương trong không gian ba chiều.

Origin: Gốc tọa độ của dầm

VectorX: Vector chỉ phương từ gốc tọa độ, song song với chiều dài dầm, có chiều dài là 1 đơn vị.

VectorY: Vector chỉ phương từ gốc tọa độ, song song với chiều rộng dầm, có chiều dài là 1 đơn vị.

VectorZ: Vector chỉ phương từ gốc tọa độ, song song với chiều cao dầm, có chiều dài là 1 đơn vị.

Ở phần 2.2, ta tìm hiểu cách để truy xuất tọa độ địa phương đối tượng.

Khái niệm về hình học không gian

Thư viện Revit API xây dựng một hệ thống các kiểu dữ liệu, công cụ mạnh mẽ để truy xuất và xử lý thông tin hình học đối tượng Element trong không gian ba chiều.

  • Các kiểu dữ liệu là nền tảng hình học không gian: XYZ, UV, Plane,…
  • Các kiểu dữ liệu định nghĩa đối tượng hình học cụ thể trong mô hình dự án: Line, Circle, Solid…
  • Các kiểu dữ liệu là công cụ hỗ trợ truy xuất và xử lý thông tin: JoinGeometryUtils, GeometryCreationUtilities…

Nhờ vào thư viện mạnh mẽ Revit, ta có thể sử dụng để truy xuất, xử lý các thông tin hình học trong đối tượng hiệu quả và nhanh chóng. Ngoài ra, ta có thể xây dựng các thư viện không gian tự định nghĩa để xử lý các trường hợp chuyên biệt.

Location

Location là kiểu dữ liệu xác định vị trí thực thể của đối tượng trong không gian.

Location có các kiểu dữ liệu con là LocationPoint và LocationCurve để xác định định vị trí là một điểm đặt (đối với cột, room, generic model..) hay một đường dóng (đối với dầm, tường, …)

Định nghĩa LocationCurve kế thừa từ Location trong thư viện Revit API:

Truy xuất thuộc tính Location từ Element:

Ép kiểu Location sang kiểu LocationCurve để lấy thông tin đường dóng dầm.

Curve

Curve là kiểu dữ liệu định nghĩa một đường hình học, có thể là đường thẳng, đường tròn, ellipse…

Curve cũng có các kiểu dữ liệu con là Line, Arc, Ellipse … đại diện cho các loại đường hình học có trong Revit.

Định nghĩa Line kế thừa từ Curve trong thư viện Revit API:

Truy xuất thuộc tính Curve có trong đối tượng LocationCurve:

Ép kiểu Curve sang kiểu Line để lấy thông tin đường thẳng.

Truy xuất hệ tọa độ

Trục OX của dầm chạy song song chiều dài dầm, trùng với vector chỉ phương của đối tượng Line đã truy xuất.

Trục OZ của dầm chạy song song chiều cao dầm, sẽ phụ thuộc vào cao độ điểm đầu và cuối của dầm.

Để đơn giản hóa bài toán trong ví dụ này, ta chấp nhận giả thiết cao độ dầm không đổi, nghĩa là cao độ điểm đầu và điểm cuối dầm giống nhau. Khi đó, trục OZ song song với trục Z của mô hình dự án, tương ứng với vector (0,0,1).

Bây giờ ta đã có hai trục trong hệ trục tọa độ không gian, ta hoàn toàn có thể xác định trục còn lại theo quy tắc tam diện thuận trong hình học.

 

 

 

 

 

 

 

 

 

VectorY sẽ có giá trị bằng tích có hướng giữa VectorX và VectorZ, Revit API cung cấp phương thức XYZ.CrossProduct() để xử lý công thức trên.

Kết quả

Sử dụng TaskDialog.Show() để xuất kết quả qua hộp thoại trong giao diện Revit, tương tự các phần trước.

Phần tiếp theo mình sẽ hướng dẫn cách truy xuất vị trí các điểm biên của dầm. Các bạn nhớ theo dõi nhé.

Đoạn code hoàn chỉnh:

 

Bài viết liên quan