2015年10月11日日曜日

ダイナモ白熱教室(10)-スイープ

前回はライノセラスで作成したサーフェイスをスライスするところまででした。
前回の終了時とはカットプレーンの位置が異なりますので、どうすればこうなるか考えてみてください。

今回はこのスライスで作成されたポリカーブ(切断線)に沿って、円をスイープしてみます。

List.Create


前回の最後でのノードGeometry.IntersectAllから作成された切断カーブのリストを一つに統合します。List.Createノードのプラスをクリックし、下の図のようにつなぐと、二つのリストが一つのリストにまとまります。これをFlattenにつないで、NuebsCurveの1次元のリストを作成します。
切断カーブのリストをまとめる

PlaneAtParameter


次に各NurbsCurveの始点にプロファイルとなる円を描く平面を作成します。始点なので、パラメーターは0です。
切断カーブの始点の平面を取得

この平面は切断カーブに対して垂直であることに注意してください。

Circle.ByPlaneRadius
NumberSlider

作成した平面上に任意の半径をもつ円を作成します。
プロファイルの円を作成

Surface.BySweep

この円を各カーブに沿ってスイープします。
切断カーブに沿ってスイープ
Plofileには作成した円のリストを、pathには切断カーブのリストをつなぎます。二つのリストは並び方が同じなので、レーシングを最短に設定することで、適切な関係を築くことができます。
レーシングは「最短」

Importinstance.ByGeometries
Importinstance.ByGeometry

次は作成されたジオメトリをRevitに取り込みます。Revitはプロジェクトでもファミリでも構いません。ここまでで作成されたジオメトリは次のように複数のサーフェイスです。

複数のSurfaceでできている。

これらを別々のジオメトリとして取り込む場合は「Importinstance.ByGeometry」を使い、ひとかたまりのジオメトリとして取り込む場合は「Importinstance.ByGeometries」を用います。なんだか反対のような感じのネーミングなので注意してください。
Revitに取り込む
Revitに取り込まれたジオメトリ
スライダを動かして、分割数や、プロファイルの半径を変更すると、Revitに取り込まれたジオメトリも同時に変化します。
分割数を10、半径を1.5にしてみる
Revitに取り込んで検討

Dynamoを利用すると、様々なパターンの検討を短時間に行うことができます。