Server program logic

Server program logic

danilov.iv
Explorer Explorer
319 Views
4 Replies
Message 1 of 5

Server program logic

danilov.iv
Explorer
Explorer

Good day!

Please tell me how to solve the problem, I have been looking for an answer for a long time.
How can I create a revit application with program logic located on the server.
It is required to create a subscription application so that the main code is not available to the user

Typically a revit application will refer to the local path where the DLL resides. You can make a main DLL that
will refer to other DLLs lying on the server. What is the mechanism for this to apply?
I read a little about WPF, gPRC, I only realized that data transfer is possible in the form of numbers, strings, characters, etc.
It seems that the transfer of objects is also possible, they can be serialized, but, as I understand it, only simple objects

I looked Revit objects, and there are very complex classes with thousands of methods and variables
And this, in my opinion, is not serialized. The WALL class takes 1500 lines of code, no less

Maybe I'm going the wrong way. Tell me, in what direction should I think, what to read?

0 Likes
320 Views
4 Replies
Replies (4)
Message 2 of 5

jeremy_tammik
Alumni
Alumni

First of all, if you can send a simple string or number across your communication line, then there is no limit to the complexity of objects that can be handled. It just becomes a question of time. Arbitrarily complex objects can be encoded in simple strings and numbers.

  

Secondly, the Revit end user license forbids the use of the Revit end user product as a server. Such use is illegal. Still, for certain private purposes, I am aware that people use it that way. You certainly cannot make such a service public, though.

  

The professional answer to your question is to make use of Autodesk Forge and the Forge Design Automation API for Revit:

 

   

Then, you have no need to install anything locally at all and can make full use of the Revit API in an automated fashion on servers in the cloud.

  

Jeremy Tammik Developer Advocacy and Support + The Building Coder + Autodesk Developer Network + ADN Open
0 Likes
Message 3 of 5

Kennan.Chen
Advocate
Advocate

How about defining your own models(objects).

Your server logic is then built on top of you models.

 

On the client side, you need to:

0. Cast Revit API objects to your models

1. Serialize your models and send to the server

2. Deserialize server response to your models

3. Apply the responding models back to Revit

Message 4 of 5

danilov.iv
Explorer
Explorer

Thanks for your reply
As far as I understand, Forge can't work with the user interface, and I can't create walls, floors, etc. Please, tell me, is it possible remotely?

 

0 Likes
Message 5 of 5

jeremy_tammik
Alumni
Alumni

True. Forge is for pure automated tasks. You can add your own UI and make that drive the automation, though. The question is: is your end user a real Revit user? If so, use Revit. Does your end user not need Revit model manipulation functionality at all? Then, go for Forge.

  

Jeremy Tammik Developer Advocacy and Support + The Building Coder + Autodesk Developer Network + ADN Open
0 Likes