Thuộc tính Copies trong Dynamic Component SketchUp là công cụ để nhân bản một component con theo công thức tự động — không cần vẽ tay từng thanh hàng rào, từng ngăn tủ, hay từng viên gạch. Khi kéo dãn kích thước component cha, số lượng bản sao tự tính lại theo biến LenX (hoặc LenY, LenZ) và hiển thị ngay trong model. Đây là một trong những tính năng mạnh nhất của Dynamic Component — thay vì lặp lại thao tác copy-paste thủ công rồi chỉnh từng vị trí, bạn viết một công thức duy nhất và SketchUp xử lý toàn bộ phần còn lại.
Bài viết này tập trung vào thuộc tính Copies và biến copy — hai thứ trông giống nhau nhưng hoàn toàn khác vai trò. Copies (viết hoa C) là số lượng bản nhân thêm bạn khai báo trong Component Attributes; copy (viết thường) là biến chạy từ 0 đến giá trị Copies, đại diện cho số thứ tự của từng bản. Hiểu rõ hai khái niệm này là chìa khóa để viết công thức vị trí chính xác, tránh lỗi off-by-one kinh điển: nếu muốn 10 thanh hàng rào, Copies phải bằng 9, không phải 10.
Ứng dụng thực tế rất đa dạng: hàng rào gỗ tự tăng/giảm thanh khi kéo dài, tủ kệ nhiều ngăn đều nhau, lưới cửa sổ, tấm ốp lát theo mô-đun, hay dãy cột đều khoảng cách. Mỗi trường hợp dùng cùng một nguyên lý — thiết lập Copies theo công thức dựa vào kích thước, rồi dùng biến copy để tính vị trí từng bản. Phần còn lại của bài sẽ đi qua từng bước cụ thể, kèm các lưu ý ít tài liệu nào đề cập.
Tính Năng Nổi Bật
-
Copies tự động theo kích thước tổng
Thay vì nhập số Copies cố định, bạn có thể viết công thức nhưCEIL(LenX / khoảng_cách) - 1ở thuộc tính Copies của sub-component. Khi kéo dãn component cha, SketchUp tính lại số bản ngay lập tức — kéo dài thì thêm thanh, kéo ngắn thì bớt. Cách này tạo ra model thực sự tham số hóa, không cần can thiệp thủ công sau mỗi lần thay đổi kích thước. -
Biến
copyđể tính vị trí từng bản
Mỗi bản copy nhận một giá trịcopykhác nhau: bản gốc là 0, bản tiếp theo là 1, 2, 3… Công thức vị trí điển hình theo trục X làX = vị_trí_bản_đầu + copy * khoảng_cách. Không có biến này, tất cả các bản chồng lên nhau tại cùng một điểm — bạn thấy Copies tăng trong Outliner nhưng model nhìn vẫn như cũ. Đây là lỗi phổ biến nhất khi người mới bắt đầu dùng tính năng này. -
Xen kẽ giá trị theo chẵn/lẻ qua biến
copy
Vìcopylà số nguyên chạy tuần tự, bạn có thể dùngcopy % 2(MOD trong SketchUp viết bằng hàmINT(copy/2)*2hoặc kết hợp IF) để xen kẽ màu sắc, hướng, hay kiểu dáng giữa các bản lẻ và chẵn. Ví dụ: thanh đứng và thanh ngang xen kẽ trong cửa lưới, viên gạch màu sáng tối xen kẽ, hay cột chẵn quay 180°. -
Copies không hiển thị thuộc tính riêng trong Component Attributes
Đây là giới hạn quan trọng cần biết trước: các bản copy không xuất hiện trong cửa sổ Component Attributes — chúng chỉ có trong Outliner. Tất cả bản copy dùng chung một definition với bản gốc, nghĩa là không thể click vào từng bản để sửa riêng kích thước hay vật liệu. Mọi sự khác biệt giữa các bản phải được mã hóa trong công thức theo biếncopy, chứ không chỉnh tay được. -
Kích thước (LenX/LenY/LenZ) bị ràng buộc chung cho tất cả bản copy
Thuộc tính vị trí X, Y, Z có thể nhận công thức riêng theo từng bản, nhưng LenX, LenY, LenZ bị buộc theo definition — mọi bản copy phải cùng kích thước tuyệt đối. Nếu muốn các thanh dài ngắn khác nhau, cách đúng là lồng sub-component bên trong và điều chỉnh tỉ lệ Scale thông qua công thức, hoặc thiết kế lại cấu trúc component để mỗi kiểu là một definition riêng. -
Tương thích với các thuộc tính khác của Dynamic Component
Copies hoạt động kết hợp tốt vớiInteract(click để thay đổi trạng thái),Rotate, và Component Options. Ví dụ: bạn có thể tạo hàng rào mà người dùng chọn “số khoang” trong Component Options — giá trị này dùng làm Copies, đồng thời LenX của component cha tự tính bằngsố_khoang * chiều_rộng_một_khoang. Hai công thức phụ thuộc nhau tạo model hoàn toàn tham số hóa từ một input duy nhất.
Cách Cài Đặt và Sử Dụng
-
Cài extension Dynamic Components
Vào Extensions > Extension Manager, tìm “Dynamic Components” (do Trimble phát triển, miễn phí). Nếu chưa thấy, vào Extension Warehouse và tìm theo tên. Extension này cần SketchUp Pro — bản SketchUp for Web không tạo/sửa được Dynamic Component. -
Tạo cấu trúc component lồng nhau
Dynamic Component dùng Copies yêu cầu cấu trúc 2 cấp: component cha (container tổng thể, ví dụ toàn bộ hàng rào) chứa bên trong component con (đơn vị lặp, ví dụ một khoang hàng rào). Chọn tất cả geometry của một khoang, nhấn G để tạo component con. Sau đó chọn component con này, group hoặc tạo component cha bao ngoài. Không thể đặt thuộc tính Copies trực tiếp ở top-level component không có cấu trúc cha-con. -
Mở Component Attributes của component con
Nhấp đúp vào component cha để vào chỉnh sửa, sau đó click chuột phải vào component con và chọn Dynamic Components > Component Attributes. Hoặc vào menu Extensions > Dynamic Components > Component Attributes khi component con đang được chọn. -
Thêm thuộc tính Copies
Trong cửa sổ Component Attributes, nhấn nút + để thêm thuộc tính mới. Gõ tênCopies(phân biệt hoa thường). Nhập giá trị — bắt đầu với số cố định để test, ví dụ4. Nhớ: Copies = 4 nghĩa là 4 bản thêm ngoài bản gốc, tổng là 5 thanh. Sau khi nhập xong, nhấn Enter và click Redraw để xem kết quả. -
Thiết lập vị trí theo biến copy
Thêm thuộc tínhX(hoặcY/Ztùy hướng bạn muốn lặp). Nhập công thức:=X_bản_đầu + copy * khoảng_cách. Ví dụ cụ thể cho hàng rào theo chiều X:=0 + copy * 30(đơn vị inches — SketchUp nội bộ dùng inches dù bạn đang hiển thị cm). Nếu dùng cm, cần chuyển đổi: 30cm ≈ 11.811 inches, hoặc dùng công thức=copy * LenX_của_conđể SketchUp tự tính. -
Công thức Copies tự động theo kích thước
Để số thanh tự tăng khi kéo dãn hàng rào, vào Component Attributes của component cha, thêm thuộc tính cho LenX (chiều dài tổng). Sau đó quay lại Attributes của component con, đổi công thức Copies thành:=CEIL(cha!LenX / bề_rộng_một_khoang) - 1. Ký hiệucha!là tên component cha (thay bằng tên thực tế của cha). Sau khi kéo thử LenX của hàng rào, click Redraw và kiểm tra số thanh. -
Kiểm tra kết quả trong Outliner
Vào Window > Outliner để thấy danh sách tất cả bản copy (Copy#1, Copy#2…). Đây là cách duy nhất thấy các bản này — chúng không xuất hiện trong Component Attributes. Nếu Outliner không hiển thị đủ số bản như mong đợi, kiểm tra lại công thức Copies và nhớ click nút Redraw. -
Tải model mẫu để tham khảo
File mẫu hàng rào gỗ Dynamic từ bài học: Dynamic-Fence.skp trên 3D Warehouse. Mở file, nhấp đúp vào component, vào Component Attributes để xem công thức thực tế — học từ model có sẵn nhanh hơn nhiều so với đọc tài liệu.
Mẹo Sử Dụng Hiệu Quả
-
Đặt tên component cha ngắn gọn không có dấu cách
Khi công thức trong component con tham chiếu đến cha bằng cú pháptên_cha!thuộc_tính, tên có dấu cách gây lỗi parse khó debug. Ví dụ tên “Hang Rao” trong công thức cần viết thànhHangRao!LenXhoặc đặt lại tên thànhFence. Đặt tên component cha trước khi viết công thức để tránh phải sửa lại nhiều chỗ. -
Dùng CEIL thay ROUND để không bị thiếu thanh
Công thứcCEIL(LenX / khoảng) - 1đảm bảo luôn đủ thanh ngay cả khi LenX không chia hết cho khoảng cách. DùngROUNDhoặcINTcó thể ra kết quả thiếu 1 thanh ở một số giá trị LenX nhất định — lỗi không thường xuyên nên khó phát hiện. CEIL (làm tròn lên) an toàn hơn cho bài toán chia không chẵn. -
Test với Copies cố định trước khi làm động
Khi mới dựng component, đặt Copies là số cụ thể (3, 4, 5) để kiểm tra công thức vị tríX = copy * khoảngtrước. Chỉ sau khi vị trí đúng hết mới chuyển Copies sang công thức động. Làm ngược lại (công thức động ngay) khó phân biệt lỗi do Copies sai hay do vị trí sai. -
Redraw bắt buộc sau mỗi thay đổi công thức
Không như các phần mềm tham số hóa khác, SketchUp Dynamic Component không tự cập nhật khi bạn sửa công thức. Phải nhấn nút Redraw trong Component Attributes (hoặc dùng Extensions > Dynamic Components > Redraw) mỗi lần thay đổi công thức để thấy kết quả. Nếu quên bước này, dễ nghĩ công thức sai trong khi thực ra chưa áp dụng. -
Copies hoạt động theo đơn vị inches nội bộ
SketchUp lưu tất cả giá trị nội bộ theo inches dù giao diện hiển thị theo cm hay mm. Khi bạn gõ30vào thuộc tính, SketchUp hiểu là 30 inches (~76cm), không phải 30cm. Để nhập 30cm, gõ30cmtrong Component Attributes và SketchUp tự chuyển đổi. Hoặc thay vì gõ số cụ thể, dùngcopy * LenX_của_conđể tham chiếu theo đơn vị model — cách này không bị nhầm đơn vị.
Yêu Cầu Hệ Thống
- SketchUp phiên bản: SketchUp Pro 2017 trở lên (Dynamic Components là tính năng Pro, không có ở bản Free/Go). Khuyến nghị 2022+ để tránh lỗi cũ. Phiên bản 2026.2 đã vá lỗ hổng bảo mật Dynamic Components và sửa lỗi mở đồng thời cửa sổ Options và Attributes.
- Extension Dynamic Components: Phải cài từ Extension Warehouse (miễn phí, do Trimble phát triển). Extension này không có trong bản cài mặc định từ 2021 trở đi.
- Hệ điều hành: Windows 10/11 hoặc macOS 12 (Monterey) trở lên.
- SketchUp for Web: Không hỗ trợ tạo hoặc chỉnh sửa Dynamic Component. Chỉ xem và kích hoạt Component Options ở mức hạn chế.
- RAM: Model có nhiều Copies lớn (>100 bản) có thể nặng — khuyến nghị tối thiểu 8GB RAM.

English