Forge DevCon で登場した API に Model Derivative API と があります。以前、ご紹介したとおり、両者の一部の機能は、もともと、View and Data API に実装されていたものですが、新しく導入された機能も存在します。
Model Derivative API では、アップロードしたデザイン ファイルを別のデザイン ファイルに変換する機能が該当します。また、Data Management API では、A360 や Fusion 360 で利用するユーザ ストレージ領域にアクセスする機能が新規に提供されています。
デベロッパ ポータル からアクセス可能な GitHub 上の Forge サイト(https://github.com/Developer-Autodesk)には、これら API を利用して新しい機能を評価するためのサンプル model.derivative.api-nodejs-sample が公開されています。
もちろん、このサンプルを試すには、Consumer Key や Consumer Secret の置き換えなどのセットアップが必要です。また、Data Management API で A360 ストレージのユーザ領域にアクセスするには、3-legged 認証によって、ユーザからアクセスに必要な許可を得る必要があります。この手順の中では、Consumer Key と Consumer Secret を取得するために登録したアプリ情報にあった Callback URL を正しく設定しておく必要があります。
今回は、サンプル model.derivative.api-nodejs-sample のセットアップについて、ご案内したいと思います。なお、ここでは、以前ご紹介した Windows を利用した 開発環境 を前提に説明を進めていくことにします。
セットアップ
- Autodesk ID を使ってデベロッパ ポータル(https://developer.autodesk.com/)にサインインして、My Apps にアプリを登録します。Autodesk ID をお持ちでない方のサインアップの方法も含め、登録の手順を、過去のブログ記事 Forge API を利用するアプリの登録とキーの取得 でご案内していますのでご参照ください。
アプリ登録の際には、Select the APIs you want to use in your app 欄から Model Derivative API と Data Management API にチェックを入れてください。また、Callback URL には、このサンプルをクライアント コンピュータでローカルに使用する http://dev.example.com:8000/api/autodesk/callback を指定します。
既にアプリが登録されている場合には、個々のアプリ ページ下部にある [EDIT > ] リンクから、使用する API や Callback URL を編集することが出来ます。
- お使いになるクライアント コンピュータの Node.js で Callback URL が正しく認識されるよう、Windows の Hosts ファイルにホスト名を追記します(参考:https://support.microsoft.com/ja-jp/kb/972034)。管理者権限で起動したメモ帳で C:\Windows\System32\drivers\etc フォルダ直下 \hosts を開いて、最後に次の太字の 1 行 127.0.0.1 dev.example.com を追加して上書き保存します。
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1 dev.example.com - Web ブラウザで GitHub 上の model.derivative.api-nodejs-sample リポジトリ ページを開きます。
- 画面右側の [Clone or download] ボタンをクリックして、表示される URL https://github.com/Developer-Autodesk/model.derivative.api-nodejs-sample.git をクリップボードにコピーておきます。
- GitHub リポジトリから開発で使用するクライアント コンピュータにコピーします。Git Shell を起動して、git clone https://github.com/Developer-Autodesk/model.derivative.api-nodejs-sample.git と入力します。この処理が完了すると、C:\Users\<Windows ログイン ユーザ名>\Documents\GitHub フォルダ下に model.derivative.api-nodejs-sample フォルダが作成され、GitHub リポジトリからソースコードがコピーされます。
- コピーされたプロジェクトに Node で必要となるパッケージをインストールします。Node.js command prompt を起動して、現在のフォルダを C:\Users\<Windows ログイン ユーザ名>\Documents\GitHub\model.derivative.api-nodejs-sample フォルダに移動後に、npm install と入力します。
- model.derivative.api-nodejs-sample は、view-and-data-npm として公開されている Node パッケージを使用しています。6. でインストールした Node パッケージの中から、view-and-data-npm パッケージの一部に変更を加えます。model.derivative.api-nodejs-sample フォルダ下の node_modules/view-and-data/view-and-data.js ファイルを Adobe Brackets で開いたら、127 行目の params 変数定義を見つけて次の太字の Scope を追記してください。grant_type: 'client_credentials' 行の最後に , (カンマ)を忘れずに入力してください。
var params = { client_secret: config.credentials.ConsumerSecret, client_id: config.credentials.ConsumerKey, grant_type: 'client_credentials', scope: 'data:read data:create data:write bucket:read bucket:create' };
- 認証で使用する Consumer Key と Consumer Secret を 1. で登録したものと置き換えます。GitHub リポジトリ ページで説明されているな内容ではシステム環境変数での指定も可能になっていますが、ここでは、ファイル ベースで直接書き換えをしてしまうことにします。
Adobe Brackets で model.derivative.api-nodejs-sample\routes フォルダの config-prod.js を開いて、process.env.PROD_CONSUMERKEY の部分を Cosumer Key に、process.env.PROD_CONSUMERSECRET の部分を Consumer Secret に、それぞれ ' (シングル クォーテーション)で囲み、ファイルを上書き保存してください。この書き換えが終了したら、同じフォルダにある config-dev.js と config-stg.js の内容も同じように書き換えます。なお、下記の Consumer Key と Consumer Secret はダミーです。
module.exports = {
baseUrl: 'https://developer.api.autodesk.com',
credentials: {
consumerKey: '4aJuQKN71yflFcQNMrO42ypAYSkySFrX',
consumerSecret: 'vzEHpJelEkW0yRI2'
}
} - 続いて、このサンプルが使用する Callback URL と Bucket 名を指定します。Adobe Brackets で model.derivative.api-nodejs-sample\routes フォルダの config.js を開いて、redirectUrl の値で指定されている process.env.CALLBACK_URL を 'http://dev.example.com:8000/api/autodesk/callback' で置き換えてください。
また、ここには、このサンプル作者がテストで利用した既定値の Bucket 名が指定されていますが、この Bucket は第3者がアクセスすることは出来ません。お使いになるユニークな Bucket 名を指定してください。なお、下記の Bucket 名はダミーです。
var OAUTH_VERSION = 'v1'; // Authentication
var OSS_VERSION = 'v2'; // OSS storage system
var DM_PROJECT_VERSION = 'v1'; // Data Management
var MD_PROJECT_VERSION = 'v2'; // Model Derivative
module.exports = {
redirectUrl: 'http://dev.example.com:8000/api/autodesk/callback',
defaultBucketKey: "adn-japan-isezaki1",
authenticationUrl: '/authentication/' + OAUTH_VERSION + '/authorize',
accessTokenUrl: '/authentication/' + OAUTH_VERSION + '/gettoken',
usersMe: '/userprofile/' + OAUTH_VERSION + '/users/@me', - ここまでの手順で、model.derivative.api-nodejs-sample のセットアップが完了です。Node.js command prompt を起動して、現在のフォルダが model.derivative.api-nodejs-sample フォルダになっていることを確認したら、node index.js と入力して Web サーバーを起動してください。その後、WebGL 対応の Web ブラウザで http://dev.example.com:8000/ を開いてください。
動作テスト
画面上の [Log In] ボタン隣のコンボボックスで Production を選択してから、[Log In] ボタンをクリックすると、Callback URL にリダイレクトされてオートデスクのクラウド サービスにアクセスするためのサインイン画面に遷移します。
サインインの際に A360 上にプロジェクトを持つ Autodesk ID を使用すると、A360 プロジェクトとファイルにアクセスすることが出来るはずです。これが、Data Management API の機能です。
なお、このサイトで初めて使用する Autodesk ID でサインインした場合には、A360 のユーザ ストレージ領域にアクセスする許可を求めるページが表示されるはずです。OAuth の 3-legged 認証の作用でもあります。
もちろん、 プロジェクト内のツリーからデザイン ファイルをクリックすると、Viewer 上にデザインを表示させることが出来ます。A360 プロジェクト内の同一ファイルであっても、時計アイコンでバージョンが個別に示されていて、それぞれを表示したり、モデル内の属性を取得したりすることが出来ます。
選択したデザイン ファイルは、ファイル形式毎にサポートされている他のファイル形式に変換、ダウンロードすることが出来ます。これは、Model Derivative API の新しい機能です。
ここまでの手順を動画にしましたので、ご確認ください。A360 プロジェクトにアクセスして、Fusion 360 ファイル(.f3d)である腕時計のデータを表示、その属性を参照した後、STEP ファイルに変換してダウンロードしています。また、ダウンロードした STEP ファイルを AutoCAD にインポートしています。
By Toshiaki Isezaki
コメント