1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Revit API】配管・ダクトの長さを簡単に算出するツール(PipeDuctQuantifier)【Revit2026対応】

Last updated at Posted at 2025-08-08

はじめに

RevitのBIMプロジェクトでは、配管やダクトの長さを手動で計算するのは手間がかかり、時間がかかる作業です。このアドイン「PipeDuctQuantifier」は、配管およびダクトの長さを自動的に算出し、その結果をCSVファイルとしてエクスポートすることができます。
これにより、手動での作業を削減し、計算ミスを防ぎ作業時間の短縮が可能になります。

アドインの概要

PipeDuctQuantifier アドインは、Revit内で作成した配管(Pipe)とダクト(Duct)の全体長を自動的に集計し、CSVファイルとして出力します。

主な特徴:

  • 配管(Pipe)とダクト(Duct)の全長を算出
  • 結果をCSV形式でデスクトップに保存
  • メートル単位で計算結果を表示

このアドインを使えば、手動で長さを計算する手間を省き、迅速に作業を進めることができます。

導入方法

  1. GitHubからアドインをダウンロード

    GitHubリポジトリから最新のアドインファイルをダウンロードします。

    PipeDuctQuantifier GitHub

  2. インストール手順

    1. ダウンロードしたファイルを解凍し、Revitのアドインフォルダに配置します。
    2. Revitを再起動し、アドインがツールバーに表示されることを確認します。

使用方法

1. Revit(2026)を開く
PipeDuctQuantifierアドインをロードした後、Revitのツールバー[アドイン]→[外部ツール]に「PipeDuctQuantifier」が表示されます。

2. 計測対象を選択
計測したい配管またはダクトを選択します。

3. 長さ計算
ツールバーの「PipeDuctQuantifier」ボタンをクリックすると、配管とダクトの合計長が自動的に計算されます。

4. CSV出力
計算結果がCSVファイルとしてデスクトップに保存されます。CSVファイルには、配管とダクトの長さがメートル単位で表示されます。

アドインのコード解説

ここでは、アドインの主要なコード部分を解説します。これを理解することで、同様のアドイン開発に役立てることができます。

1. Execute メソッド

public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
    UIDocument uidoc = commandData.Application.ActiveUIDocument;
    Document doc = uidoc.Document;

    // 配管とダクトの長さをそれぞれ集計
    double totalPipeLength = GetTotalLength<Pipe>(doc);
    double totalDuctLength = GetTotalLength<Duct>(doc);

    // 結果をCSVに書き込む
    string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "PipeDuctSummary.csv");
    StringBuilder sb = new StringBuilder();
    sb.AppendLine($"Pipe,{UnitUtils.ConvertFromInternalUnits(totalPipeLength, UnitTypeId.Meters):F2}");
    sb.AppendLine($"Duct,{UnitUtils.ConvertFromInternalUnits(totalDuctLength, UnitTypeId.Meters):F2}");

    File.WriteAllText(filePath, sb.ToString());

    TaskDialog.Show("積算結果", $"配管・ダクトの長さがCSVとして保存されました:\n{filePath}");
    return Result.Succeeded;
}

Execute メソッドは、アドインを実行した際にRevitで処理されるエントリーポイントです。

配管(Pipe)とダクト(Duct)の長さをそれぞれ算出し、その結果をCSVファイルに書き出します。

UnitUtils.ConvertFromInternalUnits メソッドで、Revit内部単位からメートルに変換します。


2. GetTotalLength メソッド

private double GetTotalLength<T>(Document doc) where T : Element
{
    // 対象の要素をフィルタリング
    var elements = new FilteredElementCollector(doc)
        .OfClass(typeof(T))
        .Cast<T>()
        .Where(e => e.Location != null)
        .ToList();

    double totalLength = 0;

    foreach (var element in elements)
    {
        // ジオメトリを取得
        LocationCurve locationCurve = element.Location as LocationCurve;
        if (locationCurve != null)
        {
            // LocationCurve の長さを取得
            totalLength += locationCurve.Curve.Length;
        }
    }

    return totalLength;
}

GetTotalLength メソッドは、指定されたタイプ(Pipe または Duct)の要素をRevitモデルから収集し、それぞれの長さを合計して返します。

LocationCurve は、配管やダクトのジオメトリを取得するために使用され、その長さを計算します。


🔹 結果の出力

アドインの実行後、配管とダクトの合計長はCSVファイルとしてデスクトップに保存されます。CSVファイルは以下の形式で出力されます:

Pipe 123
Duct 678

このCSVファイルをExcelや他のツールで開くことで、配管とダクトの長さを簡単に確認することができます。


🔹 今後の改善予定

  • 配管・ダクトの種類別に長さを算出できるようにする
  • 複数のビューでの集計に対応する
  • UIを改善して、より直感的に操作できるようにする

🔹 最後に

このアドイン「PipeDuctQuantifier」を使うことで、Revitでの配管・ダクトの長さ集計作業が大幅に効率化できます。開発者の方やBIMコーディネーターの方にとって、非常に便利なツールになると思います。興味のある方は、ぜひGitHubからダウンロードして試してみてください。


🔹 リポジトリリンク

GitHubリポジトリ:PipeDuctQuantifier

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?