OneBIM.vn
Kết Nối và Chia Sẻ

Bài 5 :Tham chiếu đối tượng Revit trong Dynamo

1.Phần kiến thức nhỏ nên biết trong Revit  .

– Phần này khá nhiều lí thuyết có thể làm người đọc chán nhưng rất tốt cho những người mới học Dynamo chưa vận dụng được hiểu biết về Revit .

– Hình trên mô tả một cách cụ thể cách tổ chức các đối tượng cột trong Revit mà từ đó chúng ta có thể suy ra cách tổ chức tổng quát , bao quát nhất là tổ chức theo Category , sau đó đến Family ,sau đó đến các loại cột trong Family đó , cuối cùng là các thành phần cụ thể trong Revit.

-Ví dụ bạn có 10 cái cột thì đó là 10 “Instances”, có 2 cái hình tròn bán kính 600 mm ,2 cái hình tròn bán kính 400 ,3 cái hình  chữ nhật 450×600, 3 cái 600×750 thì ta có 4 loại cột (Type) . Tiếp đó 4 cái hình tròn lại thuộc cùng 1 Family , 6 cái hình vuông lại thuộc cùng Family. Cuối cùng dù là vuông hay tròn nó đều nằm trong Category cột .

-Phần này không thuộc pham vi của hướng dẫn Dynamo nhưng mình muốn nhắc tới để các bạn chú ý cách tổ chức đối tượng trong Revit sẽ có ích trong việc tham chiếu đối tượng rất nhiều .Vì nhiều bạn rõ ràng sử dụng Revit khá nhiều mà không áp dụng được hoặc chưa hiểu các tổ chức dẫn đến không tư duy được trong Dynamo.

Hay áp dụng nhất có lẽ là lấy đối tượng thông qua Category (bài sau sẽ trình bày).

+Category là lớp phân loại tổng quát nhất ,bạn có thể lấy ra mọi đối tượng trong Revit thông qua nó , bạn tưởng tượng Category giống như các quốc gia trên thế giới vậy , khi cần tìm một ai đó đầu tiên là phải xem người đó thuộc quốc gia nào . Vậy khi tìm một đối tượng trog Revit ta cần xem nó thuộc Category nào đã.

+ Một số nguyên tắc hình thành Category trong Revit :

-Cùng Family thì chắc chắn cùng Category

-Các đối tượng thuộc Family khác nhau cũng có thể cùng Category ,ví dụ như bạn có nhiều Family cột có Family cột tiết diện vuông, tròn…nhưng tất cả đều nằm trong Category Columns.

-Cùng 1 đối tượng có thể thuộc các Category khác nhau ,ví dụ 1 cái cột có thể thuộc Category Columns hoặc Category Structure Columns.

-Một số loại đối tượng không thuộc Family như  View,Material , Information Project cũng có Category vơi tên tương ứng.

-Sau Category có lẽ là các Family , thường thì để bài toán có tính tổng quát và kịch bản dùng cho nhiều Project được thì ta sử dụng Category rồi thục hiện các thao tác lọc đối tượng từ Category , nhưng trong một số trường hợp bạn chỉ cần sửa đổi một vài đối tượng hay file dynamo này bạn chỉ viết riêng cho kiểu Family đó thôi hay có quá nhiều đối tượng cần lọc trong Category làm cho File Dynamo chạy chậm thì bạn nên xem xét lọc các phần tử ở các cấp độ thấp hơn như Family .

2.Tham chiếu đối tượng Revit trong Dynamo

-OK ! Có vẻ như học các bài trước nhiều bạn sẽ cảm thấy nó thật nhàm chán vì toàn mấy cái lí thuyết tào lao chưa thấy ứng dụng thực tế đâu ,thì đây , bài này sẽ bắt đầu có tính thực tế cao hơn rất nhiều , các bạn sẽ thấy các bài trước có tác dụng chứ không tào lao như các bạn nghĩ :v !

– Thông thường khi ta muốn làm gì đó với một đối tượng nào đó thì ta cũng phải sờ được vào nó đúng không ?  Dynamo cũng thế , trước khi bạn muốn thực hiện một công việc với 1 đối tượng trong Revit thì bạn cũng phải sờ được vào nó ,hay nói dễ hiểu hơn lấy nó từ trong Revit .Mình đặt cái tên “Tham chiếu đối tượng Revit trong Dynamo” cho nó nguy hiểm thôi chứ chẳng qua là lọc đối tượng trong Revit để sử dụng trong Dynamo :v .Hầu hết các bài toán tự động hóa đều phải trải qua việc này nên nó rất quan trọng nhé !

2.1.Chọn trực tiếp đối tượng

– Cái này chắc không phải giải thích gì nhiều , chỉ đơn giản bạn lấy 1 Node chọn ra , kích chọn “Select”  rồi vào Revit chọn phần tử cần là được , mỗi phần tử trong Revit đều có “Id” riêng kiểu như chứng minh thư của đối tượng ấy ,nên khi chọn được đối tượng sẽ hiển thị “Id” bên dưới Node chọn .

