Parameter, tức tham số, là một ô thông tin gắn với cấu kiện: chiều dày tường, cao độ đáy cột, mã cấu kiện, ghi chú. Revit có năm loại parameter, khác nhau ở chỗ ai tạo ra, lưu ở đâu, và có lên được bảng thống kê, nhãn (tag) hay không. Bài này so sánh các loại parameter trong Revit trên Revit 2027: Built-in, Project, Shared, Family và Global, kèm sơ đồ chọn loại cho từng việc.
Chọn sai loại thì sau này phải làm lại: tạo project parameter rồi mới biết nó không lên được nhãn, hay tạo tham số mới trùng tên với tham số Revit đã có sẵn. Muốn học Revit có người hướng dẫn thì xem khóa Học Revit.
Parameter trong Revit là gì: instance và type
Mỗi parameter thuộc một trong hai mức:
- Instance: giá trị riêng cho từng cấu kiện. Sửa ở bảng Properties khi chọn cấu kiện. Ví dụ Mark, Comments, Base Offset của một bức tường.
- Type: giá trị chung cho mọi cấu kiện cùng kiểu. Sửa trong hộp Type Properties, mở bằng nút Edit Type. Ví dụ bề dày, Function của kiểu tường Generic - 200mm Masonry. Sửa một lần là mọi bức tường kiểu đó đổi theo.
Cách chọn khi tự tạo tham số, với cả bốn loại tự tạo được: mỗi cấu kiện cần một giá trị riêng, như mã cấu kiện hay đợt thi công, thì chọn instance. Mọi cấu kiện cùng kiểu dùng chung một giá trị, như mã vật tư hay nhà sản xuất, thì chọn type.
Bảng so sánh 5 loại parameter
| Built-in | Project | Shared | Family | Global | |
|---|---|---|---|---|---|
| Ai tạo | Revit có sẵn | Người dùng, trong dự án | Người dùng, trong tệp .txt | Người dùng, trong family | Người dùng, trong dự án |
| Lên bảng thống kê | Có | Có | Có | Không | Không trực tiếp |
| Lên nhãn (tag) | Có | Không | Có | Không | Không |
| Dùng chung giữa dự án, family | Có sẵn ở mọi tệp | Không | Có | Không | Không |
| Sửa tên, xoá | Không | Đổi tên, xoá được; không đổi Data Type, Instance/Type | Xoá khỏi dự án được, đổi tên thì không | Có, trong family | Có |
| Có instance/type | Có | Có | Có | Có | Không |
Hai dòng mô tả trong hộp Parameter Properties của Revit 2027 là bằng chứng gọn nhất. Project parameter: "Can appear in schedules but not in tags". Family parameter: "Cannot appear in schedules or tags". Shared parameter: "Can be shared by multiple projects and families, exported to ODBC, and appear in schedules and tags".
Global parameter không gắn với nhóm cấu kiện nào nên không có cột trong bảng thống kê. Muốn thấy giá trị của nó trên bảng, hãy gắn nó vào một tham số của cấu kiện; bảng sẽ hiện tham số đó.
Built-in parameter: tham số có sẵn của Revit
Built-in parameter là tham số Revit tạo sẵn theo từng nhóm cấu kiện: Mark, Comments, Level, Base Constraint, Area, Volume, Length, Type Mark. Người dùng không xoá, không đổi tên được, và chúng có mặt ở mọi dự án. Một số tham số chỉ đọc vì Revit tự tính, như Area, Volume, Length của tường.
Built-in parameter không nằm trong danh sách Manage › Project Parameters. Danh sách đó chỉ có tham số người dùng thêm vào; tệp mẫu Metric Multi-discipline của Revit 2027 có sẵn 14 tham số như Ceiling Height, Finish, Sheet Group.
Trước khi tạo tham số mới, hãy xem Revit đã có sẵn chưa. Lỗi hay gặp là tạo project parameter tên Ghi chú trong khi Comments đã có, rồi bảng thống kê có hai cột làm cùng một việc.
Built-in parameter trong Dynamo và Revit API
Tên hiện trên bảng Properties đổi theo ngôn ngữ giao diện. Mã script dựa vào tên dễ hỏng khi chạy trên máy cài Revit bản tiếng khác. Vì vậy Revit API gọi built-in parameter bằng mã cố định trong BuiltInParameter:
| Tên trên giao diện | BuiltInParameter | ParameterTypeId (Revit 2027) |
|---|---|---|
| Mark | ALL_MODEL_MARK | autodesk.revit.parameter:doorNumber-1.0.0 |
| Comments | ALL_MODEL_INSTANCE_COMMENTS | autodesk.revit.parameter:allModelInstanceComments-1.0.1 |
| Base Constraint (tường) | WALL_BASE_CONSTRAINT | autodesk.revit.parameter:wallBaseConstraint-2.0.0 |
| Volume | HOST_VOLUME_COMPUTED | autodesk.revit.parameter:hostVolumeComputed-1.0.0 |
| Area | HOST_AREA_COMPUTED | autodesk.revit.parameter:hostAreaComputed-1.0.0 |
| Length | CURVE_ELEM_LENGTH | autodesk.revit.parameter:curveElemLength-1.0.1 |
# Python trong Dynamo hoặc pyRevit: đọc Mark và Comments của một cấu kiện
mark = e.get_Parameter(BuiltInParameter.ALL_MODEL_MARK).AsString()
ghi_chu = e.get_Parameter(BuiltInParameter.ALL_MODEL_INSTANCE_COMMENTS).AsString()
Hai điểm dễ nhầm. Thứ nhất, ParameterTypeId của Mark mang tên doorNumber vì lý do lịch sử, dù Mark có ở mọi nhóm cấu kiện. Thứ hai, cột kết cấu có hai tham số cùng tên Base Level: FAMILY_BASE_LEVEL_PARAM và SCHEDULE_BASE_LEVEL_PARAM. Tra theo tên LookupParameter("Base Level") có thể lấy nhầm cái. Gọi theo BuiltInParameter thì không nhầm. Lập trình Revit bài bản có ở khóa Lập trình Revit API và bài Revit API là gì.
Project parameter revit: tham số riêng của dự án
Project parameter thêm một ô thông tin cho một hoặc nhiều nhóm cấu kiện trong một dự án, dùng để lập bảng, lọc và sắp xếp. Theo Autodesk: Create or Modify Project Parameters, các bước như sau:
- Vào Manage › Settings › Project Parameters.
- Bấm nút New Parameter (biểu tượng thứ hai ở đáy hộp).
- Trong hộp Parameter Properties, chọn Project parameter.
- Đặt tên. Autodesk khuyên không dùng dấu gạch ngang (-) trong tên tham số.
- Chọn Discipline, Data Type, nhóm hiển thị (Group parameter under), rồi chọn Type hoặc Instance.
- Tích các nhóm cấu kiện ở cột Categories, bấm OK.
Sau khi tạo, bấm Modify (biểu tượng bút chì) chỉ đổi được tên, nhóm hiển thị và nhóm cấu kiện. Các ô Discipline, Data Type, Type/Instance và lựa chọn Project/Shared đều bị khoá, nên phải chọn đúng ngay lần đầu.
Giới hạn quan trọng nhất: project parameter không lên được nhãn. Nhãn là một family riêng; nó chỉ đọc được tham số mà nó cũng "biết", tức built-in hoặc shared. Project parameter chỉ tồn tại trong dự án nên nhãn không nhận ra. Cần đưa thông tin lên nhãn thì dùng shared parameter ngay từ đầu.
Muốn dùng lại bộ project parameter cho dự án sau, hãy đưa chúng vào tệp mẫu công ty; xem bài template Revit.
Shared parameter: khi cần lên nhãn và dùng chung
Shared parameter có định nghĩa lưu trong một tệp .txt nằm ngoài mọi dự án và family. Mỗi tham số nhận diện bằng một mã GUID. Nhờ vậy nó làm được ba việc mà project parameter không làm được:
- Lên nhãn: nhãn family và dự án cùng đọc một định nghĩa, cùng GUID.
- Thống nhất giữa nhiều dự án, family: cả công ty dùng một tệp .txt thì mọi dự án có cùng tên, cùng kiểu dữ liệu.
- Lập bảng gom nhiều nhóm cấu kiện (Multi-Category), xuất ODBC.
Cái giá: tên và kiểu dữ liệu không đổi được sau khi tạo, và tệp .txt phải được quản lý cẩn thận. Toàn bộ quy trình tạo tệp, gán vào dự án, lập bảng, gắn nhãn, cùng lỗi chữ tiếng Việt hiện ô vuông, có trong bài shared parameter trong Revit.
Family parameter revit: tham số bên trong family
Family parameter tạo trong Family Editor, điều khiển hình dạng và vật liệu của family: bề rộng b, chiều cao h của cột, chiều rộng cánh cửa. Mở bằng nút Family Types trên panel Properties của thẻ Create.
Nạp family vào dự án thì family parameter hiện trong Properties hoặc Type Properties và sửa được giá trị. Nhưng nó không lên bảng thống kê và nhãn. Danh sách trường lập bảng của cột kết cấu trong Revit 2027 không có b và h. Cần thống kê kích thước cột thì tạo b, h dạng shared parameter ngay trong family.
Trong family còn có reporting parameter: tham số đọc giá trị từ hình học, như khoảng cách giữa hai mặt phẳng, để dùng trong công thức. Cách dựng family có tham số, công thức và mặt phẳng tham chiếu có trong bài cách tạo family trong Revit.
Global parameter revit: một giá trị điều khiển nhiều cấu kiện
Global parameter tạo trong dự án, không thuộc nhóm cấu kiện nào, và không có instance hay type. Theo Autodesk: Global Parameters, nó dùng để điều khiển nhiều tham số cùng lúc: khoảng cách lưới trục, khoảng lùi cố định, vật liệu chung, hoặc gán làm nhãn cho đường kích thước.
Ví dụ: tạo global parameter Cot_b = 300 và gắn vào tham số b của kiểu cột 300×450.
- Vào Manage › Settings › Global Parameters, bấm New Global Parameter, đặt tên Cot_b, Data Type là Length, nhập giá trị 300.
- Chọn cột, bấm Edit Type.
- Ở dòng b, bấm nút = ở cuối dòng (Associate Global Parameter), chọn Cot_b, bấm OK.
Đổi Cot_b thành 350 thì b của mọi cột kiểu đó thành 350, thể tích một cột cao 3,6 m tăng lên 0,35 × 0,45 × 3,6 = 0,567 m³.
Không phải tham số nào cũng gắn được. Autodesk ghi chỉ một số tham số hệ thống được phép. Trong Revit 2027, tường chỉ cho gắn Base Offset, còn Unconnected Height thì không. Cột kết cấu cho gắn Base Offset, Top Offset và tham số kiểu b, h.
Khi nào dùng loại nào?
Ba tình huống hay gặp:
- Đánh mã cấu kiện để hiện trên nhãn và bảng: shared parameter, instance.
- Ghi chú nội bộ chỉ để lọc, sắp xếp trong một dự án: project parameter.
- Mọi cột tầng điển hình cùng một kích thước, sau này có thể đổi: global parameter gắn vào tham số kiểu của cột.
Lỗi thường gặp
| Hiện tượng | Nguyên nhân | Cách xử lý |
|---|---|---|
| Tham số không có trong Edit Label của nhãn | Tham số là project hoặc family parameter | Tạo lại dạng shared parameter |
| Không tìm thấy b, h của cột khi lập bảng | b, h là family parameter | Sửa family, đổi b, h sang shared parameter |
| Bảng có hai cột cùng ý nghĩa | Tạo tham số mới trùng tham số built-in, như Ghi chú với Comments | Dùng tham số built-in, xoá tham số thừa |
| Script Dynamo chạy máy này được, máy khác lỗi | Tra tham số theo tên hiển thị, tên đổi theo ngôn ngữ | Gọi bằng BuiltInParameter |
| Không gắn được global parameter | Tham số hệ thống không cho gắn, hoặc khác kiểu dữ liệu | Chọn tham số khác, hoặc tạo global parameter đúng Data Type |
| Ô tham số xám, không sửa được | Tham số đang gắn global parameter, hoặc do Revit tự tính | Sửa giá trị global parameter, hoặc bỏ gắn bằng nút = |
Câu hỏi thường gặp
Project parameter và shared parameter khác nhau thế nào?
Cả hai đều thêm ô thông tin cho cấu kiện và đều lên bảng thống kê. Shared parameter lưu định nghĩa trong tệp .txt có GUID nên lên được nhãn và dùng chung cho nhiều dự án. Project parameter chỉ sống trong một dự án và không lên nhãn.
Đổi project parameter thành shared parameter được không?
Không đổi trực tiếp được: trong hộp Modify, lựa chọn Project/Shared bị khoá. Tạo shared parameter mới, chuyển giá trị sang, rồi xoá project parameter cũ. Dữ liệu nhiều thì dùng Dynamo để chép giá trị.
Global parameter có xuất hiện trong bảng thống kê không?
Không trực tiếp. Bảng chỉ hiện tham số của cấu kiện. Gắn global parameter vào một tham số của cấu kiện, rồi đưa tham số đó vào bảng.
Có xem được tên BuiltInParameter của một tham số không cần lập trình không?
Dùng add-in như RevitLookup để xem. Danh sách add-in miễn phí có ở bài add-in Revit.
Tóm lại, các loại parameter trong Revit gồm Built-in có sẵn, Project cho một dự án, Shared cho nhãn và dùng chung, Family cho hình dạng bên trong family, Global để một giá trị điều khiển nhiều cấu kiện. Trước khi tạo tham số mới, hãy hỏi: Revit có sẵn chưa, có cần lên nhãn không, có dùng cho dự án khác không.