01概要
RevitCDEはRevitプロジェクト向けCommon Data Environmentです。
ユーザー操作を具体的なモデルオブジェクトに関連付けます。
監査可能なデジタルループを構築する。
02対象ユーザー
RevitCDEは複数の異なる役割に対応します。
BIMコーディネーター / プロジェクトマネージャー
モデル、承認、文書、タスクの状態を確認します。
作成者(設計者)
頻繁にコンテキストを切り替えずRevit内で作業します。
承認者
スナップショットと文書を使って受信した依頼をレビューします。
閲覧者
プロジェクト範囲内の読み取りアクセス。
積算担当者
見積データベース、明細、モデル外コスト。
工程担当者
工程、アクティビティ、モデル外の時間プロセス。
管理者
サーバー、ユーザー、プロジェクト、データベース、ポリシー。
03解決する課題
Revitと管理プロセスの断絶
承認とタスクがモデルから分離しています。
プラグインがモデルデータを取得し、依頼をオブジェクトへ関連付けます。
唯一の正しい情報源がない
ファイル、メール、表計算のバージョンが分岐します。
CDE構造がプロジェクト、文書、バージョン、履歴を保存します。
不透明な承認
決定が失われ、ルートが非公式な運用になります。
ApprovalRequest、多段階ルート、追記専用イベント、不変スナップショット。
Revitでモデル状態が見えない
設計者は、承認済み、保留中、却下の状態を確認できません。
状態をShared ParametersとExtensible Storageへ反映します。
3D、4D、5Dが連携していない
見積と工程が別々に動き、モデル外の作業が管理対象から外れます。
プロジェクトごとのestimate.dbとschedule.db、4D/5Dの中心としてのWorkPackage。
サーバーなしのオフライン/ローカル作業
分離モデルには、サーバーへの移行経路を失わずに使えるローカル保存が必要です。
Extensible Storageのローカルモード、任意の外部単一ファイルDB、後からサーバーへ移行。
04仕組み
3つのレイヤーが1つのデータループを形成します。
- ユーザーはRevitで作業します。プラグインはモデル要素、シート、ビュー、集計表、状態を読み取ります。
- モデルをサーバープロジェクトへ関連付けます。関連付けはExtensible Storageを使ってRVTモデル内に保存されます。
- プラグインは、プロジェクト要素、モデル要素、変更、状態、依頼、タスク、チャット、文書をサーバーと同期します。
- サーバーはグローバルデータをメインDBに、分野別データをプロジェクト単位のDB(model_{guid}.db、disciplines.db、estimate.db、schedule.db)に保存します。
- Webキャビネットでプロジェクト、文書、承認、タスク、チャット、管理を提供し、SignalR経由でリアルタイム更新を配信します。
- 承認者の決定、状態変更、関連文書、タスクがRevitへ戻り、プラグインとモデルパラメータに表示されます。
共同作業モードではサーバーが正しい情報源です。一方、モデルには最小限の関連付けとローカルデータを保持し、Revit再起動やオフライン期間でも作業を継続できます。
05機能
機能マップの概要。
プロジェクト
プロジェクト設定、メンバー、ロール、標準、分野、ステージ、パッケージ。
モデル
RVT関連付け、同期、識別子、フィンガープリント、状態、変更追跡。
承認
依頼、ルート、スナップショット、決定、取下げ、ジャーナル、リアルタイム更新。
文書
CDE文書、バージョン、アップロード/ダウンロード、SHA-256、WIP→Shared→Published→Archived。
タスク
カンバン、ガント、重要度、状態、担当者、タスク関係。
コミュニケーション
プロジェクトチャット、メッセージ、リアクション、通信、メール連携。
管理
ユーザー、ロール、サーバーパラメータ、データベース、稼働状態、認可ポリシー。
4D/5D
見積、工程、WorkPackage、数量スナップショット、EVM/CPM。
ローカル作業
Extensible Storage、任意の外部ローカルDB、サーバーへの移行。
ローカライズ
UIローカライズを一元管理。ロードマップでは22言語に対応。
06利用シナリオ
シートまたはビューを承認申請する
- 手順1
- 手順2
- 手順3
- 手順4
- 手順5
- 手順6
WIPから公開までの文書
- 手順1
- 手順2
- 手順3
- 手順4
- 手順5
モデル、見積、工程を関連付ける
- 手順1
- 手順2
- 手順3
- 手順4
- 手順5
07よくある質問
質問1
回答1
質問2
回答2
質問3
回答3
質問4
回答4
質問5
回答5
質問6
回答6
質問7
回答7
質問8
回答8
質問9
回答9
質問10
回答10
以下では、RevitCDEの構築方法を確認したい読者向けに技術レイヤーを説明します。
08ソリューション構成
| コンポーネント | 用途 | 技術 |
|---|---|---|
RevitCDE.Addin | Revitアドインの入口、モデル関連付け、コマンド登録。 | C# /.NET Framework, Autodesk Revit API |
RevitCDE.UI | Revit内のデスクトップパネル、コマンド、ユーザー操作。 | WPF / MVVM |
RevitCDE.Core | アプリケーションサービス、同期、ローカル保存、サーバー通信。 | C# services, HTTP clients, SQLite |
RevitCDE.Domain | 共有ドメインモデル、識別子、状態、業務ルール。 | netstandard2.0 library |
RevitCDE.Server | 中央API、認証、プロジェクトデータ、連携サービス。 | ASP.NET Core 8, EF Core, PostgreSQL |
RevitCDE.Cabinet | プロジェクト、文書、承認、タスク、チャット、管理のためのWebキャビネット。 | TypeScript / React web UI |
RevitCDE.Localization | 表示UI全体の共通翻訳辞書と言語切替。 | JSON辞書、共通i18nキー |
09ローカルモードとサーバーモード
RevitCDEは2つの実行モードに対応します。
ローカルモード
データはモデルのExtensible Storageに保存されます。
外部ローカルストレージ
RVTモデルごとに個別のデータベースファイルを使用します。
サーバーモード
アクティブなデータはサーバーに保存されます。
ローカルからサーバーへの移行ルール。
10ストレージ構成
| 保存先 | 保存内容 | この構成にする理由 |
|---|---|---|
| メインサーバーDB | ユーザー、組織、プロジェクト、ロール、グローバル設定、ライセンスデータ。 | プロジェクト横断データを1つの正式なサーバーデータベースに保持します。 |
| model_{guid}.db | モデル要素、シート、ビュー、集計表、数量、モデル単位の関連付け。 | 大規模モデルデータをRVTモデルごとに分離し、性能と保守性を確保します。 |
| disciplines.db | プロジェクト分野、ステージ、パッケージ、標準別文書構造。 | グローバルスキーマを変更せずにプロジェクト標準を発展させられます。 |
| estimate.db | 見積文書、明細、モデル外コスト、数量リンク、WorkPackage関連付け。 | コストデータには独自のライフサイクルがあり、モデルに存在しない項目も含める必要があります。 |
| schedule.db | 工程アクティビティ、依存関係、モデル外の時間プロセス、WorkPackageリンク。 | 計画データにはCPM/ガントのロジックが必要で、モデルデータと見積データの両方を参照する場合があります。 |
| Extensible Storage | RVT内の最小限のモデル関連付け、技術識別子、ローカルフォールバックデータ。 | サーバー環境外でもモデル自身が識別可能な状態を保ちます。 |
| 外部ローカルDB | チャット、承認、文書、タスク、その他ローカルデータ用の任意の単一ファイルDB。 | 分離/ローカルモデルは、Extensible Storageを肥大化させずに豊富なデータを保持できます。 |
11セキュリティとアクセス
セキュリティはメンバーシップ、ロール、JWT、信頼モードを中心に構成されています。
12承認機能の内部構造
形式化され、再現可能なプロセス。
承認申請
選択したモデル改訂または文書パッケージの承認依頼を作成します。
不変スナップショット
レビュー対象となるモデルと文書の正確な状態を記録し、決定を再現可能にします。
承認ルート
順次または並列のレビュー手順、担当参加者、必要な決定を定義します。
記録された決定
承認、却下、差戻し、コメントを、作成者と日時とともに保存します。
イベント履歴
提出、割当、決定、状態変更を追記専用タイムラインとして保持します。
状態同期
確定した承認状態をプロジェクトオブジェクトと接続済みRevitワークフローへ戻します。
リアルタイム更新
手動でページを更新しなくても、接続中のクライアントへ承認変更を配信します。
13WorkPackage — 4D/5Dの中心
モデル、数量、見積、工程、進捗を結ぶ中心オブジェクト。
ModelElement |
ワークパッケージをBIM要素とその安定した識別子へ関連付けます。 |
QuantityItem |
計測数量と、各数量を取得した情報源を保存します。 |
EstimateItem |
数量を見積明細、単価、計算コストへ関連付けます。 |
WorkPackage |
範囲、モデル、コスト、工程、責任、証拠を結ぶ中心オブジェクトとして機能します。 |
ScheduleActivity |
ワークパッケージを計画アクティビティ、日付、依存関係、クリティカルパスデータへ関連付けます。 |
ProgressSnapshot |
実績進捗、アーンドバリュー指標、報告期間の実績を保存します。 |
プロジェクトデータベースは分野別に分割されます。
14標準、分野、ステージ、パッケージ
プロジェクト標準が文書、見積、工程の形式を定めます。
ProjectStandard
有効なプロジェクトルール、命名規則、必要な情報構造を定義します。
分野
プロジェクト分野カタログと分野別責任を管理します。
PackageType
設計、調達、施工で再利用できるパッケージ構造を定義します。
ProjectStage
プロジェクトステージ、ステージ遷移、各ステージで必要なデータを管理します。
ProjectRole
プロジェクト内の責任、権限、承認権限を定義します。
StandardPreset
標準、分野、ステージ、ロール、パッケージ種別の再利用可能な組合せを適用します。
15REST API — 主要グループ
分野別REST API。JWT認証を使用します。
-
`/api/auth/*`· 認証、アカウントセッション、パスワード復旧、アクセストークン。 -
`/api/approvals/*`· 承認依頼、ルート、決定、コメント、状態変更。 -
`/api/cde/*`· プロジェクト、モデル、文書、課題、共有プロジェクトデータ。 -
`/api/chats/*`· プロジェクト会話、参加者、メッセージ、添付ファイル。 -
`/api/tasks/*`· タスク、担当者、期限、優先度、完了状態。 -
`/api/standards/*`· プロジェクト標準、分野、ステージ、ロール、パッケージプリセット。 -
`/api/45d/*`· ワークパッケージ、数量、見積、工程アクティビティ、進捗。 -
`/api/admin/*`· 管理、設定、診断、管理された保守操作。
16用語集
CDE- Common Data Environment — プロジェクト情報、コミュニケーション、意思決定を管理する空間。
Extensible Storage- モデル内に構造化されたアプリケーションデータを保存するRevitの仕組み。
Shared Parameters- 共通定義ファイルを通じてプロジェクトとファミリで共有されるRevitパラメータ。
ProjectElement- Revit文書外でBIM要素を表すプロジェクト側レコード。
ModelElement- 特定のモデルとモデル改訂内の要素を指す安定した参照。
Snapshot- レビューまたは承認に使用した正確なプロジェクトデータ状態の不変記録。
ApprovalRequest- 定義した範囲を承認ルートへ送る正式な依頼。
WorkPackage- 範囲、数量、コスト、工程、責任を結ぶ中心的な4D/5Dオブジェクト。
EVM- Earned Value Management — 計画価値、出来高価値、実コストを用いた進捗測定。
CPM- Critical Path Method — アクティビティ依存関係と利用可能な余裕時間に基づく工程分析。
17今後の開発
現在の実装には稼働するコアがあります。以下は今後拡張する機能です。
ローカライズ拡充
すべての対応言語について、用語の全面見直しと分野別表現を整備します。
文書ワークフロー
版管理された文書台帳、送付票、レビューパッケージ、証拠チェーン。
高度な4D/5D
より詳細なワークパッケージ計画、コスト管理、進捗予測、アーンドバリュー分析。
BCF相互運用
BCF標準を通じて、他のBIMアプリケーションと課題やビューポイントを交換します。
リンクモデル調整
リンクモデル、所有権、改訂、モデル間依存関係を調整します。
可観測性
運用ダッシュボード、監査指標、診断、サービス状態監視。