ZeroTouch Nodeを使って、Dynamoをカスタマイズしよう

皆様こんにちは
AMDlabの秋山です。

Dynamo開発をしていると、既存のノードだけでは対応できず、カスタムノードの導入やcodeblockノード、Pythonスクリプトノードを使用して、コーディングしてオリジナルのノードを作成する必要が出てきます。
今回お話するZeroTouch Nodeもその一つです。つい最近、弊社でもZeroTouch Nodeを利用した開発を行いました。ZeroTouch Nodeを使用することでDynamoの世界がより広がったので今回の記事では、簡単なプログラムをZeroTouch Nodeで作ってみようと思います。

ZeroTouch Nodeとは

C#によって書かれたコードをコンパイルすることで実行速度が向上するカスタムノードです。建築業界のように大量のデータや大容量データを扱う場合に特に有効です。また、ZeroTouch NodeはDLLとして配布されるため、共有が簡単である点と、テキストベースのコーディングになるので可読性がビジュアルプログラムよりもよくなります。
さらに、外部ライブラリやAPIとの連携が可能になるので、Dynamoプロジェクト内で様々な外部ツールやサービスを利用することができます。この外部連携に関しては、まさに今回開発したプログラムで効果を発揮しました。

ステップ1: 必要なソフトウェアのインストール

  1. Visual Studioのインストール:
    • Microsoftの公式ウェブサイトからVisual Studioをダウンロードします。Visual Studio Community版は無料で利用可能です。
    • インストールプロセス中に、「.NET デスクトップ開発」ワークロードを選択してインストールします。これには、.NET Framework用のライブラリ開発に必要なツールが含まれています

ステップ2: 開発環境の設定

  1. Visual Studioで新しいプロジェクトを作成:
    • Visual Studioを開き、「新しいプロジェクトの作成」を選択します。
    • 「Class Library (.NET Framework)」プロジェクトテンプレートを選び、プロジェクト名と保存場所を設定します。
    • 対象の.NET Frameworkバージョンを選択します。Dynamo 2.0 以上を使用する場合は、.NET Framework 4.7.2以上が推奨されます。

  2. 参照の追加:
    • Nugetパッケージの管理からDynamoVisual….ZeroTouchLibraryをインストールします。こちらをインスト―ルすることで、Dynamoの開発に必要なライブラリがインポートされます。

ステップ3: コーディング

  • 今回は、2つのノードを作成します。C#でクラスとメソッドを定義します。
    • 1つ目は、2つの数値を入力として受け取り、それらの合計を返すシンプルな関数を使用したノードを作成します。

       

       

    • 2つ目は、一辺の長さを入力として受け取り、その寸法の正方形をつくるノードを作成します。ジオメトリの作成には、Dynamoが提供するAutodesk.DesignScript.Geometryネームスペースを使用します。

       

       

ステップ4: コンパイルとDLLの生成

  • Visual Studioでプロジェクトをビルドします。ビルドが成功すると、指定したプロジェクトフォルダ内の「bin\Debug」または「bin\Release」ディレクトリにDLLファイルが生成されます。

ステップ5: Dynamoにインポート

  • Dynamoを開き、[ファイル] タブから「ライブラリを読み込む」を選択し、生成したDLLファイルを選択してインポートします。

  • インポート後、新しいノード(カスタムノード)として「AddTwoNumbers」と「CreateSquare」が利用可能になります。

いかがでしょうか?
Revitでアドイン開発をするように、Dynamoのカスタムノードを作成することができました。

次回は、ZeroTouch NodeでRevitエレメントを参照するお話をしていきます。

BIM
Dynamo Revit
Tech
C#
ARTICLES