Update Data in Speckle Viewer Directly

Is it possible to update the data in a Speckle element within the viewer?

This would be great to be able to track install progress or allow for more people to be able to interact and update data in the model without having to use Excel or Revit to update those parameters.

Also, if we could create custom parameters like “Install Progress” we could use Speckle to show us elements that still need to be installed, or what stage of installation they are on.

You could also tie in specific parameters to scheduling software and show which elements are in progress of installation that way.

3 Likes

In theory it is possible. Actually we had a submission on this on our hackathon.

https://hack.speckle.dev/Parameter%20Panther%20-%20A%20tool%20to%20update%20Revit%20parameters%20from%20your%20browser.html

:rose:

3 Likes

Aha, the construction digital twin!

Where speckle is the only database tracking your information, this would make some sense from a static authored model point of view.

If the model is still in flux (elements deleted or replaced), you’ll be mapping the installation dataset against identity data in the model and not a fixed speckle id. This may be better as a join/blend with the speckle stream.

Definitely food for thought!

@jonathon @gokermu after a couple of years, I wonder if there is any update on this request? Also related to this post

We’ve stayed away from hardcoding any of the things that remain programmatically possible.

The evolution of Speckle web and connectors is comprehensive and large - we’ve concentrated on keeping and making the core data hub robust and more reliable.

In the meantime, the community has been hard at work building on top of Speckle to specific end goals.

@samberger recently showed off a very capable tool that does this: Speckle Community Featured Developer: Steffen Samberger

1 Like

@samberger any chance there’s a repo to get some pointers about your amazing project?

Depending on what you are looking to build @davploy and, indeed, where you are in the world, perhaps you’d find something helpful in the SpeckleCon workshops.

It is in Central London, so it might not be accessible, but we will try to write as many of them as possible as walk-through tutorials after the event. Sorry, none were recorded.

Tickets available: LinkedIn
More info on SpeckleCon workshops: LinkedIn

I would very much like to attend to see all the fantastic stuff you guys are doing with Speckle, but since I can’t, I would greatly appreciate any info about that development that you can share here

We’ll share whatever we can as soon as we can.

Hey @davploy! Unfortunately there isnt a public repo at the moment, since it’s a company development and currently just for internal or project related use.

ah! pity. Just a couple of questions @samberger:

  • Are you using the parameter updater for this project?
  • Did you managed to make it work to update Rhino parameters?
    thanks for you help!

Hey @davploy!

Don’t confuse the two “Parameter Updaters” out there. They are two different things! The one you linked is for Excel and works with Revit’s components lists.

The other one (which the Parameter Panther and I are using) is a Speckle object type "speckle_type": "Objects.BuiltElements.Revit.ParameterUpdater" … which only contains the parameter data (no geometry) and the Revit connector is able to import back into Revit and update only the parameters.
Your application basically needs to create and commit such an object.

Currently (and unfortunately), only the Revit connector is able to do so! Also the “format” of above speckle object is Revit-specific, so it would have to look differently, if you would like to import it into Rhino.
So, no … unable to update Rhino parameters. This functionality needs to be added to the Rhino connector. And probably it’s not even much code. Not sure if we might do this at some point, because we would love to have that too.
On the other hand you might also just easily do the import with a tiny GH script.

Also the new generation of connectors is in the making, and it seems there will be happening a lot and also maybe regarding the above topic.

1 Like

This functionality needs to be added to the Rhino connector. And probably it’s not even much code. Not sure if we might do this at some point, because we would love to have that too.

this would be awesome :point_up:

thanks for your answer @samberger! As far as I can understand, all the param manipulation is handled by the server in such case. Would it be possible to do this on the client side in the app? This is what I have in mind:

  1. Fetch the whole model with all children as a json file with the REST api in the app. (is this possible?)
  2. Update the wanted parameters
  3. Make a new commit with tthe whole model and the updated parameters

Would something like this work? hoping to benefit from your experience or the speckle team (@jonathon :eyes:) before I jump into anything, so any practical advice would be much appreciated!

In that case the actual update of the parameters happens back in Revit (by the connector). The server only saves the parameter data as separate “model” (without geometry).

… and that’s also the way, which makes sense for uns, since our Revit model (in Revit) stays or “main” model and single source of truth. We wouldn’t want to import any modified model copy back into Revit. (Maybe just too afraid something would be messed up unintentionally :face_with_peeking_eye:)
But I guess for Rhino it wouldn’t be such a problem.

The disadvantage is, that changes first reflect after importing the parameters back and uploading a new model. (although in case of our app, the app always overlays any updates, so we always see the latest parameters).

Downloading all JSON, changing it and uploading again as new model in general is possible. But you have to “collect” all the JSONs from the different elements… And since the object IDs are hashes of the actual element itself, you will get new ones which you will have to use for putting everything together again.
But @jonathon knows better! :slight_smile:

1 Like

There is also Speckle’s JS objectloader/objectsender which might help.

1 Like