Grasshopper儲存格式中 *.gh 和 *.ghx 的不同之處 ?
◤ 概要
眾周知用Grasshopper儲存檔案時,我們最常看到的檔案形式便是「*.gh」。它是不作任何其他特別設定時GH(之後簡稱Grasshopper為GH)的預設儲存格式。
不過,實際上GH可以被儲存成兩種格式,分別為「*.gh」與「*.ghx」,它們的功能上並無差異,唯使用情境有所不同。
GH的資料以「階層式資料庫模型(hierarchical)」與「型別安全(type-safe)」的方式儲存。並且透過GH_IO.dll來做定義與管理。資料可以透過二進位制或是文字形式來讀寫。
回顧歷史,在最早GH還被稱為「Explicit History」的那個時代,當時它是用叫做「WRM」的格式儲存。這個格式非常對筆者我來說也非常古老,我沒有實際用過,因為寫文章需要蒐集資料的關係才知道。總之讀者妳各位只需要知道因為這個格式很難用,所以後來的GH捨棄了這個儲存方案。自從GH 版本0.8.0050之後,它預設的儲存格式就是「*.gh」。
◤ 「*.gh 」格式
定義: 以二進位制儲存。「g」與「h」來自Grasshopper。
特性:
- 二進位制儲存
- 無法以肉眼閱讀
- 難以用程式解析。換句話說,對作者的程式具有一定程度的保護機制。
- 儲存效率好。檔案開啟/儲存的速度快很多
- 只能以GH環境開啟
◤ 「*.ghx 」格式
定義: 以文字儲存。「x」是XML的意思,支援跨平台編輯。
特性:
- 文字儲存
- 可以肉眼解讀
- 支援跨平台編輯
- 檔案儲存占用空間大,約為 *.gh 的10到1000倍
- 使用剪貼簿功能時會以此方式暫存
*.ghx 的種種特性都讓它可以透過文字編輯更改檔案內容,例如我們可以在 VSCode 編輯一些基本的 component 位置資訊;或是在不開啟檔案的狀態下由外部就能知道這個檔案用了哪些 component 與使用數量。
另外當檔案不小心不幸損毀時,理論上也是 *.ghx 相對 *.gh 容易救。
總結來說,如果你沒有特別的需求的話,基本上 *.gh 的形式會相對適合妳,因為它已經足夠支援在GH環境中的各種編輯活動。然而妳如果希望可以更進一步跟GH的環境做客制化的互動,做一些跨平台的事情,甚至利用 Git (一種 version control system ) 進行版本管理,那麼 *.ghx 就是妳可以考慮前進的方向。
參考資料:
What is the difference between *.gh and *.ghx
(https://www.grasshopper3d.com/forum/topics/what-is-the-difference-between-gh-and-ghx)
4.10 GH vs GHX File Formats - Advanced Development in Grasshopper
(https://youtu.be/910CFXL4rUY)
New: GhToGhx - A Tool for Converting and Compressing Grasshopper Files
(https://discourse.mcneel.com/t/new-ghtoghx-a-tool-for-converting-and-compressing-grasshopper-files/78707)
留言
張貼留言
please leave a message