LoginSignup
0
2

More than 3 years have passed since last update.

Revit Test Frameworkを使ったRevitアドインのテスト

Last updated at Posted at 2020-05-04

Revit Test Framework (RTF)とは

AutodeskのDynamo開発チームが提供するRevitAPIのテスト機能。Revitのモデルを指定してテストができ、コマンドラインとGUIが提供されています。
Dynamoだけではなく、Revitアドインのテストにも活用できるということなので使ってみました。

NuGetでパッケージをインストール

NuGetで下記のパッケージをテストプロジェクトにインストールしましょう。

  • RevitTestFramework
  • NUnit

テストクラスを書く

例えば、ドアインスタンスを取得するメソッドをテストする場合、ドアの取得数をテストする時、5個のドアを入力したRevitデータ(5doors.rvt)を用意します。

DoorUtility.cs
using Autodesk.Revit.DB;
using System.Collections.Generic;

namespace FamilyUtility
{
    public class DoorUtility
    {
        public static IList<Element> GetDoorInstance(Document doc)
        {
            var doors = new FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Doors).OfClass(Typeof(FamilyInstance)).ToElements();
            return doors;
        }
    }
}
DoorUtilityTest.cs
using FamilyUtility;
using NUnit.Framework;
using RTF.Applications;
using RTF.Framework;

namespace FamilyUtilityTest
{
    [TestFixture]
    public class DoorUtilityTest
    {
        [SetUp]
        public void Setup() {}

        [TearDown]
        public void ShutDown() {}

        [Test, Category("Door")]
        [TestModel(@".\5doors.rvt")]
        public void DoorInstanceCountTest()
        {
            var doc = RevitTestExecutive.CommandData.Application.ActiveUIDocument.Document;
            var doors = DoorUtility.GetDoorInstance(doc);
            Assert.IsNotNull(doors);
            Assert.IsTrue(doors.Count == 5);
        }
    }
}

指定するデータはワイルドカード[TestModel(@".\*.rvt")]でも指定できます。

GUIでテストを実行

NuGetで取得した RevitTestFrameworkGUI.exe を起動しテストを行います。

  • File: 下記の設定をファイルに保存できます。
  • Test Assembly: テストクラスを持つアセンブリを指定します。
  • Results File Path: 結果出力ファイルを指定します。
  • Working Directory: 作業フォルダを指定します。テストデータのカレントになります。
  • Run: テストを開始します。自動でRevitが起動し、テストデータもロードされます。

注意点

指定するテストデータはテストするRevitバージョンで保存しておきましょう。
例えばRevit 2019でテストする場合のテストデータは、Revit 2019で保存したデータでないとダメなようです。

おわりに

うまく使えば品質管理が効率的に行えると思います。
Revitの起動が繰り返しあるととにかく遅いです。

参考

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2