【Revit+Dynamo】レーシングオプションを理解してリスト入力を簡単に組み合わせる

Dynamo入門

「デジケン」管理人のpannaです。今回はDynamoの重要な機能であるレーシングオプションを解説します。

その他に初心者のためのチュートリアル記事もまとめていますので興味があればご確認ください。

【Revit Dynamo入門】初心者のためのチュートリアル目次

スポンサーリンク

レーシングオプションとはどんなものか

すでに使用している方でもあまり馴染みのない方もいるかも知れません。 レーシングオプションは次の画像の赤丸の部分です。右クリックで変更できます。

レーシングオプションには次の3種類があります。

  • 最短リスト(Shortest):最短のリスト長でリスト同士を組み合わせる
  • 最長リスト (Longest) :最長のリスト長でリスト同士を組み合わせる
  • 外積 (Cross Product) :すべての組み合わせで組み合わせる

それぞれの説明を行います。

最短リスト(Shortest) ってどんなもの

長さ4のリストと長さ3のリストを組み合わせる場合にレーシングオプションの最短リストを選択する場合は次のように組み合わせられます。

これは簡単ですね。最短となるように組み合わせるイメージです。このとき、各リストのインデックス(番号)の若い順に組み合わせが行われます。

最長リスト(Longest) ってどんなもの

長さ4のリストと長さ3のリストを組み合わせる場合にレーシングオプションの最長リストを選択する場合は次のように組み合わせられます。

最長リストの場合は、最長リストの長さに合わせて組み合わせが行われます。しかし、上のリストのインデックス3との組み合わせは下のリストの2となります。(画像内黄色の線)

外積(Cross Product) ってどんなもの

長さ4のリストと長さ3のリストを組み合わせる場合にレーシングオプションの外積を選択する場合は次のように組み合わせられます。

これは全通り組み合わせるということですね。

レーシングオプションの概念を図示しましたが実際の作業でどうなるのかよく分からないので、レーシングオプションを変更することでどのような変化があるか確認しましょう。

レーシングオプションを感覚的に理解する

各オプションの違いを解説しましたが、実際どのように変わるのかイマイチわかりにくいのでレーシングオプションとはどんなものか感覚的に理解しましょう。

今回は点を作成する中で、レーシングオプションを変更してどのような変化があるかを確認したいと思います。 まずは点を作成します。

点を作成する

点を作成するには「Point.ByCoordinates」を使用します。こちらがよくわからない方は次の記事を確認しましょう。

初心者のためのチュートリアルA01|点を作成する

今回は、まずリストを3つ用意してそれぞれをX, Y, Z座標として点を作成します。ここで、一つ注意することがあります。この3つのリストは次のように長さが異なります。

  • X座標のリスト:(0, 10, 20, 30)→ リスト長さは4
  • Y座標のリスト:(0, 10, 20) → リスト長さは3
  • Z座標のリスト:(0, 10, 20, 30) → リスト長さは4

組み合わせるリストが3つで長さが異なります。

レーシングオプションを変更して変化を見る

先ほど紹介したようにレーシングオプションには次の3種類があります。

  • 最短リスト(Shortest):最短のリスト長でリスト同士を組み合わせる
  • 最長リスト (Longest) :最長のリスト長でリスト同士を組み合わせる
  • 外積 (Cross Product) :すべての組み合わせで組み合わせる

最短リスト(Shortest) で点を作成する

最短リストは最短のリスト長でリスト同士を組み合わせる方法でしたね。このレーシングオプションで点を作成すると次のイメージです。

最短リストでは次の点が作成されます。

  • 点1:XYZ = (0, 0, 0)
  • 点2:XYZ = (10, 10, 10)
  • 点3:XYZ = (20, 20, 20)

最短のリスト長さ3に合わせてリストの順番どおりに組み合わせが行われているのが分かります。

最長リスト(Longest) で点を作成する

最長リストは最長のリスト長でリスト同士を組み合わせる方法でした。このレーシングオプションで点を作成すると次のイメージです。

  • 点1:XYZ = (0, 0, 0)
  • 点2:XYZ = (10, 10, 10)
  • 点3:XYZ = (20, 20, 20)
  • 点4: XYZ = (30, 20, 30)

最短リストに加えて、点4が作成されました。はじめに説明したとおり、インデックス3を補う形で真ん中のリストからインデックス2を組み合わせています。

外積 (Cross Product) で点を作成する

外積はすべての組み合わせで組み合わせる方法でした。このレーシングオプションで点を作成すると次のイメージです。

48個の点を作成していますね。

ここで注意することが一点あります。外積の場合作成される点が入れ子リストで出力されますが、次の画像内の出力されているリストを確認することで理解できると思います。例えば点(0, 0, 0)は今回の場合List[0][0][0]と表現できます。(よくわからなければまた別に記事を用意します。)

まとめ

レーシングオプションについて紹介しました。まとめると次のようになります。

  • レーシングオプションは最短リスト、最長リスト、外積の3種類ある
  • 点を作成する過程で それぞれの違いによってどのように変化があるか示した

興味がある方はこちらもどうぞ。

【Revit Dynamo入門】初心者のためのチュートリアル目次

コメント

タイトルとURLをコピーしました