Chào mừng các bác đã ghé thăm blog của mình.😄

Mục đích sử dụng

Đôi khi việc sao chép hoặc dán đối tượng trong mô hình làm ảnh hưởng đến công việc này, vấn đề có thể xảy ra rất nhiều với trường hợp sao chép nhầm mà khó có thể nhận ra được đối tượng nào trùng lặp, với ví dụ nhỏ dưới này sẽ giúp các bác kiểm tra nhanh những ống nào nằm trong mô hình MEP bị trùng lặp nhé.


Bắt đầu

Đầu tiên mình sẽ lấy về các ống Pipe có trên mô hình và các đường CurveEndpoints để lấy MidPoint lọc ra một mớ list tọa độ của các ống.Giờ thì công việc tiếp theo của mình chính là tìm ra điểm nào trùng mà thôi.

ElementDup001

Thuật toán lọc ra đối tượng trùng lặp

mylist = IN[0]
i, seen, result = mylist, set(), []
for _index, item in enumerate(i):
if item not in seen:
seen.add(item)
else:
result.append(_index)
OUT = result

Giờ thêm tí muối vào để xuất Excel nữa

ExcelElementDup

Và cuối cùng là xóa đối tượng với package Orichid

ElementDeleteDup

Kết quả

Video Demo :

Mở rộng

Ở bài này mình chỉ hướng dẫn các bác làm với các loại như ống có CurveEndPoint, vậy với các Famiy không có CurveEndPoint thì sao, gợi ý cho các bác là dùng FamilyInstance.Location nhé, cuối cùng mình gửi các bác Script cho bác nào còn chưa làm được.Chúc các bác thành công.

Picture : Download
Scripts Dyn : Download

Tổng kết

Vậy là mình đã kể cho các bác nghe xong hết câu chuyện nữa rồi đó, cứ thấy gì đó vui vui hay hay là mình lại viết lên cho a e tham khảo và góp ý, nếu có ý tưởng gì giúp cải thiện nhanh hơn thì các bác bình luận bên dưới nhé, mình sẽ bổ sung để bài viết được hoàn thiện hơn.Cám ơn các bác đã ghé thăm blog của mình !

Tham khảo :

Hồ Văn Chương