⛏️

Autodesk Platform Serviceを使ったノーコード自動化入門

2023/01/25に公開

概要

皆さんMakeというノーコードツールをご存じですか?
最近生まれたサービスではなく、実は以前から存在しました。(元々はIntegromatという名前でしたが、買収されて名前が変わりました)。
Makeを使うと、様々なサービスを統合し、自動化されたワークフローを構築することができます。つまり、Makeは、iPaaSと言えます。
ノーコードツールといえば、BIM界隈の方だと、Autodesk Dynamoを思い浮かべる方も多いのではないでしょうか。しかし、DynamoはBIMを専門にする人しか使っていません。
日本の建設業界で働く人の数は年々減少しており、生産性の低下が懸念されています。建設業界の人口が減っていく中で、もはやBIMだけにとどまらず、建設現場全体の業務を自動化する必要があります。Dynamoだけではとてもカバーしきれないでしょう。
そこで私がオススメしたいのが「Make」です。

オートデスクが発表したクラウド開発プラットフォーム「APS」(Autodesk Platform Service)は、BIMを専門とする人たちだけでなく、すべての建設関係者のためのものです。BIMを専門とする人たちだけでなく、すべての建設関係者にAPSのメリットを感じてもらうことが重要だと考えています。
そのための手段として最適なのが「Make」です。
非常に直感的なUIを持ち、Dynamoと同様にノードを繋いでプログラムを作成できる点が特に使いやすいと思います。

今回は、「Make」を使ったAPSの入門編を書きます。
この記事を通じて、BIM関連のスキルやITに関して全くスキルが無い方でもAPSの恩恵を受けやすい土壌作りをサポートできればと思います。
Webアプリケーションを1から書いて実行するわけではないので、色々説明を省略しているところはありますが、ご容赦ください。

やってみよう

①まず、Makeに登録します。
下記URLからアカウント登録をお願いします。
https://www.make.com/en/register

②アカウント登録が出来ると、下記のような画面になります。左のサイドバーから「Scenarios」を押し、新しいプログラムを作成します。Revitで言うところのプロジェクト作成のことです。

③右上から、「Create Scenario」を押します。

④まず、真ん中のプラスボタンを押します。すると、色々なアプリケーションの連携を行うことが出来ます。しかし、Autodesk関係のアプリケーションは公開されていません。
そこで、カスタムで作成していきましょう。

⑤検索窓にて、「http」と検索します。そして、選択します。

⑥いろいろな選択肢が出てきますが、「Make an OAuth 2.0 request」を選択します。
Autodesk Platform Serviceを活用するうえで、BIM360やAutodesk Docs内のデータにアクセスしていきます。

⑦この「http」モジュールはとても便利です。
このモジュールが非常に便利なのは、認証に関するあらゆることを自動で処理し、API実行時に必要なアクセストークンを自動的に書き込んでくれます。
つまり、API実行時に通常のヘッダーやボディのアクセストークンを省略することができるのです。一度試してみましょう。

Authorize URLは、「https://developer.api.autodesk.com/authentication/v1/authorize」
、Token URLは、「https://developer.api.autodesk.com/authentication/v1/gettoken」
を入力してください。それ以外は、上記の画像の通りに入力します。

Client IDとClient Secretの発行方法はご自身で、Autodesk Platform Serviceへログインし、作成してください。

具体的なやりかたは下記の「Create an App」を見てください。
また、AppのリダイレクトURLは、「https://www.integromat.com/oauth/cb/oauth2」
を追加しておきます。
https://aps.autodesk.com/en/docs/oauth/v1/tutorials/create-app/

⑧入力出来たら、保存します。すると勝手に認証ページへ飛び、Autodesk IDでログインします。
認証を行うと、自動的にMakeのページへ帰ってきます。
これで認証は全て終わりです。あら簡単!!

⑨認証が終われば、次はACC APIにアクセスしていきましょう。issueを自動的に作成してみます。
URLは、「https://developer.api.autodesk.com/construction/issues/v1/projects/:projectId/issues」
を入力します。

