How to secure my Dynamo work?

Dears,

I work in an office with hundreds of employees, and i created some scripts to perform some activities on the running projects, using Dyno i managed to distribute this solution to most of the users, and the problem begun.
some users started to copy my scripts outside the office for personal use, i do not like this.
any ideas to secure my scripts to run only inside the office or on a selected machines will be appreciated.

You can ‘protect’ your code using visual studio to refactor your scripts in C#, but obviously you need to program to do this. However, there is no way of preventing anyone from redistributing or repackaging your node if even you did take this route. On the flip side, another question to ask yourself is how valuable your work is - the advantages of open source is your users may be improving your scripts and adapting them to do things which perhaps you never thought of and that can only be a good thing. If you are visual programming using OOTB nodes or any packages, technically you’re guilty of the very thing you are trying to prevent!

7 Likes

I don’t think there is a technical solution to prevent people from taking things from work with them. I mean IT can disable your USB ports and block your admin rights, but at the end of the day it does more damage than good.

As an alternative I would suggest that you empower your users and employees of your company to take that work home and improve it. This does not only serve the purpose of what @Thomas_Mahon has mentioned, when your work might just be improved, but also YOUR users are getting better at things that you are trying to teach them. It’s in your interest to develop your employees. Just imagine the things that you will be able to focus on and develop when you don’t have to explain that same Door Numbering script to every person in your company.

Give that a try instead of trying to make it hard for everyone.

8 Likes

Create your own set of packages that every script in your office requires to run. A package that isn’t available anywhere else. Adapt every script you use to utilize a node from restricted packages. This will keep the script from running on a machine that doesn’t have the packages installed. Research and development should be paid and not the responsibility of the employee to use their personal time doing unpaid work.

@kiknchikn2060 yes, there are people that are usually dedicated to R&D at every company and these people are paid handsomely to do this. I am not recommending that @MegaMax84x asks his employees/colleagues to do HIS job for him. I am just saying that if they want to practice and work on this on their own time at home, I would not discourage that. There are lots of reasons that people decide to further develop their skills on their own time even though its technically part of their benefits package at work. I simply find working from home and at odd (late night) hours more productive.

2 Likes

Honestly, everywhere I have worked has offered paid R&D time so I thought it was the normal in this profession. If they want to practice at home, let them. I will agree on that. I just find trying to stay focused while at home or odd hours to be very troublesome. My 4 year old probably doesn’t help with that.

@kiknchikn2060, @MegaMax84x I have to agree with @Konrad_K_Sobon and @Thomas_Mahon . I personally want people to learn how I do my scripts as I don’t have time to teach everybody Revit API/Python nor make every script in our company.

I have invested huge amounts of my personal time (all unpaid) learning the Revit API, Dynamo, GH, Unity etc
I do appreciate that not everyone can find that time out of hours, it isn’t easy, but I do not think anyone should actively restrict people that want to expand their knowledge in their own time. Learning should be encouraged and having others learn from you is way more satisfying than a paycheque.

This is the general spirit of this forum and is why it is such a good place for users at any level. Dynamo is itself an open source project, seems strange that we should not follow this pattern of thought in our own development?

However, to answer your question, If you want to write scripts that people can’t access then perhaps write zero touch nodes, extensions or full add-ins into Revit in visual studio. It won’t stop people from stealing the .dll’s, but there are ways of restricting execution to authorised users only. This is one way of protecting company property for instance, but it will be sad times if we have to have licences for any old package. :wink:

Cheers,
Dan

3 Likes

Dears,

to be clear, i am working as BIM coordinator in a consulting company, my company did not request any dynamo or programmed solution.
it was my decision to create some useful tools to shorten the production time, so that users have more time for coordination and design development.
the problem is some users started to copy my scripts outside the company for personal use.
i want to prevent copying my scripts (i am the creator), i did not prevent any user from developing his own scripts.
thanks