エクステンションとは
Next Design ではプ ログラミング言語から Next Design が提供している API を利用することでユーザが自由に機能拡張できます。これらの個々の機能を エクステンション と呼びます。Next Design のエクステンションを開発することで、次のような追加機能を実現可能です。
- 設計したモデルの整合性を検証し、エラーや警告を提示するような検証機能を実現できます。
- 既存資産のドキュメントからのインポート、シミュレーション用データ生成、独自形式のドキュメント出力といった、独自のインポート/エクスポート機能を開発できます。
- 外部ツールとのデータ連携によるツールチェーンを実現できます。
特徴
Next Design のエクステンションは次のような特徴があります。
スクリプトとDLLによる開発
エクステンションの開発言語は C# を用いています。言語としても洗練され、また近年オープン化も進んでLinux/Macやモバイルでも動作するようになっています。エクステンションの実装方法として次の2種類があり、エクステンションごとに選択できます。
- C# から .NET DLL にコンパイルする実装方法(推奨)
- C# スクリプトによる実装方法
Next Design のエクステンションはスクリプトでも実行時に動的にコン パイルされるので非常に軽快に動作しますが、DLLでの開発はライブラリも充実しており、またデバッグのしやすさや保守性を考えるとDLLでの開発を推奨します。.NET DLL方式による実装方法ではイベント処理や UI 拡張など高度な機能拡張もできます。詳しくはスクリプトとDLLを参照して下さい。
// コマンドハンドラ
public void SayHello(ICommandContext context,ICommandParams commandParams)
{
App.Window.UI.ShowInformationDialog("Hello !","Hello World");
}
拡張ポイント
拡張ポイントとは、エクステンションで拡張するUIやイベントのことです。そのファイルをマニフェストファイルと呼びます(以降、単にマニフェ ストと記します)。 拡張ポイントは次のようにJsonにて定義します。
manifest.json
"extensionPoints": {
"commands": [
{
"id": "Command.SayHello",
"execFunc": "SayHello"
}
],
...
}
- リボン(メニュー)にボタンなどを追加して機能拡張できます。
- モデル編集操作やファイル操作などのイベントを受け取り、そのイベントを利用して機能拡張できます。
- エクステンションで拡張されるリボンやイベントの定義は、エクステンションごとに記述するマニフェストから読み込まれます。