กลับไปยังบล็อก BIM และ IFC
การส่งมอบและ ISO 19650 · 2026-10-01 · 10 นาที
BCF 2.1 กับ 3.0: ทำไม viewpoint ของประเด็นจึงเปิดผิดตำแหน่ง
BCF ควรทำให้ประเด็นเดินทางข้ามเครื่องมือได้โดยไม่เสียหาย แต่ในทางปฏิบัติ กล้องไปโผล่ใต้ดิน กล่องตัดหายไป และป้ายกำกับก็หาย สาเหตุมีไม่มาก ชัดเจน และแก้ได้ และเมื่อรู้แล้ว คุณจะรู้ว่าควรไว้ใจเครื่องมือไหน
BCF 2.1 กับ 3.0: ทำไม viewpoint ของประเด็นจึงเปิดผิดตำแหน่ง — IFC Viewer Online article cover
BCF (BIM Collaboration Format) มีหน้าที่เดียว คือทำให้ประเด็นออกจากเครื่องมือหนึ่งแล้วไปถึงอีกเครื่องมือหนึ่งโดยบริบทยังครบ ทั้งความคิดเห็น ตำแหน่งกล้อง ชุดองค์ประกอบที่เลือก และอาจมีกล่องตัด เปิดประเด็นที่ไหนก็ควรเห็นภาพเดียวกับที่ผู้สร้างประเด็นเห็น
ใครที่เคยแลกเปลี่ยน BCF ระหว่างซอฟต์แวร์สามค่ายจะรู้ว่ามันพังบ่อยแค่ไหน กล้องเปิดใต้ดินหรือหันขึ้นฟ้า กล่องตัดหายไป ป้ายกำกับหาย ความคิดเห็นถูกตัดตรงเครื่องหมาย & ตัวแรก ไม่มีเรื่องไหนลึกลับ ทั้งหมดมาจากข้อผิดพลาดในการพัฒนาเพียงไม่กี่จุด
ข้างใน .bcfzip มีอะไรบ้าง
ไฟล์ BCF คือไฟล์ zip ข้างในมีโฟลเดอร์ละหนึ่งประเด็น แต่ละโฟลเดอร์มี markup.bcf (ตัวประเด็น ความคิดเห็น และรายการ viewpoint) ไฟล์ viewpoint .bcfv อย่างน้อยหนึ่งไฟล์ (กล้อง การเลือก การแสดงผล ระนาบตัด) และภาพ snapshot PNG ที่ไม่บังคับ ทั้งหมดเป็น XML ธรรมดา คุณแตกไฟล์แล้วอ่านได้ และเมื่อเครื่องมือทำงานผิดปกติ คุณควรทำ
issues.bcfzip
├── bcf.version
├── 1f2c…/
│ ├── markup.bcf ← topic, comments, viewpoint references
│ ├── viewpoint.bcfv ← camera, components, clipping planes
│ └── snapshot.png
└── 7a90…/
└── …
2.1 กับ 3.0: ความต่างที่ทำให้การนำเข้าพัง
ประเด็นเดียวกันใน BCF 2.1 และ 3.0 ความคิดเห็น viewpoint และป้ายกำกับย้ายเข้าไปใน Topic และในคอนเทนเนอร์
| หัวข้อ | BCF 2.1 | BCF 3.0 |
|---|
| ความคิดเห็นใน markup.bcf | อยู่ระดับเดียวกับ <Topic> | ซ้อนอยู่ใน <Topic><Comments> |
| รายการ viewpoint | อยู่ระดับเดียวกับ <Topic> | ซ้อนอยู่ใน <Topic><Viewpoints> |
| ป้ายกำกับ | องค์ประกอบ <Labels> ซ้ำ หนึ่งอันต่อหนึ่งป้าย | คอนเทนเนอร์ <Labels> หนึ่งอันที่มีลูก <Label> |
| กล้องแบบ perspective | ตำแหน่ง ทิศทาง เวกเตอร์ขึ้น มุมมองภาพ | เหมือนกัน และต้องมี AspectRatio |
| ค่าที่อนุญาต | โดยนัย ตกลงกันนอกไฟล์ | ประกาศไว้ในส่วนขยายของโครงการ |
| การรองรับในการใช้งานจริง | เกือบทั้งหมด | เพิ่มขึ้น แต่ไม่สม่ำเสมอ |
แบบจำลองข้อมูลแทบไม่เปลี่ยน แต่โครงสร้าง XML เปลี่ยน ตัวแยกวิเคราะห์ที่เขียนสำหรับโครงสร้างหนึ่งจะอ่านอีกโครงสร้างเป็นประเด็นที่ไม่มีความคิดเห็น
ให้อ่านตารางนี้เป็นรายการรูปแบบความล้มเหลว เครื่องมือที่หาความคิดเห็นข้าง Topic จะไม่พบเลยในไฟล์ 3.0 เครื่องมือที่คาดหวังคอนเทนเนอร์ Labels จะอ่านไฟล์ 2.1 ว่ามีป้ายเดียวหรือไม่มีเลย กล้อง 3.0 ที่ไม่มี AspectRatio ไม่ถูกต้องตาม schema และตัวนำเข้าบางตัวจะปฏิเสธ viewpoint ทั้งอัน
ทำไมกล้องจึงไปโผล่ผิดที่
IFC ใช้แกน Z ชี้ขึ้น ส่วน three.js ใช้แกน Y ถ้าไม่แปลง กล้องจะหมุนไป 90° ถ้าไม่คืนค่าการเลื่อน กล้องจะไปอยู่ผิดที่
กล้อง BCF ถูกเก็บในพิกัดโลกของโครงการ IFC หน่วยเป็นเมตร และแกน Z ชี้ขึ้น โปรแกรมดูบนเว็บส่วนใหญ่เรนเดอร์ด้วย three.js ซึ่งฉากมีแกน Y ชี้ขึ้น และหลายตัวเลื่อนโมเดลเข้าใกล้จุดกำเนิด เพื่อไม่ให้พิกัดอ้างอิงภูมิศาสตร์ค่ามาก ๆ สั่นบน GPU ทั้งสองเป็นการตัดสินใจด้านการเรนเดอร์ที่สมเหตุสมผล แต่ต้องย้อนกลับทั้งคู่ก่อนเขียน viewpoint
- ลืมแปลงแกน กล้องจะมาถึงแบบหมุนไป 90° มองขึ้นฟ้าหรือทะลุพื้นลงไป
- ลืมค่าการเลื่อนเพื่อแสดงผล กล้องจะหันถูกทิศ แต่อยู่ห่างจากโมเดลหลายร้อยเมตรหรือหลายกิโลเมตร
- แปลงกล้องแต่ไม่แปลงระนาบตัด มุมมองจะถูก แต่กล่องตัดไปตัดอีกที่หนึ่งโดยสิ้นเชิง
ปัญหาการเลื่อนจะยิ่งแย่ลงเมื่อการอ้างอิงภูมิศาสตร์ของคุณดีขึ้น เพราะพิกัดจริงเป็นตัวเลขขนาดใหญ่ ข้อมูลพื้นฐานอยู่ใน พิกัดและการอ้างอิงภูมิศาสตร์ของ IFC
การทดสอบ 10 นาทีสำหรับเครื่องมือ BCF ทุกตัว
- สร้างประเด็นหนึ่งที่มีครบทุกอย่าง กล้องแบบ perspective มุมเฉียง องค์ประกอบที่เลือกไว้สองชิ้น กล่องตัด ป้ายกำกับสามป้าย และความคิดเห็นที่มีเครื่องหมาย & เครื่องหมายคำพูด และตัวอักษรที่มีวรรณยุกต์หรือเครื่องหมายกำกับ
- export เป็น 2.1 และ 3.0 ถ้าเครื่องมือเขียนได้แค่เวอร์ชันเดียว ให้จดไว้ สักวันคุณจะเจอผู้รับที่ต้องการอีกเวอร์ชัน
- นำเข้าในเครื่องมือตัวที่สอง ตรวจทิศทางกล้อง ระยะห่างจากโมเดล การเลือก กล่องตัด จำนวนป้ายกำกับ และข้อความความคิดเห็นทีละตัวอักษร
- ส่งไปกลับ export อีกครั้งจากเครื่องมือตัวที่สอง แล้วนำเข้ากลับไปยังตัวแรก อะไรที่รอดการส่งต่อหนึ่งครั้งแต่ไม่รอดสองครั้ง สุดท้ายจะทำให้คุณต้องเสียเวลาประชุมเพิ่มอีกหนึ่งนัด
ตัว export BCF ของเราถูกเขียนใหม่หลังการทดสอบนี้เอง ตอนนี้ viewpoint ถูกเขียนตามแกนโลกของ IFC โดยถอดค่าการเลื่อนเพื่อแสดงผลออก ระนาบตัดเดินทางไปพร้อม viewpoint ป้ายกำกับ 2.1 ถูกเขียนเป็นองค์ประกอบซ้ำ และความคิดเห็นที่นำเข้าถูกอ่านครบถ้วนพร้อมถอดรหัส XML entity เครื่องมือเขียนได้ทั้ง 2.1 และ 3.0 เพื่อให้คุณเลือกตามผู้รับ
ข้อตกลงที่ทำให้ประเด็น BCF ถูกจัดการจริง
- หนึ่งประเด็นต่อหนึ่งสาเหตุ ไม่ใช่ต่อหนึ่งองค์ประกอบ ผนัง 400 ชิ้นที่ขาด property set เดียวกันคือประเด็นเดียวพร้อม viewpoint ตัวแทนหนึ่งอัน
- ใส่กฎหรือข้อกำหนดไว้ในชื่อเรื่อง “ขาด Pset_WallCommon.FireRating — เพิ่มในเทมเพลต export” ลงมือแก้ได้ แต่ “ข้อมูลไม่ครบ” แก้ไม่ได้
- ติดป้ายตามรีวิชัน ประเด็นที่เปิดในรีวิชัน 6 ควรระบุไว้ เพื่อไม่ให้การเปรียบเทียบภายหลังเปิดซ้ำ
- แนบ snapshot ทุกครั้ง เพราะนั่นคือสิ่งที่ผู้รับเห็นในกล่องจดหมายก่อนเปิดเครื่องมือใด ๆ และหลายครั้งก็เป็นสิ่งเดียวที่เขาดู
ตำแหน่งของ BCF ในชุดเอกสารส่งมอบทั้งหมด ข้างรายงานการตรวจสอบและใบนำส่ง อธิบายไว้ใน สิ่งที่ต้องส่งมอบพร้อมโมเดล IFC ส่วนการเปิดประเด็นอัตโนมัติจากการเปรียบเทียบรีวิชัน อยู่ใน วิธีเปรียบเทียบ IFC สองเวอร์ชัน
BCF 2.1 กับ 3.0: ทำไม viewpoint ของประเด็นจึงเปิดผิดตำแหน่ง