1. TOP
  2. ブログ
  3. Revitのユニットテストを実現するRevit Test Framework (RTF)の重要性とは

Revitのユニットテストを実現するRevit Test Framework (RTF)の重要性とは

Autodesk社が提供する3D CADソフトのRevitは、近年のBIM需要の増加に伴い、導入企業も増えてきています。高いクオリティの設計と図面の一本化に役立つ同サービスですが、運用に当たっては試行錯誤を効率よく繰り返せる環境も重視されます。

RevitにはRevit Test Framework(RTF)が公式に提供されており、ユニットテストを実施する際に活躍します。今回は、Revitでユニットテストを実施するメリットや、Revit Test Frameworkがどのような効果を発揮するのかについて、ご紹介します。

①Revit Test Framework (RTF)とは
②なぜユニットテスト(単体テスト)を実施すべきなのか
③Revit Test Frameworkの特徴
④Revit Test Frameworkでテストを実施する手順

Revit Test Framework (RTF)とは

Revit Test Frameworkは、端的に言えばRevit APIのユニットテストを実施するためのフレームワークです。ユニットテストは単体テストとも呼ばれ、プログラムを構成している単位であるユニットが、要件通りのパフォーマンスを発揮できているかどうかを調べる工程です。RTFは Revit を実行するためのジャーナル ファイルを作成し、それを開くためのモデルと、実行する特定のテストまたはテストのフィクスチャを指定します。また、テストの前に開くモデルを指定して、複数のテストを実行することもできます。

Revit Test Frameworkはオープンソースのプロジェクトであるため、Github経由で誰でも利用することができます。以下のサイトから利用してみてください。

Github:https://github.com/DynamoDS/RevitTestFramework

なぜユニットテスト(単体テスト)を実施すべきなのか

Revitは3D CADソフトであるため、本来であればそこまでプログラムの側面が重視されることはありません。しかしそれでもユニットテストを実施するべき理由を知るべく、ここではユニットテストのメリットと注意すべきデメリットについて、ご紹介します。

ユニットテストのメリット

そもそもユニットテストをなぜ実行するのかと言えば、問題の特定を早期に実施し、差し戻しの負担を軽減したり、下流工程でのトラブルを回避し、スムーズでスケジュール通りのプロジェクト遂行を促すためです。

プログラムのテストには大きく分けて、ユニット単位でテストを実行するユニットテスト、そしてモジュール同士を結合させて、全体として不和が生じていたりしないかを確認する結合テストの二つがあります。

ユニットテストはユニット単位でのテストを行う必要があり、面倒に感じてしまいますが、ディテールにこだわりながらテストを実行できるため、細かなバグも見逃すことなく対処することができます。結果的に修正コストの削減に繋がります。

RevitはBIM運用にも最適化されているCADソフトですが、従来の3Dモデリングよりも高度な設計作業が発生します。精度の高い図面作成に役立てられる分、高度な入力作業が発生し、エラーが発生する要因も大きくなる傾向にあります。

ユニットテストを実施することで、Revit運用に伴うバグやその他トラブルの発生率を低減し、安定した運用を実現できます。

ユニットテストの注意すべきデメリット

ユニットテストは質の高い図面作成や3Dモデリングに役立つ一方、実施に当たっては注意も必要です。まず、ユニット単位でのテストの実施は上述の通り負担が大きく、開発者の業務時間を圧迫してしまいます。そのため、ユニットテストを実行していく上では上流作業における人員の増加を実施し、移行の過程をスムーズに進められるよう仕組みづくりを行わなければなりません。

テストが中途半端になると、ユニットテストを実施する意味そのものがあやふやになってしまうため、徹底したテスト環境と人員確保を行いましょう。

Revit Test Frameworkの特徴

それではここで、Revit Test Frameworkの主な特徴について確認しておきます。

無料で利用できる

まずRevit Test Frameworkは、オープンソースのため無料で利用することができます。Githubから簡単にインストールできるので、ユニットテストを実践してみたいという方はすぐにでも運用へと進めるのが特徴です。また、定期的なアップデートはもちろん、世界中のユーザーから形成されるコミュニティも存在するため、利用について困った点などがある場合にはすぐに質問したり、フォーラムのこれまでの回答を確認すれば解消できます。

DynamoとRevitの両方でテストができる

Revit Test FrameworkはRevitと名前がついているものの、Dynamoでも運用が可能です。ビジュアルプログラミングをRevitで実現するDynamoはBIM運用を効率化する上で欠かせない要素です。そのため導入しているユーザーも非常に多いサービスですが、こちらでも問題なくユニットテストを実践できます。サードパーティ製のライブラリを使う機会が増えてくると、予期せぬエラーが発生する可能性も高まります。Dynamo運用の際にはユニットテストも忘れず行うことで、修正作業の負担を軽減しましょう。

Revit Test Frameworkでテストを実施する手順

最後に、Revit Test Frameworkを使ったユニットテストを実施するための手順をご紹介します。主な方法としては、GUIを使った方法と、コンソールを使った方法の2種類が存在します。

GUIを使ったテストの方法

GUIを使ってユニットテストを実行する場合、ビルドのbinフォルダにあるRevitTestFrameworkGUI.exe アプリケーションを開いて開始します*1。RevitSystemTestsアセンブリを追加し、WallTestsのCreateWallByFaceを選択します。アセンブリがロードされない場合は、DynamoCoreからAdditional Resolution DirectoriesにSystemTestServices.dllを追加してみてください。

テストが成功しても失敗しても、Results File Pathで指定したファイルに結果が書き込まれます。テスト実行の出力ファイルは、多くのCIシステムと互換性のあるNUnit形式の結果ファイルです。Test_Results.xmlファイルを開くと、先ほど実行したテストの詳細が表示されます。

コンソールを使ったテストの方法

また、GUI アプリケーションで使用していたすべてのオプションを使用して、コンソールのコマンドラインからテストを実行することもできます。RevitTestFrameworkConsole.exeアプリケーションのディレクトリからコマンドプロンプトを開き、以下のコマンドを入力します。

RevitTestFrameworkConsole -h

GUIで行ったのと同じテストを実行したい場合、すべてのオプションをスペースで区切って1つのコマンドで指定することができます。

まとめ

Revit Test Frameworkは、Revit上でユニットテストを行う上で重要な役割を果たします。BIMモデリングの完成度を高めるためにも、テストは入念に行い、以降の工程における効率化を実現しましょう。


▼キャパの公式Twitter・FacebookではITに関する情報を随時更新しています!

*1 dynamobim “Testing for DynamoRevit · GitBook”
https://developer.dynamobim.org/04-Testing/4-1-revit-testing.html

    ホワイトペーパーフォームバナー

    【DL可能な資料タイトル】

    • ・プログラムによる建築/土木設計のQCD(品質/コスト/期間)向上
    • ・BIM/CIMの導入から活用までの手引書
    • ・大手ゼネコンBIM活用事例と建設業界のDXについて
    • ・デジタルツイン白書
    • ・建設業/製造業におけるデジタルツインの実現性と施設管理への応用

    詳細はこちら>>>

    PAGE TOP