I am looking for a way to open Rhino files in read-only mode. Also ideally they would not create 3dmbak file when opened, since they won’t be changed - these are just library files we copy from, so a) read-only would protect them from being messed up by accident b) no 3dmbak file saves HD space.
is it currently possible in Rhino ?
There isn’t a direct way of doing that, no.
A work-around is to open a Rhino session, run Audit3dmFile, and pick the library file. Then start a new Rhino session and Open that library file. You will now be warned that the file is in use and are offered to open it in read-only mode.
Then again, for library files that are truly very rarely modified, I would probably just mark them read-only in Windows Explorer and be done with it.
Note that Rhino will still create autosave files for read-only files. But obviously not a 3dmbak file.
Thanks! So the good news is read-only doesn’t create 3dmbak (makes sense…). Bad news is with this workaround we need to open 2 Rhino sessions in order to make one of them be useful this way.
We’d typically have 5-10 lib. files open so that would mean 10-20 Rhino sessions. This will not work.
I was trying to see if the *rhl file can be created via script prior to opening a file to fake it and make Rhino think it is already open. I tried creating it with the exact same text info (user name, computer name, date, making the file hidden) but it doesn’t work. Is there anything special about the rhl file that it can’t just be created “by hand”?
A simpler solution would be to have a “Open Read-only” checkbox in FileOpen dialog in Rhino - can we add this option?
It’s on the list at least 4 times already as far as I can tell. I’ve opened up the oldest of those (2006) to the public and added your request to it - RH-2676.
I’m turning this thread over to the Developer category for that - I imagine that it is possible to write code that occupies a file modelessly before opening it but hopefully a bigger brain will be able to shed more light on that…
In 2006 this may not have seemed relevant to the way people were working with Rhino, but in today’s environment (eg: your post) the usefulness of this feature is such an obvious no-brainer that it’s too trivial for Pascal’s "big brains) to even consider.
On the other hand, while including the checkbox and making the files read-only might amount to a lunch break task, the hunt for all the spots where encountering a read-only file and dealing with it in a sensible way might be a major campaign. I don’t know.
A workaround would be to use Worksession.
Start Rhino and open a new file.
Attach the file(s) you want to open as “read only”.
Close Worksession panel.
The attached (but not active) files can be viewed but not edited. No backups of the attached (but not active) files
Unfortunately this would not work as I need to be able to pick individual blocks from these collection files and copy-paste them into another Rhino document
That works but is not very convenient - we need flexibility to decide whether I open the library to edit it (non read-only) or just as a source file (read-only). Going via File Explored every time and checking/unchecking the file type depending on what we need to do at the moment is cumbersome, as it is done very often with a lot of different library files.
It would be much better to have a checkbox in the File Open dialog to open ReadOnly for that particular session, and when closed, the file is back to normal.
That would also allow to avoid this popup:
(BTW - how do we get this dialog back if I say “Don’t show it again” ? )
Please allow for opening files in Read-Only mode from Rhino-level, not Windows-level, if possible.
( check box in the File Open dialog and an option in hyphenated command? )
@Jarek Have you tried using Worksession or are assuming it won’t work?
It is not obvious to me how the desired state of a file differs from an attached file in a worksession which is not the active file. Geometry in an attached but not active file in worksession can be selected, copied and pasted into the active file, or pasted into a different Rhino session.
That, and also not creating the 3dmbak file - these libraries are typically large files and doubling the size on server each time a lib is open is not needed/desirable if saving changes is disabled anyway. The read-only state is perfect as is, just need a way to enforce it.
Yes, I have tried and there are a few problems with this. One is that I can’t move things around in the file and often we want to bundle the selected ones together, sometimes they are linked blocks that we want to embed before copying (copy-paste of linked blocks is for some reason awfully slow in Rhino compared to just opening a file with them - I will post separately about that when I have time to properly document). Another big issue with blocks in Worksessions - have you tried copy-paste them in a new file? They always end up in the current/default layer, losing all their layer/material information, which is unacceptable.
The ability to open a file as Read Only by checking a box in the Open panel would be useful to me. It would allow looking at a file without being concerned about unintended changes and saving. I assume Save As would still be possible.
But not Save, is that what you mean? Wouldn’t want to save over a read-only; in fact I guess you couldn’t. If Rhino greyed out the Save command wherever it occurs while a read-only is selected so it couldn’t be used it would avoid an annoying “oops” while the OS refused to save the file.
I’m sure Steve, there is also a command line version command option to go along with it… : ) My point is you already have this working in other scenarios so it should not be reinventing it from scratch. What do I know.
Well, I obviously don’t know the same think I guess…
I too have wished for this for years, and it IS the exact same behavior as when a file is registered as open on another instance, so as you say all the tools are already there… we just want to be able to open a file as “read only”. That’s all, just a way to open the file where file name is sat to “none” and we are good to go.
So maybe to flip the table around, when Rhino is asked to open a file that already is open, what does Rhino go through and what stuff is flagged?