Với Dynamic Components của SketchUp, việc đầu tiên là làm việc với các thuộc tính (Attribute) của component. Thuộc tính đối tượng, hiểu đơn giản là bạn muốn tác động vào thuộc tính nào của đối tượng: ví dụ điều khiển kích thước, điều khiển vị trí, điều khiển góc xoay, điều khiển vật liệu … hoặc đơn giản là gắn một thông số để tất cả component có thể dùng chung. Bài học này sẽ tổng quan các thuộc tính, và nếu đọc chưa hiểu thì bạn cứ bỏ qua cũng không sao. Mục tiêu của bài chỉ là để bạn nhớ rằng bạn cần biết mình muốn điều khiển thuộc tính nào của Component. Một điều hầu hết hướng dẫn bỏ qua: việc tạo và chỉnh sửa Dynamic Components (sửa các thuộc tính trong bảng Component Attributes) là tính năng chỉ có ở SketchUp Pro — SketchUp for Web (Free, Go hay bất kỳ gói chạy trên trình duyệt nào) hoàn toàn không chạy được extension Dynamic Components, nên không thể tương tác hay chỉnh sửa một Dynamic Component đã làm xong; vì vậy bài học này giả định bạn dùng SketchUp Pro 2022 trở lên.

Bảng Component Attributes hoạt động thế nào
Để mở bảng trong SketchUp Pro, vào Window > Component Attributes. Chọn một component bất kỳ trong model và bảng sẽ hiện mọi thuộc tính mà component đó đã định nghĩa. Bấm nút + ở dưới cùng để thêm thuộc tính mới. Mỗi thuộc tính gồm ba phần: tên (thứ bạn gõ trong công thức), giá trị hoặc công thức, và một nhãn tùy chọn (thứ hiển thị trong Component Options cho người dùng cuối).
Các thuộc tính bạn định nghĩa trở thành biến. Thuộc tính của một component con có thể tham chiếu thuộc tính của component cha bằng cách thêm tên cha làm tiền tố: ParentComponent!LenX. Cơ chế tham chiếu cha-con này là cốt lõi giúp dynamic component trong SketchUp tự co giãn các component con khi component cha đổi kích thước. Không hiểu điều này thì công thức sẽ không chạy như mong đợi.
- Tên thuộc tính phân biệt chữ hoa chữ thường.
lenxvàLenXlà hai tên khác nhau. - Các tên dành riêng có sẵn (LenX, PosX, RotX, …) kết nối trực tiếp với hình học của SketchUp.
- Thuộc tính tự đặt (ví dụ
WallThickness) do người dùng định nghĩa và không có tác dụng gì trừ khi được tham chiếu trong một công thức.
Thuộc tính kích thước trong Dynamic Components SketchUp: giải thích LenX, LenY, LenZ
Size Attributes (thuộc tính kích thước) là nhóm được dùng nhiều nhất, dùng để xác định kích thước của một Component. Tên thuộc tính thật bạn gõ vào công thức là LenX, LenY và LenZ (chiều dài theo hướng đỏ, xanh lá và xanh dương) — không phải “SizeX/SizeY/SizeZ”. SketchUp chỉ gắn nhãn “Size” trên giao diện, nên nếu viết SizeX trong công thức thì công thức sẽ lỗi mà không báo gì. Bạn nên thiết lập các thuộc tính Size này trước thì các thuộc tính sau sẽ dễ hơn.
SketchUp đo LenX, LenY, LenZ theo trục cục bộ của component, không phải trục của model. Nếu bạn xoay component 90° trước khi biến nó thành dynamic component, trục X cục bộ có thể trỏ về hướng Y của model. Hãy luôn kiểm tra hướng trục của component bằng Right-click > Change Axes trước khi viết công thức kích thước.
- LenX — chiều dài theo trục đỏ (X cục bộ).
- LenY — chiều dài theo trục xanh lá (Y cục bộ).
- LenZ — chiều cao theo trục xanh dương (Z cục bộ).
Để component con co giãn theo component cha, đặt công thức LenX của con là =ParentName!LenX. Hình học của con sẽ giãn ra mỗi lần bạn đổi kích thước component cha. Đây là nền tảng của việc thiết kế nội thất và tủ tham số bằng SketchUp Dynamic Components.


