はじめに
RevitのBIMプロジェクトでは、配管やダクトの長さを手動で計算するのは手間がかかり、時間がかかる作業です。このアドイン「PipeDuctQuantifier」は、配管およびダクトの長さを自動的に算出し、その結果をCSVファイルとしてエクスポートすることができます。
これにより、手動での作業を削減し、計算ミスを防ぎ、作業時間の短縮が可能になります。
アドインの概要
PipeDuctQuantifier アドインは、Revit内で作成した配管(Pipe)とダクト(Duct)の全体長を自動的に集計し、CSVファイルとして出力します。
主な特徴:
- 配管(Pipe)とダクト(Duct)の全長を算出
- 結果をCSV形式でデスクトップに保存
- メートル単位で計算結果を表示
このアドインを使えば、手動で長さを計算する手間を省き、迅速に作業を進めることができます。
導入方法
-
GitHubからアドインをダウンロード
GitHubリポジトリから最新のアドインファイルをダウンロードします。
-
インストール手順
- ダウンロードしたファイルを解凍し、Revitのアドインフォルダに配置します。
- 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