Parameter Cleanup Icon

パラメータ整理

同名パラメータの特定・値の有無確認・未使用パラメータの削除

パラメータ整理(未使用パラメータ削除)

プロジェクト内の削除可能なパラメータを一覧表示し、同名パラメータの特定・値の有無の確認・不要(未使用)パラメータの削除を行う機能です。

長年運用したモデルには、他プロジェクトからのコピーやファミリ読み込み、共有パラメータの追加などで、同じ名前のパラメータが重複したり、値が一度も入力されていない不要なパラメータが溜まっていきます。本機能はそれらを洗い出し、まとめて削除できます。

対象パラメータ

「ユーザーが削除できるすべてのパラメータ」を対象とします。

種別 内容
プロジェクト 非共有のプロジェクトパラメータ
共有 共有パラメータ(プロジェクトにバインド済み/ファミリ用に読込済み)
グローバル グローバルパラメータ

※ Revit 標準の組み込み(Built-in)パラメータは削除できないため、一覧には表示されません。 ※ ファミリ内部の定義そのもの(ファミリエディタで作る非共有パラメータ)は別ドキュメント側の管理のため対象外です。ただし、ファミリ内部で使われている共有パラメータはファミリ読み込み時にプロジェクトへ登録されるため一覧に現れ、削除も可能です(=下記の「バインドなし」問題)。

⚠️ 「バインドなし」パラメータの値も必ず確認します(改善済み)

「バインドなし」とは

Revit の「プロジェクトパラメータ」は ParameterBindings(パラメータ↔カテゴリの結び付け)で管理されます。 一方、ファミリ内部で定義された共有パラメータは、そのファミリを読み込むとプロジェクトに SharedParameterElement として登録されますが、プロジェクトパラメータとしてはバインドされません。 これが一覧の「バインド」列で「なし」「ファミリ内」と表示されるものです。

何が問題だったか

旧バージョンは「バインドされたカテゴリの要素」だけを走査して値の有無を判定していたため、 バインドがないパラメータは走査対象カテゴリが分からず判定をスキップし、 「バインドなし=判定不能」と表示していました。しかし実際には、そのパラメータは ファミリのインスタンス/タイプ上に実在し値も入っています。 このため「バインドなしだから不要だろう」と削除して値ごと失う事故が起き得ました。

改善内容:値は読み取れます

バインドの有無に関係なく、要素側から実際の値を読み取るようにしました。

  1. モデルを 1 回だけ走査し、「どの要素・タイプがどのパラメータを保持しているか」を索引化します (インスタンスはタイプ単位、タイプはファミリ単位でグループ化し、代表要素 1 つだけパラメータを列挙)。
  2. その索引を使って、対象パラメータを実際に保持している要素だけを走査し、値を読み取ります (共有パラメータは GUID、非共有は Definition で取得。どちらも効かない場合のみ Parameters 列挙にフォールバック)。

この結果、値の列は次の 3 状態に分かれます。

表示 意味 削除の安全性
値あり(緑) 値が入った要素が 1 件以上ある ❌ 削除すると値が失われる
空(橙) パラメータを保持する要素はあるが、どれも値が未入力 ⭕ 値の損失なし
未使用(赤) どの要素・タイプもこのパラメータを保持していない(定義だけが残っている) ⭕ 値の損失なし

さらに「使用箇所」列に、そのパラメータを保持している要素数とカテゴリの内訳を表示します (ツールチップにはファミリ名・要素 ID・実際の値の例も表示)。

安全装置

それでも残る制約

使い方

  1. リボン 28 Tools > パラメータ > パラメータ整理 をクリックします。
  2. ダイアログにプロジェクト内の削除可能なパラメータが一覧表示されます。
    • 同名のパラメータはオレンジ色で強調表示されます。
    • 「同名のみ」チェックで重複パラメータだけに絞り込めます。「検索」欄(パラメータ名・グループ名)と「種別」(すべて/プロジェクト/共有/グローバル)でも絞り込めます。
  3. ダイアログを開くと自動で値の有無を判定します(「値の有無を確認」 ボタンで再実行できます)。
    • 判定中は進捗バーが表示され、「中止」 でいつでも中断できます。判定中は Revit 本体を操作できません(完了・中止で自動的に戻ります)。
    • 結果は一番右の 「値」列 に「値あり」(緑)/「空」(橙)/「未使用」(赤)で表示されます。
    • 「使用箇所」列に、そのパラメータを保持している要素数とカテゴリ内訳が表示されます。
    • 確認完了後、下部に 「値あり ◯件 / 空 ◯件 / 未使用 ◯件」 のサマリーが表示されます。
  4. 削除したいパラメータの「選択」チェックを入れます。
    • 「空を全選択」/「未使用を全選択」 ボタンで、該当状態のパラメータを一括選択できます(いずれも値の確認が完了している必要があります)。
    • 一覧の下の 「全選択」/「選択解除」 ボタンは、フィルターで表示中の行だけを対象に選択/解除します。
  5. 「選択したパラメータを削除」 を押し、確認ダイアログで はい を選ぶと削除が実行されます。

大容量モデルでのフリーズ対策

Revit API はシングルスレッドのため、値の有無判定を全モデルに対して行うと処理が重くなります。本機能は次の設計でフリーズを回避しています。

値の有無の判定について

並べ替え・絞り込み(Excel風フィルター)

各列見出しの右にある「▾」ボタンをクリックすると、Excel のオートフィルターと同様のメニューが開きます。

上部の「検索」「同名のみ」「種別」フィルターとも併用できます。

パラメータグループの表示

「パラメータグループ」列に、各パラメータが属するグループ(プロパティパレットの見出し。例:「寸法」「識別情報」「その他」)を表示します。

集計表参照の表示

「集計表参照」列には、そのパラメータを集計表(スケジュール)のフィールドで使用している集計表名が表示されます(列挙時に自動取得。全要素走査ではないため軽量です)。削除前に「どの集計表で使われているか」を確認できます。

⚠️ この列が空でも「どこからも参照されていない」とは限りません。以下は Revit API の制約により検出対象外です:

このため、削除前の警告ダイアログは引き続き表示されます。

⚠️ 削除時の注意

← ホームに戻る