I created a Dynamo script with the help of Aussie BIM Guru’s " Make a Revit sheet transmittal using Dynamo!" and updated the phyton script to match our excel template with the help of chat GPT. Happy to share. At the end of Gavin’s tutorial he uses his own crumple node to copy and paste from a string. Is there a way to do this automatically to a browse location file and vice versa?
Likely, but you may have to write some code. Can you post what you have now and a clear description of what you are after?
The first image is the same layout Bim Guru describes in his tutorial.
The second image is his Windows.ClipboardSend node expanded
and the third shows what he has written in his phyton script.
The end result is image 5, I can paste Revit sheet and revision info into excel
I’m looking for a way to transfer the data through something like the Excel.Writeto File node in the same format. This way I just have to press play on dynamo player and the excel sheet is automatically updated. I’m not sure if I need to convert it to a string or something else (I’m a complete newbie). After that I saw that theres a way to reverse the process by editing the excel sheet and it auto updates the revit sheets.
script 1.txt (4.9 KB)
This is my updated Phyton script
What is the version of Revit are you targeting? Newer builds have better methods.
I’m currently using 2022 and 2024. That’s another thing, gavins crumple nodes are running out of date but i’ll worry about that later
Either of these should work:
Better to go with the one on the right as it’s more robust and doesn’t break each time Microsoft issues an update.
You could also utilize a Data.ExportCSV node, and have an excel file set to read that data by reference (removing the need for the header row and addressing any formatting concerns).
So this is what I’ve done with no results, Like I said, complete newbie so doing something completely wrong here, am I?
I think you should skip the String.Join node, but I can’t see the data you’re working with. Can you expand the preview of the PythonScript node? Also if you aren’t using IN that input should be removed.
This is the Phyton data attached
script 1.txt (4.9 KB)
Sorry - I don’t necessarily need the code, but the resulting output.
A .rvt to test with will also be required if there are any code changes to be made. A simple project with 3 sheets, some revisions on sheets and some revisions in views, containing all the parameters you’re using should suffice. All model content, materials, and all other views can be deleted.
OK I’ll get the test model ready
The Python is going to have to be updated, as you’re combining the text values into a single string in the code. So you have three options.
Swap the previous String.Join node for a String.Split node, where the ‘split character’ is a tab (
"\t";in a code block, or a string node with a single tab in it). This is the easier route, but it may not work if you have tabs in any of your values. Also tabs can be hard to ‘see’ in some instances, so it’ll be harder to review stuff.
Edit the Python code to swap the string joining for something more apparent, say three colons (
:::) or another marker. Then use the String.Split method from option 1 to split at the apparent character. You still risk incorrect splits, but it’ll be less likely than a tab.
Edit the Python code to remove the string joining entirely, returning the values directly. This would be my recommendation but it’s the hardest option.
OK thankyou, this is quite out of my depth but i’ll try what your suggesting.
I take it you dont need the test models then?
Not if you try one of the above and it works. If not we’ll need an RVT and your DYN with the attempt(s).
Option 1 is quite easy, so I’d be pretty surprised if you get stuck with it.
No result for the first one screenshot attached.
Tried to get ai to write a script for your last advice, ended up crashing
The ‘string’ and ‘separator’ input are backwards on the String.Split node.
That’s just made the Revit crash twice unfortunately
Post your .dyn and that sample .rvt and I’ll try to have a look this afternoon.