Cửa Dynamic là một trong những ứng dụng thực tế nhất của hệ thống Dynamic Component trong SketchUp: một component duy nhất đóng mở khi bấm chuột, đổi được sang mọi kích thước và tự cắt lỗ mở xuyên tường. Dựng một chiếc từ đầu giúp bạn nắm quy trình tạo DC cốt lõi — attribute, công thức, cấu trúc sub-component và công cụ Interact — nhanh hơn hầu hết các bài tập khác. Bài hướng dẫn này đi qua từng lớp của một cánh cửa tham số một cách chi tiết: khung cửa cố định, cánh cửa xoay, tay nắm thay được và hình học cắt lỗ mở, tất cả liên kết với nhau để khi đổi chiều rộng hoặc chiều cao, thay đổi lan đúng sang mọi bộ phận. Tính đến SketchUp 2026, Dynamic Component được hỗ trợ đầy đủ trên bản desktop; bản web miễn phí hoàn toàn không dùng hay chỉnh sửa được DC có sẵn — SketchUp for Web không hỗ trợ extension, nên cả việc xem/tương tác lẫn việc tạo DC đều cần ứng dụng desktop; riêng việc dựng và sửa các công thức attribute trình bày bên dưới còn cần gói SketchUp Pro hoặc Studio.
Component hoàn chỉnh cho phép bạn gõ chiều rộng và chiều cao mới trong Component Options và xem khung, cánh cửa và lỗ mở trên tường cùng co giãn một lúc. Bạn bật animation đóng/mở bằng công cụ Interact (con trỏ hình bàn tay) trên thanh công cụ, còn đổi tay nắm chỉ cần bấm chuột phải vào sub-component tay nắm và chọn “Replace with Component”. Ba khả năng này — đổi kích thước, animation, hoán đổi — bao trùm các nhu cầu thực tế xuất hiện mỗi ngày trong bản vẽ kiến trúc nội thất, và mỗi khả năng dựa trên một phần khác nhau của hệ thống attribute DC.
Trước khi bắt đầu, hãy kiểm tra phiên bản SketchUp của bạn. Việc tạo công thức DC có từ SketchUp Pro 2017 trở đi; các bước dưới đây đã được kiểm chứng trên SketchUp 2024 và 2025. Model 3D Warehouse ở link bên dưới (Dynamic-Resizable-Rotatable-Door.skp) là bản hoàn chỉnh để bạn mổ xẻ bất cứ lúc nào.
Tính năng chính
- Chiều rộng và chiều cao tham số qua attribute LenX / LenZ. Khung cửa dùng hai attribute hiển thị cho người dùng là
DoorWidthvàDoorHeight, được đưa vàoLenXvàLenZcủa mọi sub-component bằng công thức như=Parent!DoorWidth. Đổi một con số trong Component Options là cả cụm tự cập nhật theo. Chi tiết then chốt: SketchUp đo LenX/LenY/LenZ dọc theo trục cục bộ của chính component, nên bạn phải đặt các trục này có chủ đích — component vẽ nghiêng sẽ cho giá trị LenX gây rối nếu không làm vậy. - Animation mở/đóng bằng RotZ trên cánh cửa. Sub-component cánh cửa có attribute
RotZchuyển qua lại giữa 0° và −90° (hoặc góc mở bạn muốn). Công cụ Interact đọc attribute sự kiệnOnClick: đặtOnClickthànhAnimateCustom("RotZ", 0, -90)khiến SketchUp nội suy mượt góc xoay mỗi lần người dùng bấm vào cửa. Bạn có thể chỉnh số bước để điều khiển tốc độ animation. Attribute animation nằm ở sub-component cánh cửa chứ không phải ở component cha — hãy giữ phân cấp này rõ ràng, nếu không các tham chiếu công thức sẽ hỏng. - Đặt trục đúng điểm xoay là bắt buộc. SketchUp xoay component quanh gốc trục của chính nó, không phải tâm hộp bao. Nếu bạn tạo hình cánh cửa rồi đặt RotZ mà không dời trục, cửa sẽ xoay quanh giữa cánh thay vì quanh mép bản lề. Cách sửa: mở component cánh cửa, dùng Change Axes (menu chuột phải) và bắt gốc trục vào cạnh đứng phía bản lề của cánh. Khi trục đúng, công thức RotZ chạy như mong đợi. Đây là bước gây bối rối nhiều nhất với người làm DC cửa đầu tiên.
- Cut Opening cho tường một mặt. Bật Glue to Any và Cut Opening trên sub-component khung (phần có mặt áp sát tường) khiến SketchUp tự đục lỗ khi component được đặt vào một mặt. Hình học cắt bám theo hộp bao của khung, nên khi khung co giãn theo DoorWidth/DoorHeight, lỗ mở cũng co giãn theo — không cần chỉnh tay. Giới hạn quan trọng: Cut Opening chỉ cắt một mặt tại một thời điểm. Nó không đục xuyên được tường dày hoặc tường dựng từ hai mặt song song. Trường hợp đó cần một extension như FlexTools WallCutter.
- Sub-component tay nắm hoán đổi được. Tay nắm là một component lồng riêng, không có công thức kích thước. Không gán công thức nghĩa là bạn có thể bấm chuột phải và chọn Replace Selection with Component (hiện trong bảng DC dưới dạng attribute Swap) để thay bằng bất kỳ tay nắm nào từ 3D Warehouse mà không ảnh hưởng phần còn lại của cụm. Bài hướng dẫn đặt tay nắm ở cuối chính vì lý do này: gán công thức kích thước cho bộ phận định thay sẽ tạo tham chiếu hỏng khi bản thay thế có tên attribute khác.
- Component cha là bộ chứa và là nơi quyết định kích thước. Component cha giữ
DoorWidthvàDoorHeightlàm nguồn sự thật duy nhất. Cả khung lẫn cánh cửa tham chiếu chúng bằng=Parent!DoorWidthvà=Parent!DoorHeight. Nghĩa là người dùng chỉ sửa đúng hai con số dù bên trong có bao nhiêu sub-component. Khi sau này bạn thêm ô kính bên hông hoặc ô thoáng phía trên, chỉ cần thêm công thức mới đọc cùng hai attribute của component cha — giao diện phía người dùng không đổi.
Cách cài đặt và sử dụng
- Tải model tham chiếu. Lấy Dynamic-Resizable-Rotatable-Door.skp từ 3D Warehouse. Mở nó trong SketchUp Pro 2022 trở lên. Trước khi làm bất cứ việc gì khác, bấm chuột phải vào cửa và chọn Dynamic Components > Component Attributes để xem cây attribute hoàn chỉnh được tổ chức ra sao.
- Tạo component khung cửa. Vẽ biên dạng khung (thanh ngang trên, hai thanh đứng, ngưỡng dưới) thành một group, rồi biến nó thành component tên
DoorFrame. Mở bảng attribute và thêmLenXvới công thức=Parent!DoorWidthvàLenZvới=Parent!DoorHeight. Đặt Glue to Any và bật Cut Opening trong phần thiết lập của component này. Đặt nó vào một mặt tường và kiểm tra tường được cắt đúng trước khi dựng phần còn lại. - Tạo component cánh cửa. Bên trong component cha, vẽ hình chữ nhật cánh cửa nhỏ hơn lỗ mở của khung một chút (tính khe hở — thường 3–5 mm mỗi bên). Biến nó thành component tên
DoorLeaf. Trước khi thêm attribute nào, mở component và dùng Change Axes để dời gốc trục về cạnh đứng phía bản lề ở đáy cánh. Đó là điểm xoay. Đóng component và thêmLenXlà=Parent!DoorWidth - 0.01(trừ khe hở, đơn vị mét) vàLenZlà=Parent!DoorHeight - 0.005. - Thêm attribute animation RotZ. Vẫn trên component DoorLeaf, thêm attribute mới tên
RotZvới giá trị mặc định0. Sau đó thêm attributeOnClickvới công thứcAnimateCustom("RotZ", 0, -90). Chuyển sang công cụ Interact (thanh công cụ, hoặc nhấn I), rê chuột lên cửa — con trỏ đổi thành bàn tay — rồi bấm. Cửa phải mở ra. Bấm lần nữa để đóng. Nếu cửa xoay quanh sai điểm, hãy quay lại kiểm tra vị trí trục ở bước 3. - Tạo component cha chứa toàn bộ. Chọn cả DoorFrame và DoorLeaf, bấm chuột phải rồi Make Component — đặt tên
DynamicDoor. Mở Component Attributes của nó và thêm hai attribute hiển thị cho người dùng:DoorWidth(kiểu: units, mặc định: 0.9 m) vàDoorHeight(kiểu: units, mặc định: 2.1 m). Bảo đảm cả hai được đặt để hiện trong Component Options (kiểm tra cột biểu tượng con mắt). Kiểm tra bằng cách chọn component cha, mở Component Options và gõ chiều rộng mới. Mọi bộ phận phải co giãn cùng nhau. - Thêm tay nắm. Tải hoặc dựng một component tay nắm cửa. Đưa nó vào component cha (không phải trong DoorLeaf — giữ ở cấp component cha, hoặc lồng trong DoorLeaf mà không có công thức kích thước). Đặt ở độ cao thực tế (~1,05 m tính từ sàn). Không thêm công thức LenX/LenY/LenZ cho tay nắm. Muốn thay sau này: bấm chuột phải vào sub-component tay nắm, chọn Replace Selection with Component và chọn model tay nắm mới bất kỳ.
- Lưu vào Local Collection để dùng lại. Vào File > Save As Template hoặc đơn giản là lưu file .skp vào thư mục Components của bạn. Ở các dự án sau, tìm nó qua ô tìm kiếm của bảng Components. Vì mọi kích thước đều do công thức điều khiển, mỗi bản bạn đặt vào có thể có chiều rộng và chiều cao riêng qua hộp thoại Component Options của chính nó mà không ảnh hưởng các bản khác trong cùng model.
Mẹo hay
- Dùng công thức độ dày theo tỉ lệ để phào chỉ luôn cân đối. Nếu muốn bề rộng phào khung cửa co giãn theo chiều rộng cửa, thêm công thức như
=Parent!DoorWidth * 0.08vào LenX của sub-component phào. Gán cứng một bề rộng phào cố định trông sai trên cửa hẹp hoặc rộng bất thường. Công thức theo tỉ lệ chỉ mất 30 giây thiết lập và loại bỏ vấn đề đó vĩnh viễn. - Thử animation theo bước 45° trước khi chốt. Công thức AnimateCustom nội suy tuyến tính giữa góc đầu và góc cuối. Nếu sau này bạn thấy góc mở 75° hợp hơn ở hành lang hẹp, chỉ cần đổi giá trị cuối trong công thức từ
-90thành-75. Không cần sửa hình học. Hãy kiểm tra cả vị trí mở và đóng xem có vướng tường hay đồ nội thất bên cạnh không trước khi chốt component cho dự án. - Khóa vị trí Z của cánh cửa để tránh bị trôi ngoài ý muốn. Khi cánh cửa co giãn, SketchUp scale từ gốc của component. Nếu gốc ở góc bản lề dưới đáy, phần đỉnh cửa dài ra phía trên là đúng. Nhưng nếu ai đó dời trục component về sau, cửa sẽ dài ra sai hướng. Hãy phòng ngừa bằng cách thêm attribute
Zđặt là0(cố định) và attributeYcũng đặt là0— khóa các attribute vị trí giúp sub-component không trôi khi tác giả khác sửa file. - Với cửa hai cánh, lật đối xứng bằng scale LenX âm. Dựng một cánh, rồi tạo bản thứ hai làm sub-component bên trong component cha. Thêm công thức
LenX = -1 * DoorLeaf!LenXcho cánh thứ hai. SketchUp hiểu scale âm là lật đối xứng. Đặt gốc của cánh thứ hai ở cạnh bản lề phía đối diện. Cả hai cánh giờ animation đối xứng chỉ từ một sự kiện OnClick của component cha. - Xuất 2D với cửa ở vị trí mở cho bản vẽ mặt bằng. Trước khi xuất mặt bằng, mở cửa 90° bằng công cụ Interact, rồi dùng Camera > Standard Views > Top và xuất vector 2D. Mặt bằng xuất ra sẽ thể hiện cung mở của cửa, đúng quy ước bản vẽ kiến trúc. Sau khi xuất, hãy đóng cửa lại — một Scene lưu ở trạng thái mở 90° rất tiện cho việc này.
Yêu cầu hệ thống
- Phiên bản SketchUp: Pro 2017 trở lên để tạo công thức DC; khuyến nghị Pro/Studio 2022+ (cải tiến API giúp giảm lỗi công thức ở cụm phức tạp). Bản web miễn phí hoàn toàn không dùng được Dynamic Component — không xem, không tương tác, không tạo; SketchUp for Web không hỗ trợ extension.
- Hệ điều hành: Windows 10/11 hoặc macOS 11 (Big Sur) trở lên.
- Extension cần thiết: Không cần cho việc đóng/mở và đổi kích thước cơ bản. Cần FlexTools WallCutter (hoặc tương tự) nếu muốn cắt lỗ mở trên tường dày hoặc tường hai lớp mặt.
- Phần cứng: Không yêu cầu đặc biệt — công thức DC do lõi SketchUp tính, không phải GPU.
- 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

