Ths.KTS NGUYỄN PHƯỚC DỰ
Tài liệu học Revit, Tác giả : ThS.KTS.Nguyễn Phước Dự
Sách học Revit, Tác giả : ThS.KTS.Nguyễn Phước Dự
PHƯƠNG THỨC CHỌN ĐỐI TƯỢNG BẰNG CODEVài phương thức cơ bản chọn đối tượng bằng Code mà chương trình tự chọn để xử lý theo một điều kiện cho trước bởi yêu cầu của câu lệnh. Cách chọn này người lập trình tự định hướng và xử lý cho chính xác, người dùng không thể can thiệp. Về nguyên tắc, chương trình sẽ lấy một tập hợp đối tượng được chọn của người dùng và lọc (Filter) lại những đối tượng cần xử lý hoặc lọc từ toàn bộ đối tượng trong file Revit (Document).
Từ đây chúng ta làm quen các từ Document và Filter. Document là toàn bộ dữ liệu của File Revit đang mở, còn Filter là lọc các một hay nhiều đối tượng theo một nhay nhiều điêu kiện, qui tắc toán học,...để chọn ra một tập hợp đối tượng cần xử lý bên trong tập hợp lớn hơn.
Phương thức New FilteredElementCollector( document) là lấy toàn bộ tra về cho biến "TatCaDoiTuongTrongFile". Biến này có kiểu dữ liệu đặc biệt "FilteredElementCollector ".
Đoạn code trên là cách chúng ta lọc toàn bộ đối tượng sàn trong tập hợp lớn "TatCaDoiTuongTrongFile". OfClass là chọn loại đối tượng, typeof là loại đối tượng. Dòng lệnh trên bao gồm luôn cả các đối tượng kiểu sàn, tức các tên tập hợp sàn.
ICollection SanKetCau= TatCaDoiTuongTrongFile. OfCategory(BuiltInCategory. OST_FloorsStructure).ToElements();
Khai báo một biến mới để chứa danh sách sàn M#200 chọn được:
List San_KC_M200 = new List ();
Còng lặp duyệt từng đối tượng đề kiểm tra điều kiện:
foreach (Element elem in SanKetCau) { Chọn một đối tượng và tìm tham số Vật liệu với từ khóa là Material, lấy ID của loại vật liệu chứa trong tham số Material. Vì giá trị vật liệu chứa trong tham số là một ID chứ không phải một tên kiểu chuỗi:
Parameter para = elem.LookupParameter("Material");
Đọc vật liệu từ số ID:
Element VatLieu= doc.GetElement(para.AsElementId()); Lấy tên vật liệu:
Material_Name= Material_ID .Name;
So sánh điều kiện, nếu đúng thì thêm vào biến "San_KC_M200 ".
if (Material_Name== "BTCT #200")
{
San_KC_M200 .Add(elem);
}
}
|
Sách học Revit, Tác giả : ThS.KTS.Nguyễn Phước Dự
(Nhấn Ctrl+V để Paste ảnh từ Clipboard)