กลับไปยังบล็อก BIM และ IFC
แก้ไขการส่งออก · 2026-06-03 · 9 นาที
ทำไมไฟล์ IFC ขนาดใหญ่จึงทำให้เบราว์เซอร์ล่ม (และวิธีเปิดดูโมเดลขนาด 1 GB)
โมเดลรวม IFC ขนาด 600 MB ใช้ RAM 1.7 GB เฟรมเรตเหลือ 3 เฟรมต่อวินาที แล้วแท็บก็ล่ม ไฟล์ IFC ขนาดใหญ่ทำให้โปรแกรมดูบนเว็บส่วนใหญ่ใช้งานไม่ได้ด้วยเหตุผลทางเทคนิคที่ชัดเจน บทความนี้อธิบายว่าเกิดอะไรขึ้นจริง ๆ และจะเปิดโมเดลขนาดนั้นได้อย่างไรโดยไม่ต้องใช้เซิร์ฟเวอร์หรือเวิร์กสเตชันระดับสูง
ทำไมไฟล์ IFC ขนาดใหญ่จึงทำให้เบราว์เซอร์ล่ม (และวิธีเปิดดูโมเดลขนาด 1 GB) — IFC Viewer Online article cover
ทุกคนที่ทำงานกับโมเดลรวม (federated model) ต้องเจอกำแพงเดียวกัน ไฟล์ IFC ที่รวมงานสถาปัตยกรรม โครงสร้าง และงานระบบ (MEP) เข้าด้วยกันมีขนาดตั้งแต่ 600 MB ไปจนถึงเกิน 1 GB และทันทีที่คุณพยายามเปิดในเบราว์เซอร์ พัดลมจะเริ่มหมุนดัง หน่วยความจำพุ่งเกิน 1.7 GB เฟรมเรตลดลงเหลือเลขหลักเดียว และสุดท้ายแท็บก็ล่ม ไม่ใช่เพราะคุณทำอะไรผิด แต่ไฟล์ IFC ขนาดใหญ่ทำให้โปรแกรมดูบนเว็บส่วนใหญ่พังด้วยเหตุผลที่เฉพาะเจาะจงมาก
- 1 GB+ — โมเดลรวมทั่วไป
- 1.7 GB — RAM ที่ใช้แม้ปรับให้เหมาะสมแล้ว
- 3 FPS — โมเดลที่ไม่ได้ปรับให้เหมาะสม
- 12× — ช้ากว่า: โอเพนซอร์สเทียบกับเชิงพาณิชย์
ทำไมไฟล์ IFC ขนาดใหญ่จึงทำให้เบราว์เซอร์ล่ม
การแยกวิเคราะห์แบบเธรดเดียว
การแปลงข้อความ IFC เป็นรูปทรงเรขาคณิต 3 มิติใช้ CPU หนักมาก และโดยทั่วไปทำงานบนเธรดเดียว ต้องแยกวิเคราะห์ (parse) ทั้งไฟล์ให้เสร็จก่อนจึงจะแสดงผลอะไรได้ หน้าจอ (UI) จึงค้างระหว่างที่ประมวลผล
เพดานหน่วยความจำ
แม้โมเดลที่ปรับให้เหมาะสมแล้วก็อาจใช้ RAM ราว 1.7 GB บนแล็ปท็อปที่มี RAM 8 GB เบราว์เซอร์จะชนขีดจำกัดหน่วยความจำต่อแท็บ และโพรเซสเรนเดอร์ (renderer) จะถูกปิดลง นั่นคือหน้า “แท็บขัดข้อง” ที่คุณเห็น
ต้นทุนของการเทสเซลเลชัน
เรขาคณิตใน IFC มักกำหนดเป็นทรงตันแบบพาราเมตริก เช่น การอัดรีด (extrusion) และการกวาด (sweep) การแปลงเป็นเมชสามเหลี่ยม (tessellation) สำหรับ WebGL ทำให้ทั้งปริมาณข้อมูลและงานประมวลผลเพิ่มขึ้นหลายเท่า กลายเป็นสามเหลี่ยมนับล้านชิ้นที่ต้องส่งไปวาดทุกเฟรม
โหลดทุกอย่างก่อน
โปรแกรมดูส่วนใหญ่ดาวน์โหลดและแปลงทั้งไฟล์ตั้งแต่แรก ทั้งที่ในแต่ละช่วงเวลาคุณดูเพียงส่วนเล็ก ๆ ของโมเดลเท่านั้น และจะไม่มีอะไรแสดงผลเลยจนกว่าจะประมวลผลครบทั้งหมด
ทำไมโปรแกรมดูโอเพนซอร์สจึงรู้สึกช้ากว่าโปรแกรมเชิงพาณิชย์
ผลการทดสอบจากชุมชนที่มีการแชร์กันอย่างกว้างขวางแสดงให้เห็นอย่างชัดเจนว่า โมเดลงานระบบไฟฟ้าขนาด 288 MB ใช้เวลาโหลดราว 830 วินาทีในเครื่องมือโอเพนซอร์สตัวหนึ่ง เทียบกับราว 67 วินาทีในโปรแกรมดูเชิงพาณิชย์ หรือช้ากว่าเกิน 12 เท่า ช่องว่างนี้ไม่ใช่เวทมนตร์ โปรแกรมดูเชิงพาณิชย์มักหลีกเลี่ยงการเทสเซลเลชันเต็มรูปแบบด้วยการแสดงรูปทรงพาราเมตริกโดยตรงมากขึ้น และประมวลผลโมเดลล่วงหน้าบนเซิร์ฟเวอร์ให้อยู่ในรูปแบบที่เหมาะกับการสตรีม ก่อนที่คุณจะเปิดดูเสียอีก
830 วินาทีในโปรแกรมดูโอเพนซอร์ส เทียบกับ 67 วินาทีในโปรแกรมเชิงพาณิชย์ เคล็ดลับอยู่ที่ตรงไหนกันแน่
IfcOpenShell GitHub — การเปิดดูโมเดลรวมขนาดใหญ่
“เคล็ดลับ” นั้นคือการประมวลผลล่วงหน้าและการสตรีม และนั่นก็คือข้อจำกัดเช่นกัน ไปป์ไลน์โอเพนซอร์สที่เร็วที่สุด (แปลง IFC เป็น XKT ของ xeokit หรือเป็น glTF) ต้องอาศัยความรู้ทางเทคนิคและเซิร์ฟเวอร์สำหรับการแปลง ซึ่งไม่ใช่ปัญหาสำหรับทีมพัฒนาผลิตภัณฑ์ แต่ไม่ใช่สิ่งที่ผู้ประสานงาน BIM จะทำได้กับไฟล์ที่ลูกค้าเพิ่งส่งอีเมลมาให้
กลยุทธ์ที่ช่วยได้จริง
- แปลงครั้งเดียว โหลดได้หลายครั้ง: แยกวิเคราะห์ไฟล์ IFC เป็นรูปแบบเรขาคณิตที่โหลดเร็ว (Fragments, XKT หรือ glTF/GLB) เพียงครั้งเดียว แล้วโหลดรูปแบบนั้นทุกครั้งที่เปิดในภายหลัง การแยกวิเคราะห์ IFC ขณะเปิดใช้งานช้าเกินกว่าจะทำซ้ำทุกครั้ง
- การแบ่งไทล์ (tiling): แบ่งโมเดลออกเป็นส่วนย่อยตามพื้นที่ เพื่อให้โหลดและวาดเฉพาะส่วนที่อยู่ใกล้กล้อง
- การคัดทิ้ง (culling): ข้ามเรขาคณิตที่อยู่นอกจอหรือถูกบดบัง แทนที่จะส่งไปยัง GPU ทุกเฟรม
- การบีบอัดเรขาคณิต: ขจัดองค์ประกอบที่ซ้ำกัน (สลักเกลียวหรือลูกกรงที่เหมือนกันทุกชิ้นอ้างอิงเมชเดียวกัน) และลดความละเอียดของพิกัด (quantization) เพื่อลดขนาดข้อมูล
- ลดขนาดไฟล์ก่อนเปิด: ส่งออกเฉพาะสาขางานที่ต้องใช้ และบีบอัดเป็น zip (ifcZIP) สำหรับการส่งต่อ
วิธีเปิดโมเดลขนาดใหญ่โดยไม่ต้องใช้เซิร์ฟเวอร์หรืออัปโหลด
โปรแกรมดูของเราแยกวิเคราะห์ไฟล์ IFC ฝั่งไคลเอนต์ด้วย WebAssembly และแคชเรขาคณิตที่แปลงแล้วไว้ใน Origin Private File System ของเบราว์เซอร์ การแยกวิเคราะห์ซึ่งใช้ทรัพยากรสูงจึงเกิดขึ้นเพียงครั้งเดียว และการโหลดซ้ำเร็วขึ้นราว 10 เท่า ไม่มีขั้นตอนอัปโหลดและไม่ต้องตั้งค่าเซิร์ฟเวอร์ คุณได้ประโยชน์แบบแปลงครั้งเดียวเหมือนไปป์ไลน์เชิงพาณิชย์โดยไม่ต้องส่งโมเดลไปที่ใด การรวมโมเดลหลายสาขางานไว้ในมุมมองเดียวก็ทำได้แบบเดียวกัน เพียงโหลดทีละโมเดลต่อกันไป
เปิดโมเดลขนาดจริง
โมเดลงานสถาปัตยกรรม IFC4 ฉบับเต็มที่ส่งออกจาก Revit ในขนาดของงานจริง เปิดดูว่าไฟล์ขนาดใหญ่โหลดและแคชในเบราว์เซอร์อย่างไร จากนั้นลองกับโมเดลรวมขนาดใหญ่ของคุณเอง
IFC4 · 14 MB
เปิดโปรแกรมดู IFC แบบอินเทอร์แอกทีฟ
สรุปได้ว่า คุณไม่จำเป็นต้องมีเวิร์กสเตชัน RAM 64 GB หรือแพลตฟอร์มแบบเสียเงินเพื่อตรวจดูโมเดลขนาด 1 GB สิ่งที่คุณต้องการคือไปป์ไลน์ที่แยกวิเคราะห์เพียงครั้งเดียว แคชผลลัพธ์ไว้ และวาดเฉพาะส่วนที่คุณกำลังดู ซึ่งทั้งหมดนี้ทำได้ในแท็บเบราว์เซอร์แท็บเดียว
ทำไมไฟล์ IFC ขนาดใหญ่จึงทำให้เบราว์เซอร์ล่ม (และวิธีเปิดดูโมเดลขนาด 1 GB)