Synchronizing Revit Central Models between Offices over Internet-VPN

Synchronizing Revit Central Models between Offices over Internet-VPN

mohammad.badranHYA7R
Explorer Explorer
1,122 Views
5 Replies
Message 1 of 6

Synchronizing Revit Central Models between Offices over Internet-VPN

mohammad.badranHYA7R
Explorer
Explorer

hello Revit community,

 

This post/query is addressed to IT Infra/System engineers mainly supporting Autodesk Revit apps.

 

Our company is a multi-discipline engineering consultancy firm. We have thousands of employees & engineers distributed across 30+ countries.

 

Our main Engineering Design Centers are in the Middle East. Additionally, we have offices in Europe, Asia, Africa, & Gulf.Our engineers use Autodesk Revit heavily across all these geographically dispersed offices. Revit file-based work-sharing is used by the engineers to enable collaboration between them within the same project.

Recently, we have been asked to allow geographically distributed engineering teams to work and collaborate on the same Revit Project. This means many engineers need to access the same Revit files across WAN-VPN links which are currently very slow and takes a lot of time. Network latency between our design offices ranges from at least 80 ms to 200 ms. Revit activities like Sync with Central, Reload Latest, Opening the central model, and others takes alot of time if the Remote engineers needs to perform such operation over a VPN link and with 100ms of latency.

 

Replicating Revit files across offices using traditional tools like robocopy, DFS-R,… is not a viable/supported option in case of Revit Central Model file-based work-sharing mode. (due Multiple users accessing the same file and doing changes at the same time==> version conflicts for rvt files).

 

Note that we currently are using Revit Server and Revit Accelerators between offices, but this solutions is still too slow and not fulfilling the engineers needs

 

We are trying to find a solution to replicate/synchronize two-ways the Shared Folder hosting the Revit Project files Central Models from Windows-File-Server-A in Office-A to Windows-File-Server-B in Site-B thus giving our users a LAN experience when accessing the Revit Central Models and not via WAN/Internet which is slow.
This kind of file synchronization needs to be in both ways and in real-time allowing users to access the same replicated Revit file from both locations and doing changes (Sync with Central,...) at the same time (a kind of Global/distributed File locking mechanism).

 

any ideas ?

 

thanks,

0 Likes
Replies (5)
Message 2 of 6

svein.horve
Contributor
Contributor

Hi,

 

We had a similar problem with collaborating with our other offices that's not very far apart, but enough to make Revit server way too slow. After a lot of digging and testing I found the problem for the slow transfer speed on "high"(more than a few ms) connections and I managed to create a custom binding in the the webconfig.xml file for the Revit server to use a larger connectionBufferSize, this increased the speed from ~4mbit/s to the full 200mbit/s which was the limit of the connection, the latency was around 20ms.

 

I can't remember how I landed on these value as this was a long time ago, but they seem to work for us:

connectionBufferSize="8388608" maxOutputDelay="00:00:30" maxBufferPoolSize="26553600" maxBufferSize="26553600" maxReceivedMessageSize="6147483647"

 

Here's the part I changed, you'll need to change the 2020 parts to whatever version you are using:

<client>
    <endpoint address="net.tcp://localhost/ModelService2020/Files.svc/netTcp" binding="customBinding" bindingConfiguration="TcpStreamed" contract="Autodesk.Social.Services.Files.ServiceContracts.Client.Internals.IFilesService" name="files" />
    <endpoint address="net.tcp://localhost/ModelService2020/Files.svc/upload" binding="customBinding" bindingConfiguration="TcpStreamed" contract="Autodesk.Social.Services.Files.ServiceContracts.Client.Internals.IFileUploadService" name="upload" />
    <endpoint address="net.tcp://localhost/ModelService2020/Files.svc/download" binding="customBinding" bindingConfiguration="TcpStreamed" contract="Autodesk.Social.Services.Files.ServiceContracts.Client.Internals.IFileDownloadService" name="download" />
</client>
<bindings>
    <customBinding>
        <binding name="TcpStreamed">
            <binaryMessageEncoding />
            <tcpTransport connectionBufferSize="8388608" maxOutputDelay="00:00:30" transferMode="Streamed" portSharingEnabled="true" maxBufferPoolSize="26553600" maxBufferSize="26553600" maxReceivedMessageSize="6147483647" />
        </binding>
        <binding name="TcpBuffered">
            <binaryMessageEncoding />
            <tcpTransport connectionBufferSize="8388608" maxOutputDelay="00:00:30" transferMode="Buffered" portSharingEnabled="true" maxBufferPoolSize="6553600" maxBufferSize="6553600" maxReceivedMessageSize="6553600" />
        </binding>
        <binding name="TcpLongRunningBuffered">
            <binaryMessageEncoding />
            <tcpTransport connectionBufferSize="8388608" maxOutputDelay="00:00:30" transferMode="Buffered" portSharingEnabled="true" maxBufferPoolSize="6553600" maxBufferSize="6553600" maxReceivedMessageSize="6553600" />
        </binding>
        <binding name="TcpFast">
            <binaryMessageEncoding />
            <tcpTransport connectionBufferSize="8388608" maxOutputDelay="00:00:30" transferMode="Buffered" portSharingEnabled="true" maxBufferPoolSize="6553600" maxBufferSize="6553600" maxReceivedMessageSize="6553600" />
        </binding>
    </customBinding>
