2019年10月

実務者のためのCAD読本

プログラミングでつなぐ【BIMでつなぐ/第2回】

建築系CAD 講師:鈴木裕二

BIMアプリケーションRevitをカスタマイズして、作業をより効率アップしよう。何日もかかってコツコツとコンクリートの柱、梁(はり)に鉄筋を手作業で配置するのと、ダイアログボックスに数値を入れてワンクリックで配置するのと、どちらがいいだろう? 構造計算ソフトウェアやCAM(コンピュータ支援製造)とRevitをつなぐのにはどうすればいいだろう? 手間がかかってもアプリケーションを作って、最終的な効率をアップする「オートメーション」が今回のキーワードだ。

この連載について

今回の連載「BIMでつなぐ/全5回」では、BIMとつなぐ、つなげることで得られる効果やその方法について、最新の情報をお届けします。(変化の激しいBIMテクノロジーに合わせて、テーマを変更させていただく場合もございます。)

シリーズ記事

1.つなぐにはカスタマイズ

7月に米国シアトルで開催されたDigital Built Week 2019というイベントに参加してきた。米国を中心にBIMやITを使った設計・建設の事例発表が行われ、ユーザー同士が交流できるイベントだ。筆者も小さなクラスで発表するとともに、いくつかのクラスに参加した。

BIMアプリケーションの代表格であるRevitだが、発表された事例にはRevitだけでの運用よりも、いくつかのアプリケーションとつないでいる例が多い。Autodesk ForgeというクラウドサービスでRevitを使ったり、構造計算とつないだり、工作機械とつないだりといった例だ。Revitを使って究極の効率アップを実現するには、やはりカスタマイズということになるのだろう。そこで今回、予定したテーマの順序を変更して「プログラミングでつなぐ」を取り上げる。

Digital Built Week 2019での筆者のプレゼンテーション

2.Revitをカスタマイズする準備

「えっ、プログラムでカスタマイズするの? 難しそう」そんな声が聞こえてきそうだが、究極のカスタマイズツールはプログラミングだ。使用するプログラミング言語はC#もしくはVisual Basic、だれでも簡単に挑戦できるよう解説するのでご安心を。

まず開発環境を整える、オートデスク社からサンプルコードやツール、開発用のドキュメントが提供されている。それらを準備することから始める。まずRevit Software Development Kit(SDK:ソフトウェア開発キット)が必要だ。Revit SDKはRevit追加インストールや、インストール時に展開されたフォルダーのRevitSDK.exe、もしくはオートデスク社のWebサイト「Revit Developer Center」からインストールできる。

Revit追加インストールでSDKをインストール

インストール時に展開されたフォルダーのRevitSDK.exeを実行
(既定値ではC:\autodesk\Revit_2020_G1_Win_64bit_dlm\Utilities\SDK)

もう一つ使えるコンテンツがある。「Revit API トレーニングマテリアル(日本語版)」と「Revit API 開発者用ガイド」(日本語)だ。下記リンクを参考にされたい。

3.Microsoft Visual Studioを準備

プログラムを開発するには開発環境が必要だ。使うのはMicrosoft Visual Studio、ここでは製品版のMicrosoft Visual Studio 2019を使うが、無償のバージョンVisual Studio Community 2019も用意されている。

Visual Studio 2019のダウンロードサイトから「Community」を無料ダウンロード

4.Revit SDK内のサンプルを見る

Revit SDKをインストールすると、指定した場所に大量のファイルが展開される。234本のサンプルプログラムは下記の場所にある。

このフォルダーにあるSamplesContent.htmを開くと、図のように分類されてサンプルプログラムの一覧を見ることができる。

SamplesContent.htmを見る

5.Revit SDKのサンプルプログラムを実行する準備

この234本のサンプルプログラムをRevit 2020から使えるようにしたい。少し準備が必要だ。

(1)Software Development Kit\Samples\RvtSamples\CSにあるRvtSamples.txtファイルの内容を、SDKをインストールした位置に合うように置き換える。

