GET data from GoogleSheets not working automatically - BIMOne.GoogleSheets

Hello,

I am currently working with BIMOne.GoogleSheets package to post and to get data to/from GoogleSheets. Posting data is working perfectly and I can export updated data to Gsheets anytime.

However, getting data from Gsheets into Dynamo works only once, then it does not update the edited data anymore. When I edit data in Gsheets, I need to close and open the Dynamo script to get the updated data.

Do you have any idea how to automize this process? So that we wouldn’t need to reopen Dynamo script to get updates from Gsheets…

Note: I do not use any GoogleAPIs scope since I do not have Google Suite account (see step 2.iv. here, https://github.com/bimone/BIMOne.GoogleSheets)

Any idea/help from your side would be great! @vincent.cadoret

@mete.boncukcu That behavior is quite consistent with Dynamo in general: it tends to cache the data from the nodes and you have to change something upstream in the graph for it to recalculate those downstream nodes. Not sure if @Jean-Marc has run into this issue and can give his input.

If there’s a way to fix this directly in the C# code of the custom node that someone can point me to I will look at implementing it.

1 Like

as @vincent.cadoret said, sometimes, Dynamo is a bit erratic and unconsistent when you ask him to re-re-re-re-run the same script over and over.

I have used that specific nodes many times and never got any issue but you could try changing the name of the gsheet you are looking for just to force a re-run of the graph.

last resort,
another thing you might want to check is opening the graph with notepad+ and check if there is data in the Dependencies section, if so empty it.

@Jean-Marc and @vincent.cadoret thanks for replies!

I deleted dependencies in the script, but once I run it again, the dependencies are re-occurred.

Changing name of the sheet is working, also changing the boolean node from True to False, or vice versa, is working as well. In that case, I need to do some changes in Dynamo Script to force re-running.

However, I would like to automize this process. So that, when someone change info in the Gsheet, I could see this data revision directly in Revit model by the help of the Auto Run in Dynamo Script.

image

if you are writing a nodeModel node you can call OnNodeModified(true) to mark the node as needing to execute.

Are you using Datashape too by any chance? there is a funciton in it called Force Run, which will re-run the script from scratch, as if you had restarted dynamo.

1 Like

Thanks a lot! @HalfBaked

It works with that tool perfectly.

However I still need to go into script to click to “Force Run”.

I am trying to find a way in which the Dynamo script could work by itself automatically (with Auto Run mode) to revise the Revit model after I change something at front-end (Gsheets).

you could try adding either the web request or the datetime.now nodes to your graph, in order to activate the Periodic mode instead of Automatic, and feed the output of those nodes to some node at the beginning of your graph in order to force the nodes downstream to re-run.

3 Likes

@HalfBaked Thank you so much! That is the function exactly that I was looking for.

2 Likes

Hi @mete.boncukcu Been trying something out regards this but it isn’t updating automatically for me with this

@ajuwonayodeji.a You need to choose “Periodic” run option and you can set time interval as 20000ms or 30000ms. It means that your script will be run automtically every 20 or 30 sec.

1 Like

@mete.boncukcu Thank you very much. Problem Solved

1 Like