Forge Design Automation for Civil 3D のサンプルを動かすために
はじめに
Forge Design Automation API が Civil 3D もサポートするようになりました。
既に GitHub でサンプルが提供されています。
作業手順が README にあるので、自分のローカルでも動かしてみよう! と思ったのですが…。
Forge と ASP.NET に対する基礎知識がなく、実行にかなり手間取ってしまいました。
README の行間を補足する情報を、メモ書き程度に残しておきます。
Forge Design Automation の基本的な流れに関して知りたい方は、
下記リンクが参考になりました。
7-zip をインストール
Forge Design Automation API では、クラウドで実行するアドインのプログラムと
マニフェストを zip にまとめてアップロードします。
このサンプルでは、ビルド後イベントとして、既存の zip の削除と
7-zip を使った zip の作成を同時に行います。
入っていないと、ビルドをすると肝心の zip が消えてしまい、エラーを吐きます。
これでウン時間も損してしまった。。
下記に実行ファイルが来るように、7-zip をインストールしましょう。
C:\Program Files\7-Zip\7z.exe
Clone するコマンド
X) git clone https://git.autodesk.com/goncala/bim360civil
O) git clone https://github.com/Autodesk-Forge/forge-civil3d-properties
FORGE_WEBHOOK_URL
ngrok を立ち上げ直すたびに URL が変わるので、そのたびに Visual Studio と VS Code の環境変数を書き直す必要があります。
FORGE_CALLBACK_URL
これを Visual Studio 側にも書いてあげましょう。
"FORGE_CALLBACK_URL": "http://localhost:3000/api/forge/callback/oauth"
README を見ると、VS Code 側だけ書けばいいように見えてしまいますが…。
これでウン時間も損してしまった。。
Newtonsoft.Json の参照を「ローカルにコピー」にする
例えば NuGet で落としたパッケージなど、ローカル環境に入っていない dll を
参照しながらアドインを実行する場合があります。
その場合は、ローカル環境に入っていない dll をローカルにコピーする必要があります。
これはクラウド上で走らせるアドインでも同じです。
Activity のコマンドライン引数を "" で囲む
2020/10 から仕様が変更になりました。
選択を変更した際の addEventListener を足す
Viewer 上で選択した要素のプロパティが上手く足されなかったので、
無理やり addEventListener を足しました。。
で、コードをどう変えればいいの?
差分はここです。
localhost:3000 はどうすれば立ち上がるか
README には "Start the app." としか書いてなかったので、読み解くのに苦労しました。
まず、Windows 側で IIS (Internet Information Services) を有効にする必要があります。
下記 URL が参考になります。
次に、Visual Studio をこの状態にしてから、デバッグを開始しましょう。
下記 URL が参考になります。
Discussion