ただし、このままではダメです。URL内に"projectId"を入力する必要があります。
projectId自体をAPIで取得することも出来ますが、面倒な人はACCを開き、プロジェクトをWebブラウザで開いてみてください。

プロジェクトをWebブラウザで開くと、「https://acc.autodesk.com/build/home/projects/xxxxxxxxxxxxxxxxxxxxx」
といった形で、"projects"の後ろに文字列が並んでいるのが分かります。
これがprojectIdです。

もちろん、APIで取得も出来ます。下記URLにリファレンスが載っています。
https://aps.autodesk.com/en/docs/data/v2/reference/http/hubs-hub_id-projects-GET/

さて、projectIdが分かったら、次は、issueSubtypeIdを知る必要があります。
issueを投稿する際に、どのサブタイプか指定してあげることで、APIによる投稿が可能となります。

issueのサブタイプを作成したり修正する設定画面をACCで開きます。
サブタイプを選ぶと、ブラウザのURLが下記のようになります。
https://acc.autodesk.com/build/issues/projects/projectId/types?typeOrCategoryId=xxxxxxxxxxxxxxxxxxxxxxx

ここで、types?typeOrCategoryIdの指定するIDが、サブタイプIDです。これをメモしておきます。

もちろん、このサブタイプIDもAPIで取得出来ます。
下記URLが、APIリファレンスです。サブタイプIDを取得するには、クエリーパラメーターに”include=subtypes”と入れないと、普通にAPIを叩いただけではサブタイプIDは取得出来ません。
https://aps.autodesk.com/en/docs/acc/v1/reference/http/issues-issue-types-GET/

いよいよissueの自動投稿を行っていきます。
黄色の枠で囲われた部分のように、入力してください。

⑩入力出来たら、OKボタンを押します。これで自動投稿の準備が出来たので、プログラムを実行していきます。
左下の「Run Once」を押します。

⑪実行出来たら、Output結果を確認します。ステータスコードが201なので、ちゃんと実行出来ています。

⑫ACCのブラウザを見てみましょう。ちゃんと、issueが作成出来ていることが分かります。

面倒なコードやプログラムを準備せずとも、たったこれだけで認証~API実行まで全部出来てしまいます。得たJSONデータはMake上で色々料理出来てしまうので、是非色々触ってみてください。
ところどころ手動でIDを取得していますが、これらすべてをMake上で実行すると下記のようなプログラムになります。以上です。

最後に

いかがでしたか?
Autodesk Platform Serviceには、様々なAPIが用意されており、もちろんチュートリアルもあります。
APSのAPIを活用することで、様々な恩恵を受けることが出来ますが、その為にはITスキルが必要です。
前段の話で言ったように、全ての建設パーソンにAPSの恩恵を受けてもらう為には、Makeのようなノーコードツールを使ってもらう必要があります。

わざわざWebアプリケーションを作成することなく、実現したいことを最小工数で実現する。これこそノーコードツールの威力なのです。

今回の記事では紹介しきれませんでしたが、当社では、Power BIと連携させ、毎日の業務管理を自動化させたりなど様々な自動化を行っています。
今度はACCで入れている日報情報を使って、勤怠管理システムとの自動連携を行ってみようと思います。勤怠管理システムがクラウドだとWeb APIも沢山公開されているので使って楽しないともったいないですね。
このように、ノーコードツールを会社の自動化を支える基盤として活用しています。
自動化の推進を強力に、かつ最小工数で実施する為の手段として、Makeを活用しています。

僕自身、自動化というとコードをこれまで当たり前のように書いていましたが、Makeはこれまでのノーコードツールと違って自分にとってかなりしっくりくるツールでした。
コードを書くのが馬鹿らしくなったくらいです。
皆さんはこのMakeを使って、どんなことを自動化したいですか?
ぜひアイディアを聞かせてください。

Discussion