Open marsrover1-ops opened 9 months ago
+1 to having the scripts folder able to be hosted in a central locations for all users.
This gets into the realm of deployability. Relay is made to be as simple as possible. Starting to mess with user configs, pathing issues, etc. takes away from the essence of this tool IMO.
If I were to entertain that feature, the development time/effort would make this difficult to maintain. So, unfortunately, it would probably be behind a paywall. I am sorry.
This is why Nonica and others like it aren't free.
Thanks John, your efforts are always greatly appreciated and I understand completely. The one major hurdle I have come across using the free stuff like Dyno Browser and PyRevit, is with having multiple versions of the same scripts forced by changes in the Revit API or Python versioning. With the free stuff, there is no way to load the menus on a per Revit version basis, so you are forced to have all of your pulldown menus loaded in every version of Revit. Basically scripts that only work in 2022 are loaded in 2023, 2024, etc. I can sort of overcome this with naming conventions of the pulldowns and script names, but that's relying on the user to select the correct script from the correct pulldown for the version of Revit they are working in. End result it works and it's nothing terminal, but having pulldown menus of unusable scripts in the menus looks kind of sophomoric. Guess I need to get hardcore about learning C#.
Basically scripts that only work in 2022 are loaded in 2023, 2024, etc.
Ok @staylor0611 , that is an easy fix. I can support subfolders. If a folder that matches the current Revit versions exists, we use that then. I created a new issue for this one: https://github.com/johnpierson/Relay/issues/21
@johnpierson please don't take this as a criticism or second-guessing. I value your time and expertise. I'm just asking a hypothetical to understand how Relay works... I'm assuming Relay is hard-coded to look in its root folder for the scripts. Would it be possible to store this path in a config file? OOTB, it would be set to look in the default location and basically be no different for typical use. But the user could edit the path to look in another, central location? I'm sure I am over-simplifying things. :-) Thanks!
I can help add a way to create a config file to help reduce the burden on you @johnpierson
Hmmmm...looking at the code. I see the ExecutingPath is derived in Globals. So, not really hardcoded, but detected. Which is all then compiled into a dll, I assume. So not so easily moved out into a separate config file, I suppose. I know next to nothing about C# or compiled languages. I am just spit-balling here. :-) I would certainly lend a hand if I could!!!
I appreciate it, @Tyree and @brencass .
However, building the features is only one part of the equation. In fact, I have INI file support in several of my other plugins. Fetch allows INI creation on install for custom paths: https://github.com/johnpierson/FETCH/blob/e2be9d7a16063b932fd5735c2ef4a89673feb5b6/src/Fetch.SharedProject/Commands/Commands.cs#L29
So, we could technically offer a user-defined path as a feature.
However, offering support when someone screws up that path is a whole other mess.
So with that in mind, I won't accept any PRs for development regarding this until these things are addressed and thoroughly tested:
And there are probably quite a few other considerations to keep in mind. Note that I am not trying to be negative; it's just that all of these things need to be considered. Especially when it is a "free" tool.
Someone messing up a path on their own (completely their fault) and emailing me angrily on a Friday night doesn't really work for me.
In the meantime, I am going to have to suggest that people look at possible robocopy workflows for Relay. Your files can live wherever you need them to be and you copy them locally every day or something.
Honestly, I haven't seen any free software that gives you the flexibility that is being requested, at least in my research. With Dyno Browser and PyRevit, the folder locations are hard coded and local to each user and to me that's a small price to pay for what you are getting with a free app. I am currently using Dyno Browser and I support over 30 users within my company that are at different locations throughout the US. I house all of the scripts and support files on a server that everyone can get to using VPN. I set up batch files utilizing the robocopy feature as you stated, which has to be executed by each user when directed. These batch files copy specific files/folders from the server to corresponding folders on the user's c drive. The folder structure is exactly the same on all user's computers and all users have a copy of all files stored locally (scripts and packages) and it works. This setup makes it very easy for troubleshooting issues also IMO.
For centralised script management, I am currently using symlink to reroute all Relay folders under different version to a single folder on onedrive.
Relay folder under different Revit version
Folder on onedrive
Hey John, was also wondering if there will be an update to allow the user to name the dropdown to something other than "Relay" and also have it to where we can designate the dynamo script location folder instead of forcing the folder to be in the addins folder or is this something that we would/could do ourselves using your code?