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
  • オプションの選び方について
  • Dynamo 向けの開発
  • Dynamo での開発
  • それぞれの利点と欠点について
  • Dynamo のバージョン管理と API の変更点について理解する(1.x → 2.x)
  • パッケージのバイナリを配布する権限
  • Dynamo UI のパフォーマンスに関する考慮事項
Edit on GitHub
Export as PDF
  1. 開発者向け Primer

Dynamo 向けの開発

PreviousDynamo での依存関係の管理と更新Nextスタートアップ

Last updated 2 months ago

経験のレベルに関係なく、Dynamo プラットフォームはすべてのユーザが開発に参加できるように設計されています。さまざまな能力やスキル レベルを対象とする開発オプションがあり、それぞれの目的によって利点と欠点があります。ここでは開発オプションの概要と、その選び方について説明します。

次の 3 つの開発環境があります: Visual Studio、Python Editor、Code Block DesignScript

オプションの選び方について

Dynamo の開発オプションは、主に Dynamo 向け_の_開発と、Dynamo で の開発の 2 つに分類されます。この 2 つのカテゴリは、Dynamo IDE を使用して作成されたコンテンツを Dynamo で使用する「Dynamo での開発」と、外部ツールを使用して作成されたコンテンツを Dynamo に読み込んで使用する「Dynamo 向けの開発」を意味します。このガイドでは、Dynamo 向け の開発に焦点を当てていますが、すべてのプロセスのリソースについて以下で説明します。

Dynamo 向けの開発

これらのノードを使用することにより、最高レベルのカスタマイズが可能になります。多くのパッケージがこの方法を使用して構築されており、Dynamo のソースに貢献するために必要な手法です。このガイドでは、これらの構築プロセスについて説明します。

  • Zero-Touch ノード

  • NodeModel 派生ノード

  • 拡張機能

次の説明では、Zero-Touch ノードおよび NodeModel ノードの開発環境として Visual Studio を使用します。

これから開発するプロジェクトがある Visual Studio インタフェース

Dynamo での開発

  • Code Block はビジュアル プログラミング環境で DesignScript を公開し、柔軟なテキスト スクリプトとノード ワークフローを可能にします。Code Block の関数は、ワークスペース内の任意の機能から呼び出すことができます。

  • カスタム ノードは、ノードの集合体またはグラフ全体のコンテナです。頻繁に使用するルーチンを収集し、コミュニティと共有するための効果的な手段です。

  • Python ノードは、Code Block と同様の働きをするビジュアル プログラミング ワークスペースのスクリプト インタフェースです。Autodesk.DesignScript ライブラリでは、DesignScript と同様のドット表記を使用します。

Dynamo ワークスペースでの開発は、即座にフィードバックが得られる強力な手段です。

Python ノードを使用して Dynamo ワークスペースで開発する

それぞれの利点と欠点について

Dynamo の開発オプションは、カスタマイズの必要性に伴う複雑な作業に対応できるように設計されています。目的が Python で再帰スクリプトを記述するのか、完全にカスタム化したノード UI を構築するのかに関わらず、起動と実行に必要なものだけでコードを実装できるオプションがあります。

Dynamo の Code Block 、Python ノード、カスタム ノード

これらは、Dynamo のビジュアル プログラミング環境でコードを書く場合の簡単なオプションです。Dynamo のビジュアル プログラミング ワークスペースから、Python や DesignScript にアクセスでき、カスタム ノード内に複数のノードを含めることができます。

これらの方法を使用すると、次の操作が可能になります。

  • セットアップは最小限のまま、Python または DesignScript の作成を開始します。

  • Python ライブラリを Dynamo に読み込みます。

  • Dynamo コミュニティで、Code Block、Python ノード、カスタム ノードをパッケージの一部として共有します。

Zero-Touch ノード

Zero-Touch とは、C# ライブラリを読み込むための単純なポイント アンド クリック操作のことです。Dynamo は、.dll のパブリック メソッドを読み取って Dynamo ノードに変換します。Zero-Touch ノードを使用して、独自のカスタム ノードおよびパッケージを開発できます。

