Molding
🌐 Tiếng Việt

Tham số & tọa độ

Đây là ý tưởng cốt lõi của Molding. Khi chọn một phần tử trên tab Phần tử, mỗi trường vị trí / kích thước / độ sâu / bán kính / góc đều hiển thị hai nút nhỏ — VP. Toggle đó toàn bộ khái niệm tọa độ:

Mỗi trường là V hoặc P

  • V (giá trị) — một số cố định bạn gõ, mm cho độ dài hoặc radian cho góc: 45, 0, 1.5708.
  • P (tham số) — trường theo một tham số bạn chọn từ dropdown, thay đổi khi tham số đó thay đổi. Nút bên cạnh phủ âm tham số (gương qua gốc tọa độ), vd HalfWidth-HalfWidth.

Đó là toàn bộ ngữ pháp: một trường chỉ là số cố định hoặc một tham số (tùy chọn phủ âm). Có một thứ bạn sẽ tìm mà không thấy:

Không có chỗ để gõ công thức vào trường hình học. Trường chỉ có thể là V (số) hoặc P (một tham số). Mọi phép tính đều đưa vào tham số.

Toán học sống ở đâu: công thức tham số

Để căn giữa hình chữ nhật theo chiều cao, bạn không tính Height / 2 ngay tại trường. Bạn thêm tham số tính nó, rồi trỏ P của trường vào đó:

Tham số  HalfHeight   công thức:  Height / 2     (tab Tham số)
Rectangle  center Y:  P -> HalfHeight              (tab Phần tử)

Tại sao tách như vậy? Vì nó giữ mọi trường đơn giản và giống hệt nhau trong preview trình duyệt và Revit runner — cả hai chỉ hỏi "đây là số, hay tham số cần tra cứu?". Phép tính nằm ở đúng một chỗ (công thức tham số), và bộ giải của Revit sở hữu nó.

Cánh cửa, dưới dạng tham số và trường

Đây là family bạn đã xây trong Bắt đầu, viết ra:

Tab Tham số
  Width       độ dài   mặc định 900     Phiên bản
  Height      độ dài   mặc định 2100    Phiên bản
  Thickness   độ dài   mặc định 45
  HalfHeight  độ dài   công thức  Height / 2

Tab Phần tử
  Rectangle
    width   = P -> Width
    height  = P -> Height
    center  = [ V 0 , P -> HalfHeight ]
  Extrusion
    profile = [x] Rectangle
    depth   = P -> Thickness

Toán tử công thức

LoạiToán tử
Số học+ - * / % ** ^ (cả hai đều là lũy thừa)
So sánh== != < > <= >=
Điều kiệncond ? a : b

&& || ! không được hỗ trợ (Revit không có toán tử này) — dùng điều kiện, vd count > 1 ? Spacing : 0.

Width / 2                         // chia đôi
Height * 0.5                      // tỉ lệ
hasGlass ? GlassThickness : 0     // phần tùy chọn
Math.max(600, Width)              // giới hạn tối thiểu
Math.sin(Angle) * Reach           // lượng giác (Angle tính bằng radian)

Loại tham số

LoạiĐơn vị / ý nghĩa
lengthmm
numbersố thực không có đơn vị
integersố nguyên (vd đếm)
angleradian
booleancó / không (literal true/false, không có công thức)
textchuỗi nhãn (literal, không có công thức)
multilineTextchuỗi nhiều dòng (literal, không có công thức)
materialtên vật liệu Revit (literal, không có công thức)
urlchuỗi URL (literal, không có công thức)
areamm²
volumemm³
forceN
masskg
sloperise/run
speedm/s
currencygiá trị tiền tệ

Phiên bản vs loại, và nhóm

  • Tham số phiên bản — có thể chỉnh trên từng bản đặt trong model.
  • Tham số loại — cài đặt theo loại family, chung cho mọi phiên bản của loại đó.
  • nhóm — phần nào trong bảng Properties của Revit: kích thước, ràng buộc, vật liệu
  • Checkbox Dùng chung — đánh dấu tham số là shared parameter trong Revit để xuất hiện trong schedule đa danh mục và tái dùng giữa các family. Hầu hết tham số không cần bật tính năng này.

Tùy chọn hiển thị tham số

Trong panel settings của tham số (mở rộng tham số) có bốn trường tùy chọn:

  • Label — tên hiển thị trong bảng Properties của Revit (mặc định dùng key nếu để trống).
  • min / max — giới hạn giá trị trong UI của Revit để người dùng không nhập ngoài khoảng cho phép.
  • step — mỗi lần click mũi tên tăng/giảm sẽ thay đổi giá trị thêm/bớt đúng bằng step.

Các giá trị này được lưu dưới dạng meta.label, meta.min, meta.max, meta.step trong JSON.

Lưu ý

  • Độ dài là mm; góc là radian. Để dùng độ, tạo tham số với công thức như Angle * Math.PI / 180 rồi trỏ trường vào đó.
  • Trường P còn ở (chọn tham số) sẽ không có giá trị — chọn một cái, hoặc chuyển sang V.
  • Để gương, dùng nút trên trường P, không dùng công thức như HalfWidth * -1.
  • Key tham số phải duy nhất trong family; đổi tên key sẽ cập nhật mọi trường trỏ vào đó.
  • Các tên Math, Number, Boolean, isNaN, parseFloat, và parseInt là từ dành riêng — đây là các hàm tích hợp trong công thức và không thể dùng làm key tham số hoặc node.

Tiếp theo: xem mọi phần tử có thể thêm trong Tham chiếu nút.

📖 4 min read