Forge DevCon Japan 2018 の H3 Webhooks API で広がるアプリ連携 クラスでは、A360 や BIM 360 Docs、Fusion Team などのオートデスクのストレージ サービスで起こるユーザ イベントを利用した WebHooks API についてご紹介しました。この中で、ストレージ操作の通知を得るべき関係者には、実際に AutoCAD などのデスクトップ製品を利用中の設計者が多いのでは?とお話しました。また、その想定に基づいて、デスクトップ製品内で WebHooks を実装した Web ページを表示する例をデモしました。DevCon の終了後、実際にどのような方法で実装するのか、何名かの人に質問を受けましたので、改めてご紹介しておきたいと思います。
ご存知のとおり、AutoCADの 2014 バージョンから JavaScript API をサポートしています。また、AutoCAD 2015 で登場した 新しいタブ 機能と、AutoCAD 2016 で 新しいタブ から名称変更した スタートタブ とも、表示されるコンテンツは HTML で定義されています。スタートタブのカスタマイズはサポートされていないものの、AutoCAD は、このように、順次、Web 開発に対する親和性を高めてきています。
この過程で従来の AutoCAD .NET API も拡張されていて、AutoCAD にカスタム パレット(Palette クラス)を追加する Add メソッドに直接 URI を指定することで、ローカル コンピュータ内にある HTML ファイルや外部 Web サイトをパレット内に表示出来るようになっています。

H3 Webhooks API で広がるアプリ連携 クラスでご紹介したのは、Data Management WeoHooks のサンプル(https://github.com/Autodesk-Forge/data.management-nodejs-webhook)のデモ サイトである BIM 360 Notifier(https://bim360notifier.autodesk.io/)を、このメソッドを使って AutoCAD のカスタム パレット内に表示したものとなります。

AutoCAD アドイン側で実装すべきは、カスタム パレットを作成して特定の Web サイトを表示するコマンドを定義するだけ、という簡単な内容です。WebHooks API で通知を得るコールバックや 3-legged OAuth で使用するコールバックの実装には Web サーバーの構築が不可欠であるため、アドイン内に Web セキュリティを持ち込まなくてもすむ利点があります。
上図の実装で定義した Forge-Webhooks コマンドの C# コードは次のとおりです。
// Decraration variables for PalleteSet
static Autodesk.AutoCAD.Windows.PaletteSet ps = null;
// Modal Command with localized name
[CommandMethod("MyGroup", "Forge-Webhooks", "Forge-Webhooks", CommandFlags.Modal)]
public void MyCommand2()
{
// Create PalleteSet
if (ps == null)
{
ps = new Autodesk.AutoCAD.Windows.PaletteSet("BIM 360 Notifier");
ps.Style = PaletteSetStyles.ShowPropertiesMenu |
PaletteSetStyles.ShowAutoHideButton |
PaletteSetStyles.ShowCloseButton |
PaletteSetStyles.Snappable;
ps.Visible = true;
}
else
{
ps.Visible = true;
}
// Create Pallete
if (ps.Count == 0)
{
Uri url = new Uri("https://bim360notifier.autodesk.io/");
Autodesk.AutoCAD.Windows.Palette p = ps.Add("BIM 360 Notifier", url);
ps.Dock = DockSides.None;
}
}
余談ですが、AutoCAD には JavaScript API をサポートした 2014 バージョン以降、製品内部に WebKit が組み込まれています。上記のような Web サイト/ページを表示するカスタム パレットやスタート タブ(HTML)を表示中でアクティブにした状態で F12 キーを押すと、Web ブラウザ同様のデベロッパーツールを呼び出すことが出来ます。

Web サーバー実装では、Web ブラウザ側のデベロッパーツールを利用するものと思いますが、ご参考までにお知らせしておきます。
By Toshiaki Isezaki

You must be logged in to post a comment.