> For the complete documentation index, see [llms.txt](https://primer2.dynamobim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://primer2.dynamobim.org/ja/6_custom_nodes_and_packages/6-1_custom-nodes/1-introduction.md).

# カスタム ノードの概要

カスタム ノードは、他のノードとカスタム ノードを「Dynamo のカスタム ノード」内にネストすることによって作成されます。Dynamo のカスタム ノードは、コンテナとして考えることができます。このコンテナ ノードをグラフ内で実行すると、コンテナ ノード内のすべてのノードが実行されるため、ノードを自由に組み合わせて再利用や共有を行うことができます。

### 変更に対応する

グラフ内でカスタム ノードの複数のコピーを使用している場合、基準となるカスタム ノードを編集することにより、一度にすべてのコピーを更新することができます。これにより、ワークフローや設計にどのような変更が生じた場合でも、グラフをシームレスに更新して変更に対応することができます。

### ワーク シェアリング

カスタム ノードの最も便利な機能は、ワーク シェアリング機能です。たとえば、Dynamo の上級ユーザが複雑な Dynamo グラフを作成し、そのグラフを Dynamo を初めて使用する設計者に渡したとします。この場合、グラフを渡されたユーザはそのグラフを簡素化し、設計についてのやり取りに必要な最小限の要素だけに絞り込むことができます。カスタム ノードを開いて内部のグラフを編集することができますが、「コンテナ」はシンプルな状態に保たれます。このプロセスにより、カスタム ノードを使用する Dynamo ユーザは、直感的で見やすいグラフを設計することができます。

![](https://4202566639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJPSLCt5YLZNNPlPsMyh4%2Fuploads%2Fgit-blob-ef15fec04bfdca1f957e49ce6c8fb7641a1bd8e1%2Fcustom%20node%20intro%20-%20work%20sharing%2001.jpg?alt=media)

### ノードを作成するさまざまな方法

Dynamo では、さまざまな方法でカスタム ノードを作成することができます。この章の例では、Dynamo UI からカスタム ノードを直接作成します。C# や Zero-Touch の構文の詳細については、Dynamo Wiki の[このページ](https://github.com/DynamoDS/Dynamo/wiki/How-To-Create-Your-Own-Nodes)を参照してください。

### カスタム ノード環境を作成して最初のカスタム ノードを作成する

カスタム ノード環境を実際に使用して、パーセンテージを計算する単純なノードを作成してみましょう。カスタム ノード環境は、Dynamo のグラフ環境とは異なりますが、インタラクションは基本的に同じです。では、最初のカスタム ノードを作成してみましょう。

カスタム ノードを一から作成するには、Dynamo を起動して\[カスタム ノード]を選択するか、キャンバスで\[Ctrl]+\[Shift]+\[N]を押します。

![](https://4202566639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJPSLCt5YLZNNPlPsMyh4%2Fuploads%2Fgit-blob-4c2848f9b24e5e44c3251192698853645c05e5ff%2Fcustom%20node%20intro%20-%20custom%20node%20environment%2001.png?alt=media)

\[カスタム ノード プロパティ]ダイアログ ボックスで、カスタム ノードの名前、説明、カテゴリを入力します。

![](https://4202566639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJPSLCt5YLZNNPlPsMyh4%2Fuploads%2Fgit-blob-cd3a4052c98d6ba3acf517a4e5d3bd21a4379d00%2Fcustom%20node%20intro%20-%20custom%20node%20environment%2002.jpg?alt=media)

> 1. **名前:** Percentage
> 2. **説明**: Calculate the percentage of one value in relation to another (一方の値に対するもう一方の値のパーセンテージを計算)
> 3. **カテゴリ:** Math.Functions

キャンバスの背景色が黄色で表示されます。これは、カスタム ノードの内部を表しています。このキャンバス内では、Input ノードや Output ノードなど、Dynamo の核となるすべてのノードを使用することができます。この 2 つのノードにより、カスタム ノードでやり取りされるデータにラベルが付けられます。これらは\[Input] > \[Basic]にあります。

![](https://4202566639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJPSLCt5YLZNNPlPsMyh4%2Fuploads%2Fgit-blob-10086bd6f5d4c5ec2dd0cf2b956f7633df37d89b%2Fcustom%20node%20intro%20-%20custom%20node%20environment%2003.jpg?alt=media)

![](https://4202566639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJPSLCt5YLZNNPlPsMyh4%2Fuploads%2Fgit-blob-175fbf97bffc7e79e5f4cc56f776e977ad3eeb2d%2Fcustom%20node%20intro%20-%20custom%20node%20environment%2004.jpg?alt=media)

> 1. **Input** ノードは、カスタム ノード上に入力ポートを作成します。入力ノードの構文は、*input\_name : datatype = default\_value(オプション)* です。
> 2. **Output** ノードは、Input ノードと同様に、カスタム ノード上に出力ポートを作成して名前を付けます。**カスタム コメント**を入力ポートと出力ポートに追加して、入力タイプと出力タイプがわかるようにすることをお勧めします。詳細については、「[カスタム ノードを作成する](/ja/6_custom_nodes_and_packages/6-1_custom-nodes/2-creating.md)」セクションを参照してください。

作成したカスタム ノードは、.dyf ファイルとして保存することができます(標準ノードの場合は .dyn ファイルとして保存されます)。保存したファイルは、現在のセッションと将来のセッションに自動的に追加されます。カスタム ノードは、ライブラリの\[Add-ons]セクションにあります。

![](https://4202566639-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJPSLCt5YLZNNPlPsMyh4%2Fuploads%2Fgit-blob-65da3c179cbfe39ce113e81ba78798b8fc96482b%2Fcustom%20node%20intro%20-%20custom%20node%20environment%2005.jpg?alt=media)

### 今後の予定

ここまでの手順では、最初のカスタム ノードを作成しました。これ以降の各セクションでは、カスタム ノードの機能と、一般的なワークフローをパブリッシュする方法について詳しく説明します。次のセクションでは、ジオメトリを特定のサーフェスから別のサーフェスに転送するカスタム ノードを作成する方法について説明します。
