Relay icon indicating copy to clipboard operation
Relay copied to clipboard

Possible Enhancements

Open marsrover1-ops opened this issue 1 year ago • 11 comments

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?

marsrover1-ops avatar Feb 23 '24 18:02 marsrover1-ops

+1 to having the scripts folder able to be hosted in a central locations for all users.

Tyree avatar Mar 07 '24 12:03 Tyree

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.

johnpierson avatar Apr 16 '24 20:04 johnpierson

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#.

staylor0611 avatar Apr 18 '24 13:04 staylor0611

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 avatar Apr 18 '24 14:04 johnpierson

@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!

Tyree avatar Apr 18 '24 14:04 Tyree

I can help add a way to create a config file to help reduce the burden on you @johnpierson

brencass avatar Apr 18 '24 14:04 brencass

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!!!

Tyree avatar Apr 18 '24 14:04 Tyree

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:

  • What about UNC paths? How does relay behave when loading DYNs on the fly from a path that might not always exist?
  • What about hardcoded drive letters? What if someone has an R:/ drive that is now an S:/ drive on someone else's machine?
  • What if someone uses Dropbox or Google Drive where the files don't really "exist"?
  • What about when someone asks to host their DYNs on Autodesk Construction Cloud?

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.

johnpierson avatar Apr 18 '24 17:04 johnpierson

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.

johnpierson avatar Apr 18 '24 17:04 johnpierson

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.

staylor0611 avatar Apr 18 '24 17:04 staylor0611

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 image

Folder on onedrive image

chuncahk avatar Apr 24 '24 14:04 chuncahk