-Một số Node chọn trực tiếp khác :

-Nhìn chung lúc mới bắt đầu khi chưa thạo việc lấy các đối tượng một cách Logic thì các Node kiểu này được sử dụng khá nhiều vì tiện lợi ,dễ hiểu .Tuy vậy khi bạn muốn tự động hóa 1 cách tốt hơn thì nên hạn chế dử dụng các Node này trong một “Kịch bản” (thường thì chỉ dùng 1 Node) ,vì mỗi lần chạy kịch bản có thể bạn phải thực hiện thao tác Select rất nhiều lần gây nhàm chán và mất thời gian.

-Các kiểu node này cũng được dùng để lên ý tưởng ngay với những người dùng quen nhưng sau đó sẽ dần được thay thế bằng các hình thức có tính tự động hóa cao hơn .

2.2.Lọc đối tượng thông qua hình thức tổ chức của đối tượng đó trong Revit.

-Một số ví dụ hay dùng :

-Trên đây là một số thao cách hay dùng ,các thao tác lọc có tính Logic và phức tạp hơn sẽ bắt nguồn từ đây .Mình sẽ giới thiệu một số cách có thể các bạn sẽ dùng nhiều.

2.3.Lọc đối tượng thông qua thuộc tính của nó

 –Dưới đây là 1 ví dụ đơn giản dùng trong thực tế để gán Template cho hàng loạt mặt cắt có cùng thuộc tính View Name.

Ở đây bạn lưu ý rằng Node List.FilterBystring thuộc gói SteamNodes, Node này sẽ nhận đối số là 1 List gồm các phần tử là chuỗi và 1 từ khóa bạn muốn tìm , tiếp đó nó sẽ cho ra 3 danh sách kết quả lần lượt từ trên xuống như sau :

  • Match : Gồm tên của phần tử chuỗi có chứa kí tự khóa (trong ví dụ là “Plan” )
  • Other  :   Gồm các phần tử chuỗi Không chứa từ khóa
  • Bool     : Danh sách gồm các giá trị Logic True hoặc False (hay dùng).
  • Node FilterByBooleMark mình đã nói ở phần trước rồi , các bạn chỉ cần lưu ý cách nối Node để lọc được phần tử .

Trong nhiều bài toán bạn cần lọc đối tượng , có thể bạn phải lọc vài lần mới lấy được chính xác đối tượng  cần tham chiếu , nếu không có cách hay hơn bạn chỉ đơn giản là copy vài node và mở rộng File Dynamo ra là được .

-Các bạn có thể Copy 1 đoạn Node nào đó bằng cách quét chọn rồi Ctrl+C và Ctrl +V , hoặc sau khi quét chọn bạn giữ Shift + chuột trái .

-Như vậy có thể đưa ra kết luận chỉ cần đối tượng có bất kì thuộc tính nào khác biệt với phần còn lại thì ta sẽ lọc được riêng nó để thịt :v .

-Nhưng nếu thuộc tính bạn cần lọc không có giá trị kiểu giữ liệu chuỗi thì sao ? Rất đơn giản , ta chỉ cần thêm 1 Node chuyển đổi kiểu dữ liệu là xong.

Bạn có thể phát triển ý tưởng bằng cách ứng dụng lọc cho nhiều đối tượng khác nhau như Wall , Columns, Rebar ….

  • Nâng cao hơn chút ta có thể lọc đối tượng gián tiếp thông qua đối tượng khác có quan hệ Logic với nó , đây là 1 kĩ thuật lọc đối tượng sẽ giúp bạn tự động hóa thao tác chọn đối tượng rất nhiều ,trong  thực  tế kĩ thuật này sử dụng rất nhiều trong các bài toán ,ở đây mình chỉ ví dụ một trường hợp đơn giản , các bạn cố gắng hiểu ý tưởng ban đầu rồi phát triển thêm nhé!

-Nếu có gì phần nào không hiểu bạn có thể đặt câu hỏi ngay bên dưới bài viết hoặc tham gia góp ý xây dựng diễn đàn tại https://forum.onebim.vn/. Mình hy vọng sẽ nhận được nhiều phản hồi tích cực để kịp thời sửa chữa và cùng nhau xây dựng một cộng đồng vững mạnh !

-Các bạn có thể tham gia nhóm Facebook để trao đổi và cập nhật thông tin về Dynamo https://www.facebook.com/groups/871336123015913/

Mọi ý kiến góp ý hay câu hỏi các bạn có thể gửi về mail hoặc Facebook tác giả  : danghuulamnd1992@gmail.com

https://www.facebook.com/lam.danghuu.3

Khó học do tác giả trực tiếp giảng dạy các bạn tìm hiểu thêm tại  : https://redy.vn/course/ung-dung-revit-dynamo-bim/

Xem tiếp Series<< Bài 4:Hướng dẫn về List và các Node hay dùng trong DynamoBài 6 : Gán thông tin cho đối tượng và nhập ,xuất thông tin sang excel trong Dynamo >>
Comments
Loading...