Rhino上のBlock同士の組み合わせが何種類あるかを調べる
先日、無数のBlock同士の細かい位置ずれをチェックする方法という記事を書きました。こちらですね。この中で、関係する部材同士は紐づけできるようにあらかじめ仕込みをしておくことが大事です、ということについて触れました。
紐づけの方法として、ファスナーセット(ブラケット、ファスナー、インサートで1セット)には “ファスナーセットID” というKey/Valueを各Blockに仕込みました。今回はそのファスナーセットIDを仕込んでおくとこんなこともできます、という前回の続編的なものをご紹介しようと思います。
ファスナーとは何か、ファスナーセットIDとは何か、というのは前回記事の冒頭に書いてあるのでそちらを見てみてください。
ファスナーセットの組み合わせが全体モデル中に何種類あるか調べる
今回のサンプルではファスナーセットの組み合わせを前回より増やしました。ブラケット、ファスナー、インサートそれぞれに派生形のものを追加し、それらの組み合わせをランダムに作って全体モデルの中にいれています。
では早速やっていきましょう。といっても今回はスクリプト一回でおしまいです。ファスナーセットID毎にBlockの組み合わせを調べて、それぞれの組み合わせがいくつあるか、その組み合わせを構成しているBlockはなにか、をリストに書き出します。
そのスクリプトがこちらです。そして書き出されたリストはこちら。
これでモデル内にあるすべてのファスナーセットの組み合わせ一覧と、各組み合わせの個数がわかりました。
各組み合わせを一つずつピックアップする
では各セットを一つずつピックアップしましょう。実は先ほどのスクリプトでこの部分も行っていて、GUIDまで書き出しています。それがこちらです。
あとはこのリストをRhinoファイル上で読み込むと各組み合わせのサンプルがひとつずつ選択されます。
なぜこれが必要になったか -> プロジェクト後半でファスナーセットが増えて状況把握が困難に
プロジェクト初期ではファスナー形状も標準型のみを配置していくので、全体の状況把握もBlockの管理もさほど難しくありませんでした。しかしプロジェクト後半になるにつれ、建築側の事情により特殊対応がどんどんと増え、ファスナーのバリエーションも組み合わせもそれによって増えていきました。そして徐々に状況の把握が困難になり、
”今何種類のBlockがあって、何パターンの組み合わせがあるの?”
ということが起こりました。修正作業を複数人で行っていると、この辺りの管理もさらに難しくなってきます。そこで常にモデルを正として、最新モデルからファスナーセットの組み合わせがいくつあるか書き出すスクリプトを書くことで、モデルを見れば状況を把握出来るような環境を整えました。
前回記事で実はさらっと “参照用の組み合わせは二つです” と言って進めていた部分も、実際のプロジェクトでは上記のような工夫していました。(スクリプト自体も前回のサンプルファイルに入っている “00_export_fastener_set_id.py” がそれになります)
そのプロジェクトでは、最終的にファスナーセットの組み合わせが200を超えました。一度しか登場しない組み合わせもかなりの数ありました。しかしながら、ファスナー金物発注のための数量拾い、施工のためのファスナーセットの状況把握などは避けては通れません。この部分をプログラム化したことは、正確な状況を把握する上で大きかったように思います。
まとめ
数を数える、リストに書き出す、繰り返し同じ作業をする、といったような作業は人がやるとどこかで必ずエラーが起こります。機械的にチェックで出来る項目はなるべく機械に任せるようにすることでエラーの頻度はぐっと下げることができます。またプログラムを組むことで、スケーラブルに対応できるというのもメリットです。ただしいつも念頭においているのは、
- 手作業でチェックするのにかかる時間 <-> プログラムを書く時間
- 今回限りの作業か <-> 今後何回も繰り返し行う作業か
これらを常に天秤にかけて、状況に合わせて対応をしていくことです。実際の仕事はナマモノです。GHやスクリプトも、長期運用するか、単発使用かでアプローチを変えるように、その時の状況に適したやり方とクオリティのバランスを都度判断することが重要ではないかなと思います。
実際のプロジェクトでは予期できないことがよく起こりますしね(笑)
ではまた。
本日のサンプルファイルはこちらにまとめました。試してみたい方はどうぞ。