Rhino/Grasshopperで日影図を

日影図といえばJw_cad ! ですが…

久しぶりに日影の検討が必要になった。せっかくBIMを使っているのだから、BIMのプラグイン/エクステンションソフトを購入すれば便利であるのは十分承知なのだが、経費削減の為、日影の検討が必要な際は毎度「Jw_cad」にお世話になっている。Jw_cadは、メードインジャパンのシンプルで非常に優れた建築CAD。日影図だけでなく天空図まで作成でき、確認機関でもJw_cadで作成した日影図/天空図を受け付けてくれる公認のソフトである<図1>。

<図1>Jw_cadで作成した日影図

Jw_cadを使えば正確な日影図や天空図が作成できるのだが、建物の高さの設定が少々面倒である。特に筆者は普段Jw_cadを使ってないので、日影や天空の検討が必要になると、Jw_cadの操作を思い出しながらの作業になるのでさらに面倒となる。日影とJw_cadは忘れた頃にやってくる。またJwは2DCADであり、他のソフトで作成した3Dモデルは(確認してないが)読み込めない(はず)。そもそもJwの日影/天空の3Dは建物の頂点に高さ情報が入った準3Dモデルに過ぎない。

そこでRhinoでつくった3DモデルからGrasshopper(以下GH)を介して日影図が作成できなかと思い立つ。手軽に3Dを作れるRhinoならボリュームスタディなど設計の初期の段階では非常に役に立つだろう。ということでRhino/GHで日影図の生成に挑戦してみたので以下紹介したい。太陽の位置情報はJw_cadの壁倍率表から得ることが出来る<図2>。このパラメーターを利用し、Jw_Cadと比較すれば、Rhino/GHで生成した日影の正誤が検証できる。


<図2>Jw_cadによる壁倍率表

太陽の方向、方位角と高度

ファーストステップは、太陽の方向、すなわち方位角と高度のベクトルへの変換。まずは、冬至9:00の太陽(時刻,高度,方位角)(9.0, 17°09′,-42°46′)のベクトルを作る。上記Jw_cadの表の数値は小数点以下が60進法なので10進法(9.0, 17.15°,-42.77°)にしておく。ノースアップなので+Y方向が北、+X方向が東<図3>。

<図3>Yベクトル0°(北向き)

我々の日本の太陽は南側にいらっしゃるので180度回転し、ベクトルの向きを確認する<図4>。

<図4>Yベクトル180°(南向き)

9:00の太陽方位角「-42.77°」

これを9:00の方位角「-42.77°」に回転する<図5>。これだと西日になっているので、

<図5>「-42.77°」入力すると夕日(西日)

マイナス数値をプラスに変え、反転させる。これで9:00の方位角「-42.77°」のベクトルの設定完了<図6>。
<図6>「+42.77°」で朝日

9:00の太陽高度「17.15°」

まだ太陽はべったっと地面に張り付いている。次にいよいよ9:00の高度「17.15°」を設定し、太陽を天空に上昇させる。回転の基準となる面の作成は「Plane Normal」で法面を抽出するやり方。そして「17.15°」回転し、9:00の太陽(9.0, 17.15°,-42.77°)のベクトルが作成する<図7>。


<図7>「Plane Normal」で法面を抽出

ここまで出来ればゴールは近い。後は9:00から15:00までリストでまとめてベクトルを取得すれば良い。リストは(9.0,17.15,-42.77),(9.5,21.05,-36.75)—-(15.0,17.15,42.77)というように点座標の形式にすると、時間毎の高度と方位角が抽出しやすい。(9:00,17.15,-42.77),(9:30,21.05,-36.75)—-(15:00,17.15,42.77)とするとX座標がエラーが出てしまうので時刻を小数点表示している。リストを使った抽出法は他にあると思うが筆者の苦肉の策。このリストを先のコンポーネントに接続すると、<図8>のように9:00から15:00までの30分毎の太陽ベクトルが取得できる。
<図8>9:00から15:00までの冬至の太陽の軌跡
ここではどういうわけか9:00から15:00で検討していますが、日影規制はほぼ8:00-16:00ですのでご注意ください。念のため。追記220224

