vicc blog

株式会社ヴィックの技術ブログです。

ゼロ埋めのすすめ

みなさんはゼロ埋め(ゼロパディング / Zero Padding)という言葉に馴染みはありますか?
知らないという方は、まずは以下のWikipedia記事を確認してみてください。

ja.wikipedia.org

一言で説明すると、ゼロ埋めとは桁数の異なる数字をゼロで埋めることで桁数を合わせ、操作性や視認性を高めるちょっとした工夫です。

BIM と呼ばれるような技術を有効に活用するには、ただ形状を作るだけではなく、情報も合わせて適切にハンドリングすることが非常に重要です。*1

情報をハンドリングする上で知っておくと便利なゼロ埋めについて社内で議論があったので、今回の記事ではそこで挙がった意見をいくつか紹介します。

 

ゼロ埋めで嬉しいこと

出た意見を列挙します。

ゼロ埋めをしないと接頭辞があるデータをキレイに並び替えられない。(篠原)

クラウドストレージでのファイル表示やライノのレイヤーの順序、エクセル操作などで、ゼロ埋めをすることによりソフト内の既存のソート機能で人間が嬉しい順序にソートできる*2。(吉岡)

文字列の一部として数字を埋め込む場合・文字列として数字が扱われる場合は、ソート等が気持ちよくできないのでゼロ埋めしたほうがよい。Rhino の UserText (KV) も基本的には文字列なので、同様に、並べ替えしたりするときとかに型変換しないときれいに並ばない。(堀尾)

文字数が固定長であることでデリミタを使わずに切り分けることができる。
設置階&枝番で構成される金物符号を考えると...

  • F-0101, …., F-1201
  • F-101, … , F-1201

最初の桁を切り出して判断しようとすると1階なのに10階だと判定されてしまう。後ろから切り出しするというような対処法もあるが煩雑になりがち。(石原)

バッチ処理で複数の処理を決まった順番にかけたいときに*3、ゼロ埋めしていない文字列(ここではファイル名)をテキストとしてソートして処理すると 1 の次に 10 の処理が走ることとなる。それを防ぐためにファイル名から数字抜き出してソートする必要がありそれが面倒。(小野田)

並び替えや文字列処理の観点からの意見が多いですね。
GrasshopperやExcelで多量のデータを扱うときにはこれらの観点が非常に重要で、作業を手早く簡単に済ませることや、ミスを減らすことなどが期待できます。

また、ゼロ埋めの派生テクニックとして以下のようなアイデアがでました。

(エクセルでの表示に関して)勝手に表示形式が設定される時に 0001 が勝手に 1 と表示されることがある。セルの表示設定の変更で解決するがそれは面倒なので、9001 とするとエクセルに勝手に1にされない。(矢部)

どうせなら頭に文字を置くならば意味のある文字をおいて、F (rame) 0001 とかにしておく方がベターか?。(吉岡)

Grasshopperのプラグインを使って、Excelに大量の情報を直接書き込むことが多く、このときにセルの設定を調整するのは難しいのですが、情報の意味を損なわない範囲で調整するのが良さそうですね。

 

ゼロ埋めしなくてもいい、しないほうがいいなど

ゼロ埋めは便利なので積極的に採用するのが良さそうだと思いつつ、反対の意見も出てたので紹介します。

データを並び替える必要がそもそもないと考えているので、ゼロ埋めは不要。(篠原)

文字数を減らして書くときに楽をしたい。(石原)

単純にX01が見た目的に気持ち悪い、X1がよい。(石原)

文字列処理する時に、ゼロ埋めして固定長を作るまでもなく正規表現で十分。(篠原)

json などフォーマットによっては型が付くのでゼロ埋めしないほうが扱いやすい場合もある。(堀尾)

正規表現を使える環境があることや、エクセルでの並び替えはしないことが前提な部分も一部ありますが、なにかのアプリケーションなどを使う上でクリティカルな障壁になるというような意見は無いようです。
(ゼロ埋めを良しとしている中でひねり出したので少なめです)

 

ここまでライノユーザからの声が多かったので、Autodesk や Revit といった環境でのルールなどがあるのかを社内で聞いてみました。

Autodesk などからは、どちらが推奨というのは特に名言されていない。プロジェクトチームで計画して、BIM 実行計画書*4に書くべき。(ヨンチョル)

ソフトウェアの販売会社から特に明言されていないようです。今回は調べ切れていませんが、手練れの CAD ユーザのテクニックや BIM モデルの運用についてのベストプラクティスやデファクトスタンダードなどがあるのか継続的にウォッチしていきたいところです。

ゼロ埋めに対してほかにこんな考えがあるという方はぜひコメントをください!

 

まとめ

今回の議論で、ゼロ埋めはとても有用であり積極的に採用すべし、という共通見解が明らかになりました。

ヴィックでは、このような議論を交わしながら生産設計BIMの仕事に取り組んでいます。
大量の情報の取り扱いに困っている方はぜひ弊社にご連絡ください!

vicc.jp

 

 

 

*1:Rhino で属性情報を利用することについてはこちらの記事で紹介しています。

blog.vicc.jp

*2:Windows XP 以降の Explorer では気の利いた自然ソートが使われているようです。そのためゼロ埋めしなくても Explorer の表示ではそれっぽく並びます。

days-of-programming.blogspot.com


*3:そのようなバッチ処理について、この記事で詳しく書きました。

blog.vicc.jp

*4:BIM 実行計画書について、この記事で詳しく書きました。

blog.vicc.jp