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 × Excel/CSV連動アドインをあえて自作する5つの理由【C#コード例付き】

Posted at

市販のRevitアドインにも「Excel/CSV連動」機能を持ったものは数多くあります。
しかし、実務の現場では自作するメリットも非常に大きいです。

この記事では、私が実際に感じた「自作アドインならではの強み」と、
それを実現する簡易的なC#コード例を紹介します。

1. 自社のパラメータ体系や命名ルールに完全対応できる

市販アドインは便利ですが、

  • 「列名=パラメータ名」固定
  • 「シートの並び」固定
    など、データの形に制約があることが多いです。

自作すれば…

  • 自社独自のパラメータ命名ルール(例: PJ_, BIM_ プレフィックス)に合わせられる
  • 部門ごとに異なるExcelフォーマットにも対応可能
  • 列名や順番のマッピングを自動化 → データ整形作業が不要

2. 不要な機能を削って軽量化できる

市販アドインは多機能ですが、
その分UIが複雑になり、簡単な更新作業でも手順が多くなります。

自作すれば…

  • 「CSVパス選択 → 実行」だけのワンボタン操作にできる
  • 操作マニュアル不要、誰でもすぐ使える

3. 社外秘データを安全に扱える

一部の既製品はクラウド連携や外部通信を行う場合があります。
これがセキュリティ面で懸念になることも。

自作すれば…

  • コードの挙動をすべて把握できる
  • 社内サーバ上だけでデータを完結でき、情報漏洩リスクが低い

4. 更新や改修を社内で即対応できる

市販品は、RevitのバージョンアップやAPI仕様変更に対応するまで時間がかかることがあります。

自作すれば…

  • API変更や業務ルール変更があっても、その日のうちに修正可能
  • 試験運用 → 改良 → 本運用を短期間で回せる

5. 実務フローに埋め込める

外部データ連動は単体で便利ですが、さらに…

  • 検図前に自動でパラメータ更新する処理と連動
  • Dynamoスクリプトや工程管理システムと直結
  • BIMワークフロー全体の一部として統合

簡易的なC#コード例(CSVからパラメータ反映)

以下は超簡略版サンプルです。
実務ではエラーハンドリングや型変換を追加してください。

using Autodesk.Revit.Attributes;
using Autodesk.Revit.DB;
using Autodesk.Revit.UI;
using System;
using System.IO;
using System.Linq;

[Transaction(TransactionMode.Manual)]
public class CsvParameterUpdater : IExternalCommand
{
    public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
    {
        UIApplication uiApp = commandData.Application;
        Document doc = uiApp.ActiveUIDocument.Document;

        // CSV読み込み(形式:ElementId, ParameterName, Value)
        string csvPath = @"C:\temp\update.csv";
        var lines = File.ReadAllLines(csvPath).Skip(1); // ヘッダー除外

        using (Transaction tx = new Transaction(doc, "CSV Parameter Update"))
        {
            tx.Start();
            foreach (var line in lines)
            {
                var parts = line.Split(',');
                if (parts.Length < 3) continue;

                int id = int.Parse(parts[0]);
                string paramName = parts[1];
                string value = parts[2];

                Element elem = doc.GetElement(new ElementId(id));
                if (elem != null)
                {
                    Parameter param = elem.LookupParameter(paramName);
                    if (param != null && !param.IsReadOnly)
                    {
                        param.Set(value);
                    }
                }
            }
            tx.Commit();
        }

        TaskDialog.Show("CSV Update", "パラメータ更新が完了しました。");
        return Result.Succeeded;
    }
}

まとめ

既製品は「万人向け」で便利ですが、自作は「自社業務に特化」できるのが最大の魅力です。
外部データ連動を完全自動化できれば、パラメータ更新ミスや作業時間をほぼゼロにできます。

「市販アドインで十分」から一歩進んで、
自社専用アドインを持つことで、BIM運用の質とスピードは大きく変わります。

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?