Tham chiếu nút
Menu + trên tab Phần tử được tổ chức thành các nhóm. Click +, chọn nhóm, rồi chọn loại nút để thêm vào danh sách. Click hàng nút bất kỳ để mở rộng các trường đối số.
| Nhóm | Nút | Kết quả |
|---|---|---|
| Segment | line, arc, ellipseArc, spline | Đường hở — dùng trong loop.segments hoặc làm path cho form |
| Shape | rectangle, circle, ellipse, polygon, slot, loop | Profile kín — dùng trong trường profile của form |
| Form | extrusion, blend, revolution, sweep, sweptBlend, opening | Khối 3D solid và void |
| Curve | modelCurve, symbolicCurve | Đường thấy được (không phải solid) |
| Array | linearArray, radialArray | Bản sao của nút theo đường thẳng hoặc vòng tròn |
| Transform | move, rotate, scale, mirror, copy | Hình học được di chuyển hoặc nhân đôi |
| Datum | referencePlane | Reference plane có tên tường minh |
| Material | material | Vật liệu Revit với màu sắc và độ trong |
| Text | modelText | Chữ 3D |
| Annotation | textNote, filledRegion, detailCurve, control, image | Phần tử 2D chỉ trong view |
| MEP | connector | MEP connector trên form |
| Adaptive | adaptivePoint, adaptiveLoftForm, curveByPoints | Điểm và loft adaptive |
| Family | nestedFamily | Phiên bản .rfa lồng nhau |
Segment — đường hở
Nút Segment tạo ra đường hở. Dùng theo hai cách:
- Làm segments trong nút
loopđể tạo profile kín tự do. - Làm
pathcủa formsweephoặcsweptBlend.
line
Đường thẳng giữa hai điểm.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| start | Point2D (mm) | Điểm đầu [U, V] |
| end | Point2D (mm) | Điểm cuối [U, V] |
arc (3 điểm)
Cung tròn qua ba điểm: đầu → giữa → cuối.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| start | Point2D (mm) | Điểm đầu |
| mid | Point2D (mm) | Điểm bất kỳ trên cung (giữa start và end) |
| end | Point2D (mm) | Điểm cuối |
ellipseArc
Cung ellipse xác định bởi tâm, hai bán trục và góc quét.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| center | Point2D (mm) | Tâm ellipse |
| radiusX | Coord (mm) | Bán trục theo U |
| radiusY | Coord (mm) | Bán trục theo V |
| startAngle | Coord (rad) | Góc bắt đầu |
| endAngle | Coord (rad) | Góc kết thúc |
spline
Đường cong trơn đi qua danh sách điểm theo thứ tự.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| points | Point2D[] (mm) | Từ 2 điểm trở lên |
Dùng nút + điểm và × trong hàng mở rộng để thêm/xóa điểm.
Shape — profile kín
Nút Shape tạo vòng khép kín. Đây là loại dùng phổ biến nhất cho trường profile của form.
rectangle
| Trường | Đơn vị | Mô tả |
|---|---|---|
| width | Coord (mm) | Chiều rộng tổng |
| height | Coord (mm) | Chiều cao tổng |
| center | Point2D (mm) | Vị trí tâm; mặc định [0, 0] |
| cornerRadius | Coord (mm) | Làm tròn 4 góc; mặc định 0; phải < min(width/2, height/2) nếu không sẽ bị bỏ qua |
circle
| Trường | Đơn vị | Mô tả |
|---|---|---|
| radius | Coord (mm) | Bán kính |
| center | Point2D (mm) | Vị trí tâm; mặc định [0, 0] |
ellipse
| Trường | Đơn vị | Mô tả |
|---|---|---|
| radiusX | Coord (mm) | Bán trục theo U |
| radiusY | Coord (mm) | Bán trục theo V |
| center | Point2D (mm) | Vị trí tâm; mặc định [0, 0] |
Giới hạn: Revit không thể gắn dimension cho bán trục ellipse, nên profile ellipse không flex khi bán trục tham chiếu tham số. Dùng
rectangle,circle, hoặcloopkhi cần kích thước profile linh hoạt.
polygon
Đa giác đều.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| sides | Coord (số nguyên) | Số cạnh: 3 = tam giác, 6 = lục giác... |
| radius | Coord (mm) | Bán kính ngoại tiếp (tâm đến đỉnh) |
| center | Point2D (mm) | Vị trí tâm; mặc định [0, 0] |
slot
Hình viên đạn — hai đường thẳng song song kép với hai nửa vòng tròn.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| length | Coord (mm) | Tổng chiều dài ngoài (cạnh đến cạnh); phần thẳng = length − 2×radius |
| radius | Coord (mm) | Bán kính phần cong hai đầu |
| center | Point2D (mm) | Vị trí tâm; mặc định [0, 0] |
loop
Profile kín tự do ghép từ các nút segment theo thứ tự.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| segments | segment key[] | Danh sách key theo thứ tự của line / arc / ellipseArc / spline |
Điểm cuối của mỗi segment phải khớp với điểm đầu của segment tiếp theo để tạo chuỗi khép kín.
Form — khối 3D solid và void
Form xây dựng hình học 3D. Mọi form đều nhận các cài đặt chung sau:
- Solid / Void (
isSolid) — nút toggle trong hàng nút; void sẽ cắt solid chồng lên nó. - Vật liệu — chọn nút
materialtrong graph. Nút material được xử lý trong pre-pass và có thể xuất hiện bất kỳ đâu trong danh sách. - Subcategory — gán form vào Revit subcategory (cho graphics override). Trong JSON:
"meta": { "subcategory": "Panel" }. - Hiển thị — bật/tắt theo mức độ chi tiết: Coarse / Medium / Fine. Trong JSON:
"meta": { "visibility": { "coarse": false, "medium": true, "fine": true } }.
Xem hướng dẫn chi tiết từng form tại Các loại form.
extrusion
Đẩy profile theo trục Z.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| profile | shape key[] | Profile kín: đầu tiên = biên ngoài, các key tiếp = lỗ (bất kỳ shape kín: loop/rectangle/circle/…) |
| depth | Coord (mm) | Chiều sâu đùn |
| startOffset | Coord (mm) | Offset từ mặt phẳng vẽ; mặc định 0 |
| isSolid | bool | true (solid) hoặc false (void); mặc định true |
blend
Loft giữa profile đáy và profile đỉnh.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| bottomProfile | shape key[] | Mảng shape key — chỉ key đầu tiên được dùng (blend không hỗ trợ lỗ) |
| topProfile | shape key[] | Mảng shape key — chỉ key đầu tiên được dùng (blend không hỗ trợ lỗ) |
| depth | Coord (mm) | Khoảng cách từ đáy đến đỉnh |
| bottomOffset | Coord (mm) | Offset của đáy từ mặt phẳng vẽ; mặc định 0 |
| isSolid | bool | mặc định true |
revolution
Xoay profile quanh một trục.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| profile | shape key[] | Tiết diện cần xoay — bất kỳ shape kín, phải nằm một phía của trục |
| axisStart | Point2D (mm) | Điểm đầu trục quay |
| axisEnd | Point2D (mm) | Điểm cuối trục quay |
| startAngle | Coord (rad) | Góc bắt đầu; mặc định 0 |
| endAngle | Coord (rad) | Góc kết thúc; mặc định 2π |
| isSolid | bool | mặc định true |
sweep
Đẩy profile không đổi theo đường path.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| path | segment/loop key | Segment hoặc loop làm đường dẫn (tất cả segment của loop được dùng theo thứ tự) |
| profile | shape key[] | Tiết diện cần đẩy (bất kỳ shape kín) |
| isSolid | bool | mặc định true |
sweptBlend
Theo đường path và biến đổi giữa hai profile.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| path | segment/loop key | Một đường path — segment node hoặc loop (chỉ segment đầu tiên của loop được dùng) |
| bottomProfile | shape key[] | Profile tại điểm đầu path (bất kỳ shape kín; multi-loop: biên ngoài + lỗ) |
| topProfile | shape key[] | Profile tại điểm cuối path (bất kỳ shape kín; multi-loop: biên ngoài + lỗ) |
| isSolid | bool | mặc định true |
opening
Khoét lỗ qua một form host cụ thể.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| host | form key | Form solid cần khoét qua |
| profile | shape key[] | Hình dạng lỗ — chỉ shape đầu tiên trong list được dùng |
Giới hạn: opening chỉ nhận một loop ngoài — không hỗ trợ lỗ có lỗ con. Dùng void
extrusioncho trường hợp đó.
Curve — đường thấy được
Nút Curve tạo đường hiển thị trong Revit, không phải solid.
modelCurve
Đường model 3D thấy được trong mọi view.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| curve | segment key | Một segment đường hở: line, arc, ellipseArc, hoặc spline (không hỗ trợ loop hoặc shape kín) |
Gán Line Style trong settings panel để kiểm soát kiểu đường. Trong JSON: "meta": { "lineStyle": "<tên style>" }.
symbolicCurve
Đường symbolic 2D chỉ thấy trong view mặt bằng và mặt cắt.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| curve | segment key | Một segment đường hở: line, arc, ellipseArc, hoặc spline (không hỗ trợ loop hoặc shape kín) |
JSON kiểu đường: "meta": { "lineStyle": "<tên style>" }.
Array
Nút Array lặp lại một nút nguồn. Số lượng và khoảng cách được bake lúc generate — không flex khi tham số thay đổi trong Revit.
linearArray
Sao chép nút theo đường thẳng.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| source | node key | Nút cần lặp |
| count | Coord (số nguyên) | Tổng số bản sao kể cả bản gốc |
| offset | Point2D (mm) | Offset mỗi bản sao [U, V] |
radialArray
Sao chép nút theo vòng tròn.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| source | node key | Nút cần lặp |
| count | Coord (số nguyên) | Số bản sao |
| center | Point2D (mm) | Tâm vòng tròn |
| totalAngle | Coord (rad) | Góc quét tổng (2π = vòng tròn đầy đủ) |
Thứ tự khai báo — Array và Transform
Array và Transform thao tác trên hình học đã được tạo trong Revit. Node source phải xuất hiện trước trong mảng nodes — nếu source chưa được tạo khi array/transform được xử lý, nó bị bỏ qua hoàn toàn mà không có lỗi. Validator không kiểm tra điều này; đây là ràng buộc thứ tự ở runtime.
Ngoại lệ (không cần thứ tự): material và adaptivePoint được xử lý trong pass riêng trước mọi geometry, nên có thể đặt ở bất kỳ đâu trong list. Shape và curve (rectangle, circle, loop, arc…) được resolve bằng key từ JSON nên cũng không cần thứ tự so với form.
Quy ước: khai báo shape và form trước, sau đó mới đến array và transform tham chiếu chúng.
Transform
Nút Transform di chuyển hình học. Hành vi khác nhau theo loại:
copyvàmirror— nút nguồn được giữ lại và tạo thêm bản sao.move,rotate, vàscale— nút nguồn được thay thế tại chỗ (Revit di chuyển/xoay/scale phần tử gốc; không tạo bản sao thêm).
mirror
| Trường | Đơn vị | Mô tả |
|---|---|---|
| source | node key | Nút cần lật |
| axis | x hoặc y | Lật qua trục X hoặc Y của model |
move
| Trường | Đơn vị | Mô tả |
|---|---|---|
| source | node key | Nút cần di chuyển |
| offset | Point3D (mm) | Dịch chuyển [X, Y, Z] |
rotate
| Trường | Đơn vị | Mô tả |
|---|---|---|
| source | node key | Nút cần xoay |
| axis | x, y, hoặc z | Trục quay qua gốc tọa độ |
| angle | Coord (rad) | Góc quay |
copy
| Trường | Đơn vị | Mô tả |
|---|---|---|
| source | node key | Nút cần sao chép |
| offset | Point3D (mm) | Dịch chuyển [X, Y, Z] |
scale
| Trường | Đơn vị | Mô tả |
|---|---|---|
| source | node key | Nút cần scale |
| factor | Coord | Hệ số scale (1 = không đổi) |
| origin | Point3D (mm) | Điểm gốc scale; mặc định [0, 0, 0] |
Datum
referencePlane
Reference plane có tên tường minh. Molding tự tạo reference plane cho mọi tọa độ có tham số — chỉ cần tạo thủ công khi muốn reference plane này thấy được và có tên trong Family Editor.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| name | string | Tên hiển thị trong Family Editor |
| axis | x hoặc y | Mặt phẳng vuông góc với trục này |
| offset | Coord (mm) | Khoảng cách từ gốc tọa độ theo trục |
Material
material
Khai báo vật liệu Revit. Material được xử lý trong pass riêng trước tất cả geometry, nên vị trí trong mảng nodes không quan trọng — có thể đặt trước hoặc sau form tham chiếu đến nó.
Để áp dụng: trong hàng form, mở node settings và chọn vật liệu từ dropdown Vật liệu. Trong JSON, dùng modifier applyMaterial trên node form.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| name | string | Tên vật liệu Revit (phải khớp với vật liệu trong dự án Revit) |
| color | [R, G, B] | Màu xem trước, RGB 0–255 |
| transparency | number | Độ trong 0–100 |
Text
modelText
Chữ 3D dạng solid. Không có xem trước trong viewport web — chỉ xuất hiện trong .rfa được tạo ra.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| text | string | Nội dung chữ |
| position | Point2D (mm) | Điểm đặt |
| depth | Coord (mm) | Độ sâu đùn của chữ |
Đặt Label (meta.label) để đặt tên cho element trong cây element của Revit.
Annotation — 2D, chỉ trong view
Nút Annotation tạo phần tử 2D đặc thù theo view. Chúng chỉ thấy trong view mặt bằng/mặt cắt của Revit, không có xem trước 3D.
textNote
| Trường | Đơn vị | Mô tả |
|---|---|---|
| text | string | Nội dung chữ |
| position | Point2D (mm) | Điểm đặt |
filledRegion
Vùng tô hatching.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| profile | shape key[] | Biên ngoài và lỗ (tùy chọn) — bất kỳ key shape kín nào (loop, rectangle, circle, ellipse, polygon, slot) |
detailCurve
Đường detail 2D.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| curve | segment key | Một segment đường hở: line, arc, ellipseArc, hoặc spline (không hỗ trợ loop hoặc shape kín) |
Gán Line Style trong panel cài đặt nút để kiểm soát giao diện. Trong JSON: "meta": { "lineStyle": "<tên style>" }.
control
Mũi tên flip/rotate cho family.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| shape | string | horizontal, vertical, doubleHorizontal, hoặc doubleVertical |
| position | Point2D (mm) | Điểm đặt |
image
Ảnh raster đặt trong view 2D đầu tiên.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| path | đường dẫn file | Đường dẫn tuyệt đối đến file ảnh (.png / .jpg) trên máy chạy Revit |
| position | Point2D (mm) | Điểm đặt |
MEP
connector
MEP connector gắn vào mặt form. Family phải thuộc danh mục MEP (Electrical Fixtures, Mechanical Equipment, Plumbing Fixtures...).
| Trường | Đơn vị | Mô tả |
|---|---|---|
| kind | string | electrical, pipe, duct, conduit, hoặc cableTray |
| host | form key | Form solid connector gắn vào |
Connector được đặt trên mặt phẳng đầu tiên của host form.
Adaptive
Nút Adaptive yêu cầu adaptive family template (ví dụ metric-generic-model-adaptive). Chúng cho phép family snap vào các điểm người dùng click khi đặt trong model Revit.
adaptivePoint
Điểm click khi đặt family. Các điểm được kích hoạt theo thứ tự xuất hiện trong danh sách Phần tử (nút đầu tiên = click đầu tiên).
| Trường | Đơn vị | Mô tả |
|---|---|---|
| position | Point3D (mm) | Vị trí mặc định [X, Y, Z] |
adaptiveLoftForm
Khối loft qua các profile adaptive point.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| profiles | [[key]…] | Mảng ngoài = chuỗi profile; mảng trong = key adaptive point theo thứ tự trong một tiết diện |
| isSolid | bool | mặc định true |
Một profile → mặt đỉnh. Hai profile trở lên → loft.
curveByPoints
Đường tham chiếu qua các adaptive point.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| points | adaptivePoint key[] | Danh sách theo thứ tự (tối thiểu 2) |
Family
nestedFamily
Đặt một phiên bản .rfa lồng bên trong family này.
| Trường | Đơn vị | Mô tả |
|---|---|---|
| path | đường dẫn file | Đường dẫn tuyệt đối đến file .rfa trên máy chạy Revit |
| position | Point2D (mm) | Điểm đặt [U, V] |
| symbol | string | Tên family type cần đặt; mặc định = type đầu tiên |
| rotation | Coord (rad) | Góc xoay quanh Z tại điểm đặt |
| parameterLinks | map | { nestedParam: hostParamKey } — điều khiển tham số instance lồng từ tham số family này |
Dùng trình soạn thảo Parameter Links xuất hiện trong hàng nút mở rộng để nối tham số.