</bindings>
<services>
    <service behaviorConfiguration="FileServiceBehavior" name="Autodesk.RevitServer.Enterprise.Service.Protected.Model.ModelService">
        <endpoint address="netTcpStreamed" behaviorConfiguration="EndpointBehaviour" binding="customBinding" bindingConfiguration="TcpStreamed" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model" contract="Autodesk.RevitServer.Enterprise.Common.ClientServer.ServiceContract.Model.IModelService" />
        <endpoint address="netTcpBuffered" behaviorConfiguration="EndpointBehaviour" binding="customBinding" bindingConfiguration="TcpBuffered" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model" contract="Autodesk.RevitServer.Enterprise.Common.ClientServer.ServiceContract.Model.IModelService" />
        <endpoint address="tcpstream" behaviorConfiguration="EndpointBehaviour" binding="customBinding" bindingConfiguration="TcpStreamed" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model" contract="Autodesk.RevitServer.Enterprise.Common.ClientServer.ServiceContract.Model.IModelService" />
        <endpoint address="tcpbuffer" behaviorConfiguration="EndpointBehaviour" binding="customBinding" bindingConfiguration="TcpBuffered" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model" contract="Autodesk.RevitServer.Enterprise.Common.ClientServer.ServiceContract.Model.IModelService" />
        <endpoint address="tcplongrunningbuffer" behaviorConfiguration="EndpointBehaviour" binding="customBinding" bindingConfiguration="TcpLongRunningBuffered" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model" contract="Autodesk.RevitServer.Enterprise.Common.ClientServer.ServiceContract.Model.IModelService" />
        <endpoint address="tcpfast" behaviorConfiguration="EndpointBehaviour" binding="customBinding" bindingConfiguration="TcpFast" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model" contract="Autodesk.RevitServer.Enterprise.Common.ClientServer.ServiceContract.Model.IModelService" />
    </service>
    <service behaviorConfiguration="FileServiceBehavior" name="Autodesk.Social.Files.Services.FilesService">
        <endpoint address="netTcp" binding="customBinding" bindingConfiguration="TcpStreamed" name="files" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model.File" contract="Autodesk.Social.Services.Files.ServiceContracts.IFilesService" />
        <endpoint address="upload" binding="customBinding" bindingConfiguration="TcpStreamed" name="upload" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model.File" contract="Autodesk.Social.Services.Files.ServiceContracts.IFileUploadService" />
        <endpoint address="download" binding="customBinding" bindingConfiguration="TcpStreamed" name="download" bindingNamespace="http://Autodesk.RevitServer.Enterprise.Services.Protected.Model.File" contract="Autodesk.Social.Services.Files.ServiceContracts.IFileDownloadService" />
    </service>
</services>

 

Message 3 of 6

mohammad.badranHYA7R
Explorer
Explorer

thanks @svein.horve  for your reply,

 

actually i dont have experience with the Revit Server but will ask the team handling it to check these parameters and test changing them and see the results.

 

you mentioned the network latency at your environment between offices was 20ms, but in our case is more than 100ms.

 

are you still happy with the Revit Server solution ? or you shifted to BIM360 collaboration ?

 

thanks,

 
 
0 Likes
Message 4 of 6

svein.horve
Contributor
Contributor

We still use Revit Server and it's working fine. It's a bit annoying that it can't host other files, so we have to use a fileserver to load other links like dwg/ifc etc. BIM360 would probably solve this, but it's a bit expensive.

 

We tried hosting workshared models directly on the fileserver, but on connections with a bit of latency this caused a lot of stuttering, that's why we moved our models to Revit Server where it works very good after changing the config. Without the config change it was absolutely unbearable with even a few ms latency, so you should see a great improvement by doing that, even if you're on 100ms, at least when opening/syncing models.

 

We don't have any Revit Accelerators on each site, so you'd probably want to change the config on those too? I also forgot to mention which web.config I changed, it was the modelservice one located in "C:\Program Files\Autodesk\Revit Server 202x\Services\ModelService\web.config"

0 Likes
Message 5 of 6

mohammad.badranHYA7R
Explorer
Explorer

thanks @svein.horve  for the detailed info and your help, i will ask the revit server admin to apply the same on both Revit Server and Revit Accelerator and do Syncs tests

0 Likes
Message 6 of 6

mohammad.badranHYA7R
Explorer
Explorer

hello @svein.horve , after applying the new web.config, the improvement of sycning,opening revit central models we got was around 15-20% only.

 

0 Likes