Revit Server でロックを管理する

次の 3 種類のロックを使用して、サーバベースのワークシェアリングでデータの整合性を維持します。

要素レベルのロック

要素レベルのロックでは、複数のユーザが同じモデルで作業しているときに、各要素に対するアクセスをコントロールします。これらは、ファイルベースおよびサーバベースの両方のワークフローで使用され、次のルールに従って動作します。
  • 要素は一度に 1 人のユーザによってのみ所有されます。
  • 要素のロックは Revit ユーザ名によって Revit ユーザに関連付けられます。
  • 要素を所有しているユーザだけがその要素を修正できます。その他のユーザはすべてロック アウトされます。
  • ユーザは変更されていない要素の所有権だけを放棄することができます。
  • 所有権を放棄する前に、変更された要素への変更を中央モデルにコミットするか、その変更をすべて放棄しておく必要があります。

要素レベルのロックは、ワークセットをチェック アウトするか、明示的に要素を参照するか、要素を直接編集することで実行されます。このロックは、ユーザが[中央モデルと同期]を実行することによって解除できます。また、このロックは[自分のものすべてを放棄]操作を完了すると常時解除されます。

サーバベースのワークフローにおいて、要素レベルのロックは 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 つのモデルに適用できます。

管理者レベルのロックを項目に適用するには

  1. Revit Server Administrator を開きます。
  2. ツリー コントロールで、項目を選択し、 (ロック)をクリックします。
    注: コマンドライン ユーティリティを使用してロックを適用する場合、更新操作後にロック アイコンが表示され、使用中のモデルに関する情報は右ペインに表示されます。

項目がロックされると、次のようになります。

ロックは 2 段階で適用されます。まず、すべての実行中の操作は続行できますが、新しい操作はブロックされます。作業中の操作がすべて完了するとロックが完全にコミットされ、ロックが解除されるまでアクセスは無条件にブロックされます。

管理者レベルのロックでは、必要な操作はほとんどありません。ただし、(新しいモデルの初回の保存に失敗したなどの理由により)無効な中央モデルが存在する場合、Revit Server では適切に管理者レベルのロックを作成または解除できない場合があります。この場合、Revit Server ホストのルート プロジェクトが保存されるフォルダから super.lock ファイルを削除することにより、ロックを解除することができます(問題の再発を防ぐために、問題のある無効なモデルも削除してください)。

ロックを使用するためのベスト プラクティス

ロックはシステムによって明示的に管理および維持されるようにできています。次のガイドラインを参照すると、Revit Server を使用して、地理的に分散したサイト間での共同作業を効率的に行うことができます。
  • すべてのユーザが固有の Revit ユーザ名であることを確認します。
  • 操作中に Revit を終了しないでください。
  • 操作に失敗した場合は、(必要に応じて Revit を再起動した後で)その操作をただちに再実行します。
  • 新しい中央モデルを初めて保存するときに失敗した場合、無効なモデルを削除するために管理者に通知してください。