Grasshopperを使ったデザインでは、これまでスムーズで連続的なパラメーター(例えばAからBまでのスライダー)を扱うことが多かったかもしれませんね。しかし、実際の建築ルールやデザイン要件は、しばしば「もし〜ならば、〜する」という条件に基づいています。例えば、「エントランス付近のパネルであれば開く」、「負荷が閾値を超えたら柱のサイズを大きくする」といった具合です。

はじめに: デザインに「もしも」を組み込む

このような「IF/THEN」のロジックこそが、今回ご紹介するブーリアンロジックです。Grasshopperにブーリアンロジックを導入することで、あなたのデザイン定義は初めて「意思決定」を開始します。特にDispatchコンポーネントと組み合わせることで、条件に基づいてジオメトリをグループに分割し、それぞれに異なる処理を施すことが可能になります。これにより、より現実世界に即した、応答性の高いデザインが実現できるようになりますよ。

ブーリアンロジックの基本要素

条件分岐を構築するためには、まず条件そのものを定義する必要があります。ここではいくつかの重要なコンポーネントが登場します。

* Construct Domain: 数値の範囲を定義する際に使います。例えば、「0から100の間に収まるか」といった条件の土台を作ります。
* Larger Than / Smaller Than: 特定の値と比較して、その結果がTrue(真)かFalse(偽)かを判断します。「〜より大きいか?」「〜より小さいか?」というシンプルな比較を行います。
* Gate And / Gate Or: 複数の条件を組み合わせるためのコンポーネントです。例えば、「AかつB」が両方Trueの場合にTrueを返すGate Andや、「AまたはB」のどちらか一方がTrueであればTrueを返すGate Orを使って、より複雑な条件式を構築できます。

条件に応じたジオメトリの振り分け: Dispatch

ブーリアンロジックでTrue/Falseのパターンが生成できたら、いよいよそれをデザインに適用します。その中心となるのがDispatchコンポーネントです。

Dispatchは、入力されたリストをブーリアンパターン(True/Falseのリスト)に基づいて二つのグループに分割します。例えば、ある条件を満たした要素はAグループへ、満たさなかった要素はBグループへ、といった形で振り分けが可能です。これにより、条件を満たすジオメトリには特定の処理(例えば、サイズを大きくする、色を変える)を施し、満たさないジオメトリには別の処理を施す、といった柔軟なデザインが可能になります。

実践: アトラクターベースのファサード構築

具体的な応用例として、アトラクターベースの条件付きファサードを構築してみましょう。あるポイント(アトラクター)からの距離に基づいて、ファサードパネルのサイズや形状を変えるデザインです。

1. まず、Construct Domainでパネルサイズの変化範囲を定義します。
2. 次に、Larger ThanSmaller Thanを使って、アトラクターからの距離が特定の閾値を超えているか否かを判断し、True/Falseのパターンを生成します。
3. このパターンをDispatchに渡し、パネルのリストを二つに分割します。
4. そして、Center Boxコンポーネントを使って、分割された各グループのポイントを中心にボックスを構築します。この際、アトラクターからの距離に応じてCenter Boxのサイズをスライダーで制御すれば、インタラクティブで応答性の高いファサードデザインが実現します。

まとめ: デザインの可能性を広げる条件分岐

Grasshopperにおけるブーリアンロジックは、単なる見た目の変化だけでなく、機能的な要件や環境条件に応じたインテリジェントなデザインを可能にする強力なツールです。今回ご紹介したコンポーネントをマスターすることで、あなたのパラメトリックデザインは、より洗練され、現実世界の問題解決に貢献する一歩を踏み出すでしょう。ぜひ、このロジックを使いこなし、デザインの可能性を無限に広げてください。