Dynamo
Primer for v2.0
日本語
日本語
  • この Web サイトについて
  • はじめに
    • Dynamo とは、その動作の仕組みとは
    • Primer ユーザ ガイド、Dynamo コミュニティ、プラットフォーム
  • Dynamo のセットアップ
  • ユーザ インタフェース
    • ワークスペース
    • ライブラリ
  • ノードとワイヤ
  • 基本ノードと概念
    • ノードの索引
    • 計算設計用のジオメトリ
      • ジオメトリの概要
      • ベクトル、平面、座標系
      • 点群
      • 曲線
      • サーフェス
      • 立体
      • メッシュ
    • プログラムの構成要素
      • データ
      • 数学的方法
      • ロジック
      • 文字列
      • 色
    • リストを使用した設計
      • リストの概要
      • リストの操作
      • リストのリスト
      • N 次元のリスト
    • Dynamo のディクショナリ
      • ディクショナリとは
      • [Dictionary]カテゴリのノード
      • コード ブロックにおけるディクショナリ
      • Revit での使用例
  • カスタム ノードとパッケージ
    • カスタム ノード
      • カスタム ノードの概要
      • カスタム ノードを作成する
      • ライブラリへのパブリッシュ
    • パッケージ
      • パッケージの概要
      • パッケージのケース スタディ - Mesh Toolkit
      • パッケージを開発する
      • パッケージをパブリッシュする
      • Zero-Touch Importing
  • Revit 用の Dynamo
    • Revit との連携
    • 選択
    • 編集
    • 作成
    • カスタマイズ
    • 設計図書の作成
  • Dynamo for Civil 3D
    • Civil 3D の接続
    • スタートアップ
    • ノード ライブラリ
    • サンプル ワークフロー
      • 道路
        • 照明柱の配置
      • 土地
        • サービスの配置
      • ユーティリティ
        • 構造物の名前を変更する
      • 軌道
        • クリアランスのエンベロープ
      • 測量
        • ポイント グループ管理
    • 高度なトピック
      • オブジェクト バインド
      • Python と Civil 3D
    • Dynamo プレーヤ
    • 便利なパッケージ
    • リソース
  • Dynamo in Forma Beta
    • Forma で Dynamo Player を設定する
    • Dynamo Player でグラフを追加、共有する
    • Dynamo Player でグラフを実行する
    • Dynamo コンピューティング サービスとデスクトップ版 Dynamo の違い
  • Dynamo でのコーディング
    • コード ブロックと DesignScript
      • コード ブロックとは
      • DesignScript 構文
      • 省略表記
      • 関数
    • DesignScript を使用するジオメトリ
      • DesignScript ジオメトリの基本
      • ジオメトリ プリミティブ
      • ベクトル計算
      • 曲線: 補間および制御点
      • 移動、回転、およびその他の変換
      • サーフェス: 補間、制御点、ロフト、回転
      • ジオメトリのパラメータ化
      • 交差およびトリム
      • ジオメトリのブール演算
      • Python 点ジェネレータ
    • Python
      • Python Script ノード
      • Python と Revit
      • 独自の Python テンプレートを設定する
    • 言語の変更
  • ベスト プラクティス
    • 見やすいプログラムを作成するためのガイドライン
    • スクリプト作成のガイドライン
    • スクリプト リファレンス
    • プログラムを管理する
    • Dynamo で大規模なデータ セットを効率的に操作する
  • サンプル ワークフロー
    • スタートアップ ワークフロー
      • パラメータを使用する花瓶
      • アトラクタ ポイント
    • 概念インデックス
  • 開発者向け Primer
    • ソースから Dynamo をビルドする
      • ソースから DynamoRevit をビルドする
      • Dynamo での依存関係の管理と更新
    • Dynamo 向けの開発
      • スタートアップ
      • Zero-Touch ケース スタディ - グリッド ノード
      • Zero-Touch ノードで Python スクリプトを実行する(C#)
      • Zero-Touch の詳細を確認する
      • Dynamo ノードの高度なカスタマイズ
      • Dynamo パッケージで COM (相互運用)タイプを使用する
      • NodeModel ケース スタディ - カスタム UI
      • Dynamo 2.x 用のパッケージと Dynamo ライブラリを更新する
      • Dynamo 3.x 用のパッケージと Dynamo ライブラリを更新する
      • 拡張機能
      • Dynamo 2.0+ のカスタム パッケージ編成を定義する
      • Dynamo コマンド ライン インタフェース
      • Dynamo の統合
      • Dynamo for Revit 向けの開発
      • パッケージをパブリッシュする
      • Visual Studio からパッケージをビルドする
      • パッケージとしての拡張機能
    • プル リクエスト
    • テストによる期待
    • サンプル
  • 付録
    • よくある質問(FAQ)
    • ビジュアル プログラミングと Dynamo
    • リソース
    • リリース ノート
    • 便利なパッケージ
    • サンプル ファイル
    • ホスト統合マップ
    • PDF をダウンロード
    • Dynamo のキーボード ショートカット
Powered by GitBook
On this page
  • データの概要
  • Null - データが存在しない
  • データ構造
  • 演習: データを使用して円柱の配列を作成する
  • パート I: いくつかの変更可能なパラメータを持つ 1 つの円柱に対してグラフを設定する
  • パート II: パート I の円柱の配列を入力する
Edit on GitHub
Export as PDF
  1. 基本ノードと概念
  2. プログラムの構成要素

データ

Previousプログラムの構成要素Next数学的方法

Last updated 2 years ago

データは、各種プログラムの構成要素です。データはワイヤ経由でやり取りされ、そのデータを処理するノードに入力情報を提供します。処理されたデータは、新しい形式の出力データになります。ここでは、データの定義と構造について確認し、Dynamo で実際にデータを使用してみます。

データの概要

データとは、定性的な変数や定量的な変数の集まりのことです。最も単純な形式のデータは、0、3.14、17 などの数値です。この他にも、変化する数値を表す変数(height)、文字(myName)、ジオメトリ(Circle)、データ項目のリスト(1,2,3,5,8,13,...)など、さまざまな種類のデータがあります。

Dynamo のノードの入力ポートには、データを追加または送信する必要があります。アクションが設定されていないデータを使用することはできますが、ノードが表すアクションを処理する場合はデータが必要になります。ノードをワークスペースに追加する際に、そのノードに対して入力データを指定しなかった場合、結果として関数が返されます。アクション自体の結果は返されません。

  1. 単純なデータ

  2. データとアクション(ノード)が正常に実行される

  3. 入力データが指定されていないアクション(ノード)から一般的な関数が返される

Null - データが存在しない

Null に注意しましょう。'null' タイプはデータが存在しないことを表します。これは抽象的な概念ですが、ビジュアル プログラミングを使用しているとよく登場します。たとえば、アクションを実行して正しい結果が生成されなかった場合に、ノードから NULL が返されます。

安定したプログラムを作成するには、NULL をテストし、データ構造から NULL を削除することが重要になります。

アイコン
名前/構文
入力
出力

Object.IsNull

obj

bool

データ構造

ビジュアル プログラミングを行うと、大量のデータを非常に短時間で生成できるため、データ階層を管理するための手段が必要になります。これを行うには、データ構造を使用します。データ構造とは、データを格納するための構造化されたスキームのことです。データ構造の仕様と使用方法は、プログラミング言語によって異なります。

Dynamo の場合、リストを使用してデータに階層を追加します。これについては、これ以降の章で詳しく説明します。ここでは、簡単な操作から始めてみましょう。

リストは、1 つのデータ構造内に配置された項目の集合を表します。リストと項目の関係は次のようになります。

  • 私の手(リスト)には 5 本の指(項目)がある。

  • 私の家の前の通り(リスト)には 10 軒の家(項目)が建っている。

  1. Number Sequence ノードは、start 入力、amount 入力、step 入力を使用して数値のリストを定義します。上の図の 2 つのノードを使用して、10 個の数値を格納する 2 つのリストを作成しました。一方のリストには 100 から 109 までの数値が格納され、もう一方のリストには 0 から 9 までの数値が格納されています。

  2. List.GetItemAtIndex ノードは、特定のインデックスを使用して、リスト内の特定の項目を選択します。0 を選択すると、リスト内の最初の項目(この場合は 100)が取得されます。

  3. もう一方のリストでも同じ手順を実行すると、リスト内の最初の項目である 0 が取得されます。

  4. 次に、List.Create ノードを使用して、2 つのリストをマージして 1 つのリストを作成します。このノードによって「リストのリスト」が作成されることに注意してください。これにより、データの構造が変化します。

  5. インデックスを 0 に設定してもう一度 List.GetItemAtIndex ノードを使用すると、「リストのリスト」内の最初の項目が取得されます。この場合、リストが項目として処理されます。この動作は、他のスクリプト言語とは多少異なっています。リストの操作とデータ構造については、これ以降の章でさらに詳しく説明します。

Dynamo のデータ階層を理解するには、「データ構造については、リストが項目として認識される」という概念を理解する必要があります。つまり、Dynamo は、トップダウン プロセスを使用してデータ構造を認識するということです。これは何を意味するのでしょうか。例を使用して詳しく説明します。

演習: データを使用して円柱の配列を作成する

下のリンクをクリックして、サンプル ファイルをダウンロードします。

すべてのサンプルファイルの一覧については、付録を参照してください。

この最初の例では、ジオメトリ階層全体にわたるシェル化された円柱を作成します。ジオメトリ階層については、このセクションで説明します。

パート I: いくつかの変更可能なパラメータを持つ 1 つの円柱に対してグラフを設定する

1.Point.ByCoordinates を追加する - このノードをキャンバスに追加すると、Dynamo プレビュー グリッドの基準点に点が表示されます。x,y 入力と z 入力の既定値は 0.0 です。この場合、Dynamo プレビュー グリッドの基準点に点が表示されます。

2.Plane.ByOriginNormal - ジオメトリ階層内の次の段階は、平面です。平面を作成する方法はいくつかありますが、ここでは、基準点と法線を入力して作成します。ここで使用する基準点は、前の手順で作成した点ノードです。

Vector.ZAxis - このノードは、Z 方向の単位ベクトルです。このノードには入力はなく、[0,0,1]という値のベクトルしかないことに注意してください。このノードは、Plane.ByOriginNormal ノードの normal の入力として使用します。これにより、Dynamo のプレビューに長方形の平面が表示されます。

3.Circle.ByPlaneRadius - 次に、前の手順で作成した平面から曲線を作成して階層を拡張します。このノードに接続すると、基準点に円が表示されます。このノードの半径の既定値は 1 です。

4.Curve.Extrude - このノードに深さを設定することにより、基準点に表示されている円を立体的な 3 次元の円柱にします。このノードは、曲線を押し出してサーフェスを作成します。このノードの距離の既定値は 1 です。この場合、ビューポートに円柱が表示されます。

5.Surface.Thicken - このノードは、指定の距離でサーフェスをオフセットして形状を閉じることにより、閉じたソリッドを作成します。厚さの既定値は 1 です。この場合、その値に従って、シェル化された円柱がビューポートに表示されます。

6.Number Slider - ここでは、すべての入力に対して既定値を使用するのではなく、パラメータ制御をモデルに追加してみましょう。

範囲編集用キャレット - 数値スライダをキャンバスに追加したら、左上のキャレットをクリックして範囲オプションを表示します。

Min/Max/Step - Min、Max、Step の値を、それぞれ 0、2、0.01 に変更します。これにより、ジオメトリ全体のサイズをコントロールします。

7.Number Slider - すべての既定の入力で、この数値スライダのコピー アンド ペースト操作を繰り返します(Number Slider ノードを選択して[Ctrl]+[C]を押し、次に[Ctrl]+[V]を押す)。この操作は、既定値が設定されているすべての入力に Number Slider ノードが接続されるまで繰り返します。定義を有効にするには、一部のスライダ値をゼロより大きな値に設定する必要があります。たとえば、サーフェスに厚みを付ける場合は、押し出しの深さをゼロより大きな値に指定する必要があります。

8.これで、数値スライダを使用したパラメータ制御のシェル化された円柱が作成されました。いくつかのパラメータの値を変更して、Dynamo のビューポート内でジオメトリが動的に更新されることを確認してください。

Number Slider - これまでの手順で、多くのスライダをキャンバスに追加してきました。そのため、作成したツールのインタフェースをクリーンアップする必要があります。各スライダを右クリックして[名前変更]を選択し、そのスライダのパラメータ(厚さ、半径、高さなど)に適した名前に変更します。

パート II: パート I の円柱の配列を入力する

9.ここまでの手順で、厚みのある円柱が作成されました。この時点では、この円柱はまだ 1 つのオブジェクトにすぎません。ここからは、動的にリンクされた円柱の配列を作成していきます。そのためには、項目を 1 つずつ操作するのではなく、円柱のリストを作成します。

追加用ノード (+) - ここでの目的は、前の手順で作成した円柱の横に、一連の円柱を追加することです。現在の円柱の横に別の円柱を追加するには、円柱の半径とシェルの厚さの両方を考慮する必要があります。ここでは、2 つのスライダの値を追加して、円柱の半径とシェルの厚さを設定します。

10.この操作は少し複雑であるため、手順を追って詳しく説明します。最終的な目標は、連続する各円柱の位置を定義する数値のリストを作成することです。

a.乗算用ノード (*) - 最初に、前の手順で指定した値を 2 倍にします。前の手順で指定した値は半径でしたが、ここでは円柱の直径を指定します。

b.Sequence - 次に、このノードを使用して、数値の配列を作成します。最初の入力は、前の手順の 乗算用ノード (*) の step の値です。start の値は、Number ノードを使用して 0.0 に設定します。

c.Integer Slider - Integer Slider ノードを接続して amount の値を設定します。これにより、作成される円柱の数が決まります。

d.出力のリスト - このリストには、配列内の各円柱の移動距離が表示されます。このリストは、元のスライダのパラメータによって制御されます。

11.この手順は簡単です。前の手順で指定したシーケンスを、元の Point.ByCoordinates ノードの x 入力に接続するだけです。この操作により、pointX スライダが置き換えられます。このスライダは、削除してかまいません。これで、ビューポートに円柱の配列が表示されます(Integer Slider ノードで 0 よりも大きな値を設定してください)。

12.円柱の配列は、すべてのスライダに動的にリンクされたままの状態になっています。各スライダの値を変更して、円柱の定義がどのように更新されるかを確認してください。

12KB
Building Blocks of Programs - Data.dyn
データとアクション
リストのブレークダウン