Thuộc tính vị trí: PosX, PosY, PosZ
Position Attributes điều khiển tọa độ X, Y và Z của một Dynamic Component bên trong component cha. Đây là thuộc tính quan trọng thứ hai sau thuộc tính Size.
Vị trí được đo theo trục cục bộ của component cha, tính từ gốc của component cha. Đặt PosX=0 sẽ ghim gốc của con vào gốc của cha theo trục X. Công thức như =ParentName!LenX - LenX cho PosX giữ component con luôn sát mép phải của component cha dù cha được đổi kích thước thế nào — hữu ích cho các tấm có bề rộng cố định trong một cái tủ.
- PosX / PosY / PosZ — độ lệch vị trí so với gốc của cha, theo tọa độ cục bộ của cha.
- Kết hợp với các công thức LenX/LenY/LenZ để dựng các cụm lắp ráp ràng buộc hoàn toàn và tự điều chỉnh.
- Nếu PosX để trống, SketchUp dùng vị trí hình học hiện tại của component và không đặt lại vị trí khi đổi kích thước.

Thuộc tính xoay: RotX, RotY, RotZ
Rotation Attributes (RotX, RotY, RotZ) thiết lập góc xoay của một Dynamic Component — thuộc tính này ít được dùng, thỉnh thoảng chỉ dùng khi tạo cửa mở. Nó cũng gồm 3 chiều với tên RotX, RotY, RotZ, mỗi chiều đo bằng độ.
Cách dùng thực tế nhất là tạo hoạt cảnh mở cửa bằng công cụ Interact. Đặt Onclick (xem phần Behaviors bên dưới) để chuyển RotZ qua lại giữa 0 và 90. SketchUp sẽ chạy hoạt cảnh chuyển trạng thái khi người dùng bấm vào component. Lưu ý rằng phép xoay quay quanh gốc của chính component đó — hãy đặt gốc tại điểm bản lề trước khi chuyển hình học thành component, nếu không cánh cửa sẽ xoay quanh sai tâm.
- Giá trị tính bằng độ.
RotZ=90xoay 90° ngược chiều kim đồng hồ quanh trục xanh dương. - Giá trị âm xoay theo chiều kim đồng hồ.
- Dùng
IF()trong công thức Onclick để chuyển qua lại giữa hai trạng thái.

Thuộc tính Behaviors
Nhóm thuộc tính Behaviors được dùng khá nhiều, tác động trực tiếp đến đối tượng Component. 3dshouse sẽ giải thích từng thuộc tính cụ thể bên dưới kèm ví dụ.
- Material: Thiết lập vật liệu cho Component.
- ScaleTool: Giảm số điểm neo của công cụ Scale (dùng thường xuyên)
- Hidden: Ẩn Component hiện tại — giá trị 1 là ẩn, 0 là hiện (dùng thường xuyên)
- Onclick: Để dùng tính năng Interact Component
- Copies: Nhân bản Component
Một mẹo hầu hết bài viết bỏ qua: bên cạnh “Copies” còn có một biến ẩn, chỉ đọc, tên “Copy” (số ít). Trong công thức, nó chứa chỉ số của từng bản sao — 0 cho bản gốc, 1 cho bản sao đầu tiên, v.v. — nên một công thức như =Copy*30 tự động giãn cách mọi bản sao và biến một component đơn thành một dãy (cọc hàng rào, bậc cầu thang, các hàng kệ) mà không cần thêm hình học.
Bảng giá trị ScaleTool
ScaleTool nhận một số từ 0 đến 255. Mỗi bit trong số đó điều khiển một tay nắm. Các giá trị thường gặp:
- 0 — không có tay nắm scale (khóa hoàn toàn hình học).
- 4 — chỉ scale theo hướng Z (phù hợp cột muốn cao thêm nhưng không rộng thêm).
- 255 — hiện mọi tay nắm (hành vi mặc định của SketchUp).
Đặt ScaleTool trên component cha không tự động hạn chế các component con — mỗi component con cần khóa phải có thuộc tính ScaleTool riêng.


Thuộc tính Component Info
Component Info chỉ hiển thị thêm thông tin trong bảng Component Options, không ảnh hưởng đến bản thân Component, nên tóm lại bạn có thể bỏ qua tính năng này. 3dshouse cũng chỉ dùng tính năng này để đặt đường liên kết từ Model đến bài viết trên web. Để đặt liên kết, bạn cũng cần biết một chút về mã HTML.
- Name: Tên hiển thị của Component trong cửa sổ Component Options; nếu không thiết lập, SketchUp tự lấy tên hiện tại của Component.
- Summary: Tóm tắt thông tin Component, có thể dùng mã HTML; ở ví dụ bên dưới dùng mã HTML để tạo liên kết tới bài viết trên website.
- Description: Mô tả chi tiết component, có thể dùng mã HTML.
- ItemCode: Mã của component, dùng để phân loại component trong dự án lớn.
Lưu ý bảo mật: vì Summary, Description và trường ImageURL bên dưới hiển thị HTML thật trong hộp thoại Component Options, chỉ nên mở Dynamic Components từ nguồn bạn tin cậy. Hãy giữ các trường này ở mức liên kết và chữ thuần.