影の投影、Project Along!

いよいよ影を地面に落とす。RhinoにはProject というコマンドがあって、オブジェクトを面に投射(Project )することができる。Project Alongというコマンド(正確にはGHではコンポーネント)で投射のベクトルを太陽のベクトルにつなげると、9:00から15:00までの影がXY平面に投射できる!<図9> 2次平面だけでなく、球などの曲面にも投射できる。なので天空図などもRhinoを使えば描くことができる訳であるが、GHでの天空図は別の機会に検討することにしよう。天空が使用可能かどうかはだいたい直観的に分かるケースが多いので必要ないかしら?


<図9>Project Along

これだと地面に影が落ちてしまっている。日影図は測定面と言われる1.5m, 4m, 6.5mの面に落とす影なので、地面を4mの高さに上げる。すると南側にしっぽが出てしまう<図10>。測定面より下のモデルを切り取る必要がある<図11>。

<図10>測定面を設定すると南側にも影が落ちる


<図11>「Split Brep」で測定面より下をカットする。カットする面は「Plane Through Shape」で一回り大きいカット面を作ると便利。スプリットなのでBrepが2つできるので、上のBrepを選択することを忘れずに。

トップビューで確認<図12>。最初にJw_cadで作成した時間日影図<図1>と無事に一致。


<図12>Rhino/GHで作成した時間日影図、Jw_cadで作成した<図1>と一致

等時間日影図

時間日影図を作成すると、2.0h、2.5h、3.0h、4.0h、5.0hの等時間日影図は時間日影図の交点をコツコツと抽出すれば良い。下は2.0h等時間の作成の為の9:00と11:00の影が重なる範囲<図13>。


<図13>9:00と1:00の影が重なる範囲

後は「9:00&11:00」「9:30&11:30」—「13:00&15:00」と重なる範囲をまとめて取り出す<図13>。等時間図としては影の先端を曲線で結ぶ(=微分する)必要があるが、先端が5mラインや10mラインに収まっているか否かを確認すれば良いのでこれで十分。正直言うと、試みたが早々とあきらめる。

<図14>2時間の等時間日影

2.0hを作れば、それをコピーして2.5h、3.0h、 4.0h、5.0hのセットに修正は簡単<図15>。もっとスマートなコードはあると思いますが。。

<図15>2.0hから2.5h、3.0h、 4.0h、5.0hの等時間を作成

検証

それではこのスクリプトでどんな計算結果がでるか検証してみよう。丹下健三のフジテレビばりのゲート型の形状や、ロフトによるスパイラルタワーなどの時間日影図と2.0h等時間日影図は問題なく生成<図16>。形状が複雑になればなるほど計算に時間がかかるので、出力されるまで我慢。「フリーズしたかな?」と思ったが3分も待てば生成。2.0h、2.5h、3.0h、 4.0h、5.0hのすべての等時間のコンポーネントセットがあるので、使用しないものは「enabled」を「off」にしておくとよろしいかと。


<図16>ライノで作成したボリュームをGHで影を生成

スパイラルタワーは抽出できたのだが<図17>、


<図17>スパイラルタワー(OK)

コーンや球体の影が落ちない<図18>。なぜか?上記の方法ではエッジ(Edge)が無いと外形が抽出できない為である。


<図18>コーンの影が落ちない(NG)

コーンはエッジを作るため多面体で作成すれば無事に影が落ちる<図18>。32面体で確認。

<図19>多面体にすると影が作れる

これで某プロジェクトの設計準備完了!

これから元気にコーンやスパイラルタワーを提案するというわけではございませんので、あしからず。

2021.10.10 HN