Três tipos diferentes de bloqueio são utilizados para manter a integridade dos dados no compartilhamento de trabalho com base no servidor:
Os bloqueios a nível de elemento são adquiridos ao efetuar o check-out de um workset, ao explicitamente tomar emprestado um elemento ou ao editar um elemento diretamente. Eles podem ser liberados quando um usuário executa uma operação Sincronizar com o arquivo central, e estão sempre disponíveis na operação Liberar todos os meus.
No fluxo de trabalho com base no servidor, os bloqueios a nível de elemento são mantidos em uma coleção de bancos de dados SQLite. Por exemplo, os bloqueios a nível de elemento adquiridos sem a utilização de worksets são armazenados no arquivo ElementPermissions.db3:
Como os bloqueios a nível de elementos são associados com os usuários através do nome de usuário do Revit (e não por uma instância particular do Revit, uma determinada estação de trabalho ou uma conta de usuário da rede), o Revit Server irá tratar dois indivíduos com o mesmo nome de usuário do Revit como um usuário único. Neste caso, é possível modificar o mesmo elemento ao mesmo tempo, o que pode resultar na perda de dados e a corrupção do modelo. Portanto, cada usuário que esteja colaborando através do Revit Server deveria se assegurar a escolher um nome de usuário único do Revit.
Em alguns casos, pode ser aceitável que assumam a identidade de outro usuário ao intencionalmente adotar o nome de usuário do Revit daquele usuário: se o usuário precisar modificar um elemento bloqueado por outro usuário, e aquele usuário não está disponível para liberá-lo, um administrador pode temporariamente assumir a identidade do usuário e liberar o bloqueio. Observe que isto pode causar que a cópia local do usuário se torne irreconciliável com o modelo central, potencialmente resultando na perda de dados. Portanto, sempre que for viável, é preferível que o criador original do bloqueio libere o elemento.
Usado no compartilhamento de trabalho com base no arquivo e com base no servidor, os bloqueios a nível de modelo são criados pelo Revit durante algumas operações para restringir o acesso ao modelo central quando o acesso simultâneo pode prejudicar a integridade dos dados. Os bloqueios são desativados automaticamente quando estas mesmas operações são concluídas com êxito e não requerem a intervenção manual.
O bloqueio no nível do administrador somente se aplica ao compartilhamento de trabalho com base no servidor, que é utilizado para facilitar as operações de manutenção do host do Revit Server, onde a atividade em um modelo (ou em um conjunto de modelos) deva ser interrompida. Por exemplo, um estado do modelo deve ser congelado antes do modelo ser arquivado. A falha em executar isso pode resultar em uma cópia arquivada contendo alterações parcialmente comprometidas de uma atualização e esta cópia seria inutilizável. Se um bloqueio a nível de administrador for aplicado primeiro, o estado do modelo será mantido como inativo e este problema pode ser evitado.
Um bloqueio a nível de administrador é aplicado usando o utilitário de gerenciamento com base na Web, Revit Server Administrator (ou seu utilitário equivalente de linha de comando). O bloqueio pode ser aplicado em todo o host do Revit Server, em todos os modelos em uma pasta ou em um único modelo.
Para aplicar um bloqueio a nível de administrador para um item
Quando um item está bloqueado:
O bloqueio é de fato aplicado em duas etapas. Primeiro, todas as operações em andamento têm permissão para continuar, enquanto as outras novas são bloqueadas. Quando as operações em andamento tiverem sido concluídas, o bloqueio estará totalmente comprometido e o acesso adicional é incondicionalmente bloqueado até que o bloqueio seja liberado.
Os bloqueios a nível de administrador raramente requerem qualquer tipo de manipulação. No entanto, se não houver algum modelo central malformado (talvez devido à falha na primeira vez em que um novo modelo for salvo), o Revit Server pode não ser capaz de criar ou liberar apropriadamente um bloqueio no nível do administrador. Neste caso, o bloqueio pode ser removido ao excluir o arquivo super.lock do diretório raiz de armazenamento do projeto no host do Revit Server. (Observe que o modelo malformado também deveria ser removido para evitar a repetição do problema).