この方法では、次の操作が可能になります。

  • C# メソッドを記述し、Dynamo でノードとして簡単に使用することができます。

  • パッケージ内の Dynamo コミュニティで C# ライブラリをノードとして共有できます。

NodeModel 派生ノード

これらのノードは、Dynamo の構造をさらに一歩前進させたものです。これらは NodeModel クラスに基づいて C# で記述されます。この方法は最も柔軟で強力ですが、ノードのほとんどの要素を明示的に定義する必要があることと、関数は別のアセンブリに存在する必要があります。

この方法では、次の操作が可能になります。

  • スライダ、イメージ、カラーなど、完全にカスタマイズ可能なノード UI を作成します(ColorRange ノードなど)。

  • Dynamo キャンバスにアクセスし、そこでの動作に影響を与えることができます。

  • レーシングをカスタマイズします。

  • Dynamo にパッケージとしてロードします。

Dynamo のバージョン管理と API の変更点について理解する(1.x → 2.x)

Dynamo は定期的に更新されるため、パッケージが使用する API の一部が変更される場合があります。既存のパッケージが正しく動作し続けるようにするためには、これらの変更を追跡することが重要になります。

パッケージのバイナリを配布する権限

Package Manager にアップロードされるパッケージに含まれる .dll に注意してください。パッケージの作成者が .dll を作成しなかった場合、それらを共有する権限が必要です。

パッケージにバイナリが含まれている場合、パッケージにバイナリが含まれていることをダウンロード時にユーザに確認する必要があります。

Dynamo UI のパフォーマンスに関する考慮事項

本記事の作成時点では、Dynamo は UI のレンダリングに、主に WPF (Windows Presentation Foundation)を使用しています。WPF は、複雑ですが強力な、 xaml/バインディング ベースのシステムです。Dynamo の UI は複雑なため、UI の停止やメモリ リークが発生したり、グラフの実行と UI の更新をラップしてパフォーマンスが低下するといった事態が起こりやすくなります。

Primer には、ための手順が記載されています。

これらのプロセスはビジュアル プログラミング ワークスペース内に存在し、比較的単純ですが、すべてが Dynamo をカスタマイズするための有用なオプションです。Primer ではこれらの内容を広範囲にカバーし、「」の章では、スクリプトのヒントとベスト プラクティスについて説明します。

Code Block サンプルをダウンロードする(右クリックして名前を付けて保存する)か、 で詳細な手順を確認してください。

カスタム ノードのサンプルをダウンロードする(右クリックして名前を付けて保存する)か、 で詳細な手順を確認してください。

Python ノードのサンプルをダウンロードする(右クリックして名前を付けて保存する)か、 で詳細な手順を確認してください。

Primer の「」のように、必ずしも Dynamo 用に開発されたのではないライブラリを読み込み、一連の新しいノードを自動的に作成します。

API の変更は、 で確認できます。ここでは DynamoCore、ライブラリ、ワークスペースの変更点について調べることができます。

今後予定されている重要な変更の例として、バージョン 2.0 でファイル形式が XML から JSON に移行することが挙げられます。NodeModel 派生ノードには、が必要になります。これがない場合、Dynamo 2.0 で開きません。

現在の Dynamo API ドキュメントでは、コアな機能についてカバーしています。

Wiki ページ「」を参照してください。Dynamo のコードを変更する際に起こりがちな問題を回避するのに役立ちます。

Zero-Touch ライブラリをインポートする
スクリプト作成のガイドライン
Primer
Primer
Primer
Dynamo GitHub Wiki
JSON コンストラクタ
http://dynamods.github.io/DynamoAPI
Dynamo のパフォーマンスに関する考慮事項
A-Forge の例
3 つの開発環境
Visual Studio インタフェース
Python ノードを使用して Dynamo ワークスペースで開発する
Code Block、Python スクリプト、およびカスタム ノード
Zero-Touch ノード
NodeModel 派生ノード
Dynamo API の変更点に関するドキュメント
API ドキュメント