次の 3 種類のロックを使用して、サーバベースのワークシェアリングでデータの整合性を維持します。
要素レベルのロックは、ワークセットをチェック アウトするか、明示的に要素を参照するか、要素を直接編集することで実行されます。このロックは、ユーザが[中央モデルと同期]を実行することによって解除できます。また、このロックは[自分のものすべてを放棄]操作を完了すると常時解除されます。
サーバベースのワークフローにおいて、要素レベルのロックは SQLite データベースのコレクションで管理されます。たとえば、ワークセットを使用せずに実行された要素レベルのロックは、ElementPermissions.db3 のファイルに保存されます。
要素レベルのロックは(Revit の特定インスタンス、特定のワークステーション、またはネットワーク ユーザ アカウントではなく)Revit ユーザ名によってユーザと関連付けられるため、Revit Server では同じ Revit ユーザ名を持つ 2 人の異なるユーザを 1 人のユーザとして扱います。この場合、それぞれのユーザは同じ要素を同時に修正できるため、データの損失やモデルの破損が生じる可能性があります。そのため、Revit Server から同時に作業するすべてのユーザには必ず固有の Revit ユーザ名が付けられている必要があります。
場合によっては、ユーザの Revit ユーザ名を意図的に使って、別のユーザに成り代わることが許容される場合もあります。たとえば、別のユーザによってロックされている要素をユーザが修正する必要があり、そのユーザがロックを解除できない場合などは、管理者が一時的にそのユーザの ID を借用して、ロックを解除することができます。これにより、そのユーザのローカル コピーが中央モデルと一致しなくなり、データが失われる可能性が生じることに注意してください。そのため、可能な限り、実際にロックした作成者が要素を解放するようにしてください。
モデルレベルのロックは、ファイルベースおよびサーバベースのワークシェアリングの両方で使用されます。また、中央モデルに同時にアクセスすることによってデータの整合性が損なわれる可能性がある場合に、特定の操作中に中央モデルへのアクセスを制限するために Revit によってロックされます。これらの同じ操作が正常に完了して、手動の操作が不要になると、ロックは自動的に解放されます。
管理者レベルのロックは、サーバベースのワークシェアリングにのみ適用されます。これは、モデル(またはモデルのコレクション)へのアクティビティを停止しなくてはならない状況で、Revit Server ホストの管理操作を実行しやすくするために使用されるためです。たとえば、モデルをアーカイブする前にモデルの状態をフリーズしておく必要があります。フリーズしないと、更新により部分的にコミットされた変更を含むコピーがアーカイブされ、このコピーが使えなくなる可能性があります。管理者レベルのロックをはじめに適用すると、モデルの状態はロックされたままになり、このような問題を防ぐことができます。
管理者レベルのロックは、Revit Server Administrator の Web ベースの管理ユーティリティ(または、そのコマンドライン ユーティリティと同等の機能)を使用して適用します。ロックは Revit Server ホスト全体、フォルダ内にあるすべてのモデル、または 1 つのモデルに適用できます。
管理者レベルのロックを項目に適用するには
項目がロックされると、次のようになります。
ロックは 2 段階で適用されます。まず、すべての実行中の操作は続行できますが、新しい操作はブロックされます。作業中の操作がすべて完了するとロックが完全にコミットされ、ロックが解除されるまでアクセスは無条件にブロックされます。
管理者レベルのロックでは、必要な操作はほとんどありません。ただし、(新しいモデルの初回の保存に失敗したなどの理由により)無効な中央モデルが存在する場合、Revit Server では適切に管理者レベルのロックを作成または解除できない場合があります。この場合、Revit Server ホストのルート プロジェクトが保存されるフォルダから super.lock ファイルを削除することにより、ロックを解除することができます(問題の再発を防ぐために、問題のある無効なモデルも削除してください)。