Thuộc tính Form Design
Form Design chỉ là phần bố cục của bảng Component Options chứ không phải của bản thân Component, nên bạn có thể bỏ qua; tính năng này không giúp ích nhiều. Các chuyên gia 3dshouse dùng Dynamic Components cũng không dùng tính năng này vì nó không ảnh hưởng đến model, chỉ khiến giao diện trông khác đi.
- ImageURL: Thay vì để phần mềm tự tạo ảnh đại diện cho Component, ta có thể lấy ảnh GIF, JPG hoặc PNG từ một website.
- DialogWidth: Chiều rộng của cửa sổ Component Options.
- DialogHeight: Chiều cao của cửa sổ Component Options.


Thuộc tính tự đặt và công thức
Ngoài các tên dành riêng có sẵn, bạn có thể tạo thuộc tính tùy chỉnh cho dynamic components — bất kỳ tên nào không trùng với tên dành riêng. Thuộc tính tùy chỉnh đóng vai trò là biến bạn định nghĩa một lần và tham chiếu ở mọi nơi.
Mẫu thường dùng cho nội thất tham số: định nghĩa một thuộc tính ở cấp gốc MaterialThickness = 18 (milimét) trên component cha, rồi đặt công thức LenZ của mọi tấm con là =ParentName!MaterialThickness. Đổi một con số ở trên cùng thì độ dày mọi tấm đều cập nhật. Không cần sửa từng component con.
- Cú pháp công thức: bắt đầu bằng
=rồi đến một biểu thức toán hoặc lời gọi hàm. - Các hàm được hỗ trợ:
IF(),AND(),OR(),SQRT(),ABS(),MIN(),MAX()và nhiều hàm khác — danh sách đầy đủ tương ứng với các hàm kiểu Excel. - Giá trị chuỗi (tên vật liệu, nhãn) không bắt đầu bằng
=, chúng là chữ thuần. - Tham chiếu component cùng cấp theo tên:
SiblingName!LenX. Cả hai component phải nằm trong cùng một component cha.
Để hiển thị một thuộc tính tùy chỉnh cho người dùng cuối, bật ô User Visible của nó trong bảng Component Attributes. Khi đó nó xuất hiện như một ô nhập chỉnh được trong Component Options. Hãy đặt cho nó một nhãn mô tả rõ ràng để người dùng không chuyên biết cần nhập gì.
Dùng công cụ Interact với Dynamic Components
Công cụ Interact (biểu tượng con trỏ bàn tay trên thanh công cụ) kích hoạt hành vi Onclick. Mỗi lần bấm sẽ chuyển lần lượt qua các trạng thái bạn đã định nghĩa. Việc này không cần plugin nào thêm — đó là tính năng gốc của SketchUp Dynamic Component có trong SketchUp Pro.
Để thiết lập hoạt cảnh mở cửa đơn giản:
- Đặt gốc của component tại cạnh bản lề.
- Trong Component Attributes, thêm một thuộc tính
Open = 0. - Đặt
Onclicklà=IF(Open=0, 1, 0)— công thức này chuyểnOpenqua lại giữa 0 và 1 mỗi lần bấm. - Đặt
RotZlà=IF(Open=1, 90, 0)— 90° khi mở, 0° khi đóng.
Để xem các cụm dynamic nâng cao dựng sẵn cho nội thất và kiến trúc, xem 3dshouse Dynamic — Thư viện SketchUp Dynamic Component.
- BevelUp — bo tròn hoặc vát cạnh thành hình học thật, chỉ một cú nhấp
- Decimify — giảm số mặt (polygon) cho model nặng
- Tracepen — chuyển ảnh thành mặt SketchUp
- TileUp — biến một mặt thành gạch 3D thật, kèm bảng bóc tách
- Texturic — tạo texture gạch liền mạch kèm bản đồ PBR
- SheetUp — biến mô hình SketchUp thành bảng khối lượng và dự toán chi phí
- PatchUp — turn selected edges into faces, flat or curved