ただしこのRvtSamples.txtはバグがあるようで、以下URLで表示される最新版を、既存のRvtSamples.txtが入ったフォルダーにダウンロードし、差し替えて使うほうがいい。

最新版に置き換えてからパス名を調整する。例えば、筆者はSDKを「E:Revit 2020 SDK」にインストールしたので、テキストエディターでRvtSamples.txtを開き、「C:\a\lib\revit\2020\SDK\」を「E:\Revit 2020 SDK\Software Development Kit\」に置換した。

(2)Software Development Kit\Samples\RvtSamples\CS\RvtSamples.addinファイルをテキストエディターで開き<Assembly>RvtSamples.dll</Assembly>を絶対パスに変更する。筆者の場合は次のように変更した。

(3)変更したRvtSamples.addinはRevitが認識する位置にコピーしないといけない。Revit 2020の場合は下記のフォルダーだ。

(4)Revit 2020を実行してみると次のようにエラーメッセージが表示された。プログラムの元になるソースコードはあるが、実行できるDLLファイルはまだできていないので当然だ。DLLを作るにはVisual Studioでビルドという操作が必要になる。

表示されたエラーメッセージ

6.プログラム開発への第一歩

全てのサンプルプログラムを1本ずつ開くのは大変だ。Software Development Kit\SamplesフォルダーにあるSDKSamples.slnを開くと、全てのプロジェクトファイルを一度に開くことができる。SDKSamples.slnには190個のプロジェクトが含まれている。

ソリューションエクスプローラーの図の位置で右クリック、「ソリューションのビルド」を選択すると一度に全てのビルドが開始される。もしRevitのインストール先がC:\Program Files\Autodesk\Revit 2020でないときは、プログラムの参照先をインストール先に合わせて変更するという調整が必要だ。数分でビルドが終了する。

Visual Studio 2019でサンプルプログラムをビルド

実は筆者の環境でビルド時に大量の「XMLコメントがありません」エラーが発生した。これは下図の「XMLドキュメント ファイル」のチェックを外して解決した。あるいはプロジェクトファイル(*. Csproj)を直接変更してもいい。参考までに。

ビルド時のエラーを回避

これで236個のDLLファイルができあがったので、Revit 2020から実行できるはずだ。Revit 2020を起動するとセキュリティ メッセージが表示されるが[常にロード]で応える。

常にロードを選択

Revitには上図のように236個のコマンドが「アドイン」タブの「RvtSamples」パネルから使えるようになった。

7.使ってみる

これだけのサンプルコードがあれば楽しく使うことができる。例えば、Frame Builderというコマンドを実行してみた。図のようにダイアログボックスからの数値の入力で構造モデルを作り上げるツールだ。[OK]ボタンをクリックすると、1分ほどで建築構造モデルがいきなり登場する。

Frame Builderを実行

ソースコードにVisual Studioからアクセスできるので、日本語に変更するのも簡単だ。デバッグしながらプログラムの仕組みを研究することもできる。
変更する-ビルドする-Revitで実行する、この手順の繰り返しでサンプルプログラムを使うことができる。ハードルの高かったカスタマイズの世界も「こんなに簡単なのか」と感じてもらえると思う。

Visual StudioでFrame Builderのコードを編集

8.その他のツール

ここまで紹介したサンプルプログラムやツール以外にも、Revitプログラム開発に必要なツールがいくつかある。詳細な解説は省くが、ぜひインストールして使いこなしていただきたい。

(1)Add-In Manager

起動中のRevitに作成したプログラムをロード・ロード解除させるツール
入手先:Revit 2019 SDKのAdd-In Managerフォルダー(2020でもそのまま使える)

(2)LookUpツール

オブジェクトを選択してその構造を見ることができるツール

(3)Revit 2020 Visual Studio .NET Add-in Wizards

Revitに対応したVisual Studioテンプレート

さぁ、これでRevitカスタマイズの道具がそろい、Revitカスタマイズへ一歩踏み出すことができた。後はほんの少しプログラミング言語を勉強しながら、Revitカスタマイズの世界を進んでいくだけだ。

シリーズ記事