Tính Thể Tích Trong SketchUp: Vì Sao Mất Hoặc Sai Số

SheetUp BOQ and cost estimate for SketchUp logo

Mọi cách tính thể tích trong SketchUp đều bắt đầu từ một câu hỏi: đối tượng có phải solid kín không? SketchUp chỉ báo thể tích cho một solid: group hoặc component có các mặt bao kín một vùng không khe hở. Chọn nó, mở Entity Info là thấy con số. Nếu không thấy, đối tượng chưa kín, và mọi số lượng dựa trên thể tích (bê tông, lớp vữa cán nền, gỗ, khối lượng) đều thừa hưởng lỗi đó. Bài này giải thích SketchUp quyết định thế nào, vì sao thể tích mất hoặc ra sai, cách tìm và sửa nguyên nhân, và cách SheetUp, tiện ích bóc khối lượng cho SketchUp của chúng tôi, xử lý cùng loại hình học. Cuối bài là phép kiểm tra có lời giải với một tấm phẳng và một lăng trụ tam giác mà bạn tự tính tay được.

SketchUp coi gì là solid

Trợ giúp của SketchUp định nghĩa rất rõ: “a solid is any entity that has a finite closed volume” và “a SketchUp solid cannot have any missing faces or faces that do not meet at an edge” (trang Solid Tools). Ruby API nói cùng điều đó bằng ngôn ngữ tô-pô: một definition là manifold khi “all edges are shared by exactly two faces, and there are no holes or singularities”, và thể tích của group chỉ được tính “if and only if this group is manifold” (ComponentDefinition#manifold?, Group#volume).

Trên định nghĩa đó có ba quy tắc thực hành:

  • Phải nằm trong group hoặc component. Thể tích chỉ hiện khi hình học đã được group hoặc làm thành component và SketchUp nhận ra nó là solid (chủ đề diễn đàn).
  • Không có hình học bên trong. Trang trợ giúp về in 3D: “if your model contains internal geometry, then your model is not a solid” (3D Printing a Model).
  • Không lồng nhau. Một câu trả lời trên diễn đàn: “SketchUp does not consider a container (group or component) with nested groups to be a solid” (chủ đề diễn đàn). Đây là kiến thức cộng đồng, không phải câu trong trang trợ giúp.

Đọc thể tích ở đâu

Chọn group hoặc component rồi mở Entity Info; với solid group, bảng này báo điều đó ở góc trên bên trái (3D Printing a Model). Từ SketchUp Desktop 2025.0, Entity Info còn hiện tổng thể tích của nhiều đối tượng được chọn nếu tất cả đều là solid (ghi chú phát hành). Đơn vị đặt ở Window > Model Info > Units, tách riêng với đơn vị chiều dài và diện tích (Managing Units of Measurement).

Vì sao mất thể tích

Khi dòng thể tích không xuất hiện, thường là một trong các nguyên nhân sau. Mỗi dòng nêu nguồn bằng chứng.

Nguyên nhân Bằng chứng cho thấy Cách sửa
Thiếu mặt hoặc có lỗ trên lưới Một component tường bê tông không hiện thể tích; ngoài các lỗi khác nó thiếu một mặt, thấy như một lỗ dưới gờ, và bịt mặt đó thì có solid và có thể tích (diễn đàn). Bịt lỗ bằng một mặt rồi kiểm tra lại.
Cạnh thừa Một group móng “isn’t solid because there were stray edges and internal faces” (diễn đàn); Solid Inspector tìm thấy 47 cạnh thừa trong mô hình địa hình được extrude (diễn đàn). Xóa chúng, hoặc để Solid Inspector gỡ.
Mặt nằm bên trong Mặt bên trong lớp vỏ làm đối tượng mất tư cách solid (trợ giúp, diễn đàn). Xóa mọi mặt bên trong.
Group hoặc component lồng nhau Container có group lồng bên trong không phải solid (diễn đàn); Solid Inspector của SketchUp for Web xếp nested groups/components vào nhóm lỗi phải sửa tay (trợ giúp). Explode phần lồng, hoặc dựng một lớp vỏ ngoài duy nhất, hoặc chấp nhận đo từng phần riêng.
Mặt quay sai hướng “Check that the fronts of faces point outward”; bấm chuột phải vào mặt và chọn Reverse Faces (trợ giúp). Đảo mặt, hoặc để Solid Inspector làm.
Hình học chưa nằm trong group Thể tích chỉ hiện cho group hoặc component (diễn đàn). Chọn hình học rồi Make Group.

Tìm và sửa lỗi

  1. Group hình học rồi chọn nó. Entity Info cho biết SketchUp có thấy một solid hay không và, nếu có, hiện thể tích.
  2. Tìm phần lồng trong Outliner. Entity có phần tử lồng bên trong sẽ có mũi tên bên cạnh; bấm vào để mở rộng (Hierarchies in the Outliner). Quy tắc của một người hỗ trợ trên diễn đàn: để được coi là solid, “every edge must be shared by exactly two faces” (diễn đàn).
  3. Chạy công cụ kiểm tra solid. SketchUp for Web có sẵn Solid Inspector; trên Desktop, trợ giúp của SketchUp trỏ tới tiện ích Solid Inspector 2 trên Extension Warehouse (3D Printing a Model). Công cụ trên Web tự sửa mặt đảo, cạnh thừa và lỗ trong một mặt; border holes, nested groups/components, image entities và short edges phải sửa tay (trợ giúp).
  4. Sửa tay phần còn lại, rồi thoát chế độ sửa group và chọn lại group; các chủ đề diễn đàn trên báo thể tích hiện ngay sau khi dọn.
  5. Chỉ dùng Solid Tools trên solid. Trợ giúp nói rõ rằng, như các công cụ khác, Trim “works only if two solid entities overlap”. Nếu bạn trừ ô cửa sổ khỏi tường bằng Subtract, ô cửa trở thành một phần của hình học và thể tích của nó đã được trừ khỏi con số (trang Solid Tools).

Vì sao thể tích có thể sai chứ không phải mất

  • Tỷ lệ của các instance cha. Trong một thảo luận trên diễn đàn về việc đọc thể tích của instance qua Ruby API, một lập trình viên giải thích rằng một instance đứng riêng không có thể tích xác định: bạn “need to know the scaling of all parent instances”, và giá trị trả về còn “changes depending on whether a scaled parent instance is currently opened for editing” (chủ đề diễn đàn). Một người khác đề xuất nhân với định thức của phép biến đổi tổng hợp, lấy giá trị tuyệt đối cho trục bị lật. SheetUp làm đúng như vậy.
  • Ô mở không bị trừ nếu không được dựng. Thể tích là của hình học như đã vẽ. Ô cửa chỉ là một component riêng không làm giảm thể tích tường.
  • Bản trùng. Hai bản chồng lên nhau là hai solid; cả hai đều được đo.
  • Đơn vị. Đơn vị thể tích trong Model Info chỉ đổi cách hiển thị; hãy kiểm tra bạn đang đọc đơn vị nào.

SheetUp xử lý thể tích thế nào

Trong SheetUp, thể tích chỉ tồn tại bên trong một dòng của bảng dự toán, và SheetUp chỉ đo những gì một dòng trỏ tới. Bấm Add row ở thanh dưới cùng cửa sổ, chọn Component… hoặc Tag…, đánh dấu các mục cần đo rồi bấm Add N selected. Dòng Component hoặc Tag mới có Per là Each, tức là đếm số lượng, nên thể tích chỉ được dùng khi bạn tự chọn: mở danh sách Per của dòng và chọn Volume (m³) (Volume (ft³) khi dùng Imperial), khi đó cột Qty hiện thể tích. Các số đo của dòng nằm bên phải cột Total, mỗi số một cột riêng, trong đó có Volume, và luôn được điền dù Per là gì, trừ khi bạn đã ẩn cột bằng nút Columns. Dòng Material chỉ có Area và Each trong Per nên không bao giờ mang thể tích. Mỗi đối tượng đã đặt được đo như sau:

  • Solid kín: chính xác. Host cộng A × (n · p) / 3 trên các mặt của chính đối tượng, dạng định lý phân kỳ của thể tích mặt kín, trong hệ tọa độ riêng của group. SheetUp lấy giá trị tuyệt đối rồi nhân với giá trị tuyệt đối của định thức của toàn bộ chuỗi biến đổi (mọi tỷ lệ của các cha và của chính instance). Phép đối xứng làm định thức âm, nên giá trị tuyệt đối giữ thể tích dương.
  • “Kín” nghĩa là mọi cạnh mà các mặt trực tiếp đó dùng đều được đúng hai mặt dùng. Đó là cùng quy tắc cạnh như định nghĩa của SketchUp, áp dụng cho các mặt riêng của một definition.
  • Còn lại: ước tính. Đối tượng nhận thể tích hộp bao (ba kích thước của hộp definition, nhân tỷ lệ trục), và cột Volume của dòng viết nó với dấu ≈ đứng trước.
  • Dòng Component đo cả component: các mặt riêng của nó cộng mọi group hoặc component lồng bên trong, mỗi phần nhân qua cả chuỗi biến đổi của các cha, rồi nhân với số instance. Vì vậy container không có mặt riêng, như group cửa sổ chứa kính, bệ và đầu khung, được đo bằng tổng các phần bên trong. Thể tích chỉ chính xác nếu các phần đó là solid kín. Chỉ một phần hở là cả dòng thành ước tính: các phần kín vẫn vào bằng thể tích đúng, phần hở vào bằng hộp bao của nó. Dấu ≈ nằm ở dòng chứ không ở phần, nên hãy thêm từng phần thành dòng riêng để tìm ra phần hở.
  • Dòng Tag cộng hình học riêng: các mặt riêng của mọi component mang tag đó. Phần lồng trong một component cùng tag chỉ được tính một lần, là component của chính nó, không tính lại bên trong container.
  • Không có gì bị trừ. Dòng Component và dòng của một phần bên trong nó tính phần đó hai lần, nên hãy chọn một trong hai. Cũng không có trừ ô mở: ô cửa chỉ làm giảm thể tích nếu nó được dựng trong hình học.
  • Hình học rời trong mô hình, ngoài mọi group hoặc component, không có trong danh sách chọn, nên không dòng nào trỏ tới nó được. Hãy group nó.

Bốn điểm khác với Entity Info đáng biết:

  • Phép kiểm “kín” của SheetUp chỉ đọc các cạnh mà mặt dùng, nên cạnh thừa không ảnh hưởng, dù nó có thể làm Entity Info không hiện thể tích. Vì thế SheetUp có thể cho con số chính xác ở chỗ SketchUp không hiện gì.
  • Nó không đòi nhãn “solid”, nên group có một lớp vỏ kín và các instance lồng bên trong vẫn nhận thể tích của lớp vỏ, còn dòng Component của nó cộng thêm các instance lồng.
  • Phép kiểm này thuần tô-pô. Nó không xét hướng mặt, và không tìm lớp vỏ kín thứ hai trong cùng group. Theo công thức, mặt quay sai hướng đổi dấu phần đóng góp của chúng trong tổng, và lớp vỏ trùng cộng thêm thể tích của chính nó. Cả hai đều không hiện dấu hiệu nào, nên hãy so vài đối tượng quan trọng với Entity Info.
  • Container mang dù chỉ một mặt thừa của riêng nó được đo ở dạng ước tính. Hộp lấy từ bounds của definition, mà Ruby API mô tả là bao “the contents of the component” trong hệ tọa độ riêng của nó (Drawingelement#bounds), nên nó có thể chồng lên các phần lồng bên trong mà dòng Component cộng thêm. Dấu ≈ là tín hiệu để kiểm tra.

Dấu hiệu của số ước tính hiện ở đâu. Chỉ ở cột Volume: thể tích ước tính được viết với ≈ đứng trước, ví dụ ≈ 72.00 m³. Ô Qty không có dấu nào, nên dòng đặt Per là Volume hiện cùng con số ở đó mà không có dấu, và ẩn cột Volume là mất dấu hiệu duy nhất. Dòng Total ở cuối bảng, cột Weight (khối lượng là thể tích nhân tỷ trọng, nên thể tích ước tính cho khối lượng ước tính) và các bản xuất (XLSX, CSV, HTML, Copy to clipboard và Print) cũng không có dấu: chúng mang số ước tính như thể nó chính xác. Hãy rà cột Volume tìm dấu ≈ trước khi xuất.

Per là do bạn chọn. SheetUp không bao giờ tự chọn Volume, nên dòng đang hiện số đếm hay diện tích vẫn giữ nguyên cho tới khi bạn đổi Per, và sửa lại group không làm đổi thứ mà dòng đang tính tiền. Dòng đặt Per là Volume vẫn tính tiền theo số ước tính nếu group sau đó bị hở, với dấu ≈ là dấu hiệu duy nhất. Không có nút làm mới: SheetUp tự đo lại một lúc sau khi mô hình thay đổi (mã chờ 1,5 giây sau sự kiện mô hình cuối cùng), nên sửa xong là thấy số mới mà không cần bấm gì.

Khối lượng là thể tích nhân tỷ trọng. Tỷ trọng lấy từ bảng có sẵn, khớp theo tên vật liệu chiếm ưu thế của đối tượng; vật liệu bảng không biết cho khối lượng 0, và cột Weight khi đó ghi “none”. Muốn dùng giá trị riêng, đặt Per là Weight trên dòng Component hoặc Tag: ô Density của nó khi đó nhận một con số (kg/m³, hoặc lb/ft³ khi dùng Imperial) thay cho bảng ở dòng đó. Thể tích ước tính cho khối lượng ước tính.

Về phần diện tích bề mặt của cùng các số đo, xem cách SketchUp đo diện tích; về việc biến các số lượng này thành đơn đặt vật liệu, xem cách tính khối lượng vật liệu.

Phép kiểm tra có lời giải, tự lặp lại được

Dựng hai hình dưới dạng group đặt tên Slab và Prism, với một góc của tấm và góc vuông của lăng trụ đặt ở gốc tọa độ, và lấy các số dưới đây làm kết quả mong đợi. Trong SheetUp, bấm Add row, chọn Component…, đánh dấu Slab và Prism rồi bấm Add 2 selected. Cả hai dòng bắt đầu với Per là Each, nên Qty hiện 1 each. Chúng là solid kín, nên cột Volume đã hiện các con số dưới đây, làm tròn theo số chữ số thập phân trong Settings (mặc định hai); chọn Volume (m³) trong danh sách Per của từng dòng thì Qty cũng hiện chúng.

Solid Công thức đóng Tổng phân kỳ, A × (n · p) / 3
Tấm 2 m × 3 m × 0,2 m V = a × b × c = 1,2 m³ Các mặt nằm trên mặt phẳng tọa độ cộng 0. Ba mặt còn lại: (3 × 0,2 × 2)/3 + (2 × 0,2 × 3)/3 + (2 × 3 × 0,2)/3 = 0,4 + 0,4 + 0,4 = 1,2
Lăng trụ tam giác: tam giác vuông hai cạnh góc vuông 3 m và 4 m, extrude 6 m V = ½ × 3 × 4 × 6 = 36 m³ Mặt trên: 6 × 6/3 = 12. Mặt nghiêng (mặt phẳng 4x + 3y = 12, diện tích 5 × 6 = 30, n · p = 12/5): 30 × 2,4/3 = 24. Tổng 36

Gốc tọa độ không quan trọng: với mặt kín, tổng này cho cùng thể tích dù gốc đặt ở đâu. Theo đơn vị Imperial, cùng phép kiểm đọc ra 42.38 ft³ cho tấm và 1,271.33 ft³ cho lăng trụ.

Để thấy con số trở thành tiền thế nào, đặt Per là Volume (m³) trên dòng Slab rồi nhập 250 vào Price, 5 vào Waste % và 20 vào Tax %. Total của dòng là Qty × Factor × Price × (1 + Waste/100) × (1 + Tax/100) = 1,2 × 1 × 250 × 1,05 × 1,2 = $378.00 (đô la Mỹ là tiền tệ mặc định; giá chỉ để minh họa). Dòng Prism không có giá và hiện dấu gạch, nên dòng cuối của bảng, cộng cột Total, cũng hiện $378.00.

Giờ đổi cách đặt chứ không đổi hình học, giá trị mong đợi suy ra từ định thức:

  • Tấm kéo dài gấp ba theo một trục, tỷ lệ (3, 1, 1): định thức 3, thể tích 1,2 × 3 = 3,6 m³.
  • Cùng tấm đó lấy đối xứng, tỷ lệ (−1, 1, 1): định thức −1, giá trị tuyệt đối 1, thể tích vẫn 1,2 m³.
  • Instance tấm co giãn đều 1,5 lần nằm trong group co giãn đều 2 lần: tỷ lệ tổng hợp 3 trên mọi trục, định thức 27, thể tích 1,2 × 27 = 32,4 m³. Dòng Component của Slab đọc 32,4 m³. Dòng Component của group ngoài, vốn không có mặt riêng, cũng đọc 32,4 m³, vì nó được đo bằng tổng các phần bên trong. Đưa cả hai vào dự toán thì tấm bị tính hai lần.

Sau đó xóa một mặt của lăng trụ. Một lúc sau SheetUp đã đo lại và quy tắc cạnh không còn đúng: cột Volume của dòng Prism đọc ≈ 72.00 m³, là hộp bao của group, 3 × 4 × 6, gấp đôi thể tích thật 36 m³. Nếu dòng đặt Per là Volume thì Qty hiện 72.00 m³ mà không có dấu, nên dấu ≈ trong cột Volume là cảnh báo duy nhất. Cùng thao tác đó với tấm đọc ≈ 1.20 m³: con số đúng vì khối hộp chữ nhật chính là hộp bao của nó, nhưng nó vẫn bị đánh dấu là ước tính. Phần tiếp theo nói về các hình khác.

Dùng hộp bao ước tính hay sửa mô hình?

Hộp được dựng theo trục riêng của group, nên chính xác với khối hộp chữ nhật thẳng hàng với các trục đó, còn lại thì lớn hơn thực tế. Công thức đóng cho các hình thường gặp (thể tích hộp chia thể tích thật):

Hình (thẳng hàng với trục) Hộp / thể tích thật
Khối hộp chữ nhật 1
Lăng trụ tam giác 2
Hình trụ (4r²h / πr²h) 4/π = 1,27
Hình cầu (8r³ / (4/3)πr³) 6/π = 1,91

Chấp nhận ước tính khi kiểm tra sớm, với cấu kiện chữ nhật mà bạn biết đã thẳng hàng trục, và với dòng không mang giá. Hãy sửa mô hình khi dòng được tính tiền theo thể tích (bê tông, đất đắp, vữa cán nền, gỗ), khi hình cong, dốc hoặc xoay trong group của nó, hoặc khi nhiều dòng có giá cùng mang dấu ≈. Cách tính tiền nằm trong hướng dẫn dự toán chi phí.

Những gì tôi chưa kiểm được

  • Tôi chưa chạy SheetUp trong SketchUp cho bài này: cách nó xử lý thể tích lấy từ việc đọc mã và các bài kiểm thử của nó (bản dựng ngày 2026-11-10), không từ một phiên làm việc trên mô hình thật.
  • Việc SketchUp có phát sự kiện mô hình cho mọi kiểu chỉnh sửa bên trong group hay không, và thời gian tự đo lại trên một mô hình thật: tôi đọc mức chờ 1,5 giây trong mã và không bấm giờ.
  • Câu chữ và vị trí chính xác của dòng thể tích trong bảng Entity Info bản desktop: các trang trợ giúp tôi đã mở chỉ nói Entity Info là nơi đọc, không mô tả bố cục.
  • Entity Info tự hiện gì cho một instance nằm trong các cha có tỷ lệ; phần thảo luận tỷ lệ ở trên nói về Ruby API và lấy từ chủ đề diễn đàn, tôi không chạy SketchUp cho việc này.
  • Tác động của mặt đảo hoặc lớp vỏ trùng lên con số của SheetUp trên một mô hình thật: nhận định đến từ công thức, không từ một lần chạy.
  • Việc hộp “contents” có bao cả group lồng bên trong trong mọi trường hợp hay không: tôi đọc từ câu chữ của API và không chạy thử với phần lồng.
  • Danh sách tính năng của Solid Inspector 2 bản desktop: danh sách tự sửa ở trên là của Solid Inspector trong SketchUp for Web.

Nguồn (đã mở ngày 2026-11-09)

Hỏi đáp

SketchUp có tính được thể tích không?
Có, với group hoặc component dạng solid: chọn nó rồi mở Entity Info, nơi trợ giúp của SketchUp nói để đọc thể tích của một solid (Managing Units of Measurement). Mặt và cạnh rời, chưa nằm trong group, không có thể tích. Đơn vị lấy từ Window > Model Info > Units.

Vì sao Entity Info không hiện thể tích?
Vì đối tượng chọn không phải solid. Trong các chủ đề diễn đàn ở trên, nguyên nhân là cạnh thừa và mặt nằm bên trong (diễn đàn), cạnh thừa trong mô hình địa hình (diễn đàn) và thiếu một mặt (diễn đàn). Container chứa group hoặc component lồng bên trong cũng không phải solid (diễn đàn).

Làm sao lấy tổng thể tích của nhiều đối tượng?
Từ SketchUp Desktop 2025.0, Entity Info hiện tổng thể tích của các đối tượng được chọn nếu tất cả đều là solid (ghi chú phát hành). Muốn danh sách theo component hoặc tag, hãy dùng SheetUp: Add row, rồi Component… hoặc Tag…, đánh dấu các mục và bấm Add N selected. Cột Volume hiện thể tích của từng dòng, và đặt Per là Volume thì dòng được tính tiền theo đó. SheetUp không cộng các thể tích thành một con số, vì dòng cuối của bảng chỉ cộng tiền; hãy xuất ra Excel rồi cộng cột Volume, lưu ý rằng dòng Component và dòng của một phần bên trong nó tính phần đó hai lần. From selection, trong cùng menu Add row, thêm một dòng Component cho mỗi component khác nhau đang chọn trong SketchUp, và dòng đó đo mọi instance của component ấy, không chỉ các instance đang chọn.

Group chứa các solid có thể tích không?
Trong SketchUp thì không: container có group lồng bên trong không được coi là solid (diễn đàn). Trong SheetUp, dòng Component của container đo nó bằng tổng các phần bên trong, mỗi phần nhân tỷ lệ của các cha, và thể tích chính xác khi mọi phần đều là solid kín. Dòng Tag thì cộng hình học riêng của từng component mang tag đó, nên mỗi phần chỉ được tính một lần.

Đổi đơn vị thể tích thế nào?
Trong SketchUp, mở Window > Model Info > Units và chọn đơn vị thể tích ở mục Length, Area and Volume (Managing Units of Measurement). SheetUp có nút chuyển Metric / Imperial trong Settings, nút ở góc phải thanh trên: thể tích hiện theo m³ hoặc ft³, không có đơn vị yard khối. Số lượng được tính theo hệ mét rồi đổi khi hiển thị, và giá nhập theo đơn vị đang hiển thị.

Thể tích hộp bao có đủ chính xác không?
Nó chỉ chính xác với khối hộp chữ nhật thẳng hàng với trục riêng của group. Với lăng trụ tam giác nó lớn gấp 2 lần, với hình trụ lớn hơn 27%, với hình cầu lớn hơn 91%, nên hãy sửa hình học cho mọi thứ tính tiền theo mét khối hoặc yard khối.

Miễn phí: giới hạn 3 lượt xuất mỗi ngày

Pro: không giới hạn, đảm bảo hoạt động, hỗ trợ ưu tiên

$48 $24 mua một lần
Tiết kiệm 50%
hoàn tiền trong 14 ngày
Mua Pro
Thêm công cụ SketchUp của 3dshouse
  • 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í
Nguyen Huu Khanh

Architect turned developer

Thuê tôi: viết plugin & phần mềm 3D theo yêu cầu. Từ $45/giờ.

khanhnhkts@gmail.com · 0914340133 · Zalo