Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speckle Connector duplicates rather than updates objects. #201

Open
martysmind opened this issue Jun 27, 2024 · 2 comments
Open

Speckle Connector duplicates rather than updates objects. #201

martysmind opened this issue Jun 27, 2024 · 2 comments
Labels
community Powered by the speckel community! enhancement New feature or request

Comments

@martysmind
Copy link

Really appreciate the great work you are doing!

Expected vs. Actual Behavior

Speckle Connector duplicates rather than updates objects.

Describe the problem here.

This has been described in the community forums and responded to, but it has not been addressed, nor is it mentioned in the documentation. When a new person starts using speckle, they just think it's broken. Speckle without the ability to update objects is not much better than FBX.

I have also replicated it in the latest 2.19.1 version.

https://speckle.community/t/revit-to-blender-creates-duplicates-in-blender/8083
https://speckle.community/t/rhino-to-blender-not-updating-mesh-but-creates-a-new-one/8689

Reproduction Steps & System Config (win, osx, web, etc.)

https://speckle.community/t/revit-to-blender-creates-duplicates-in-blender/8083
https://speckle.community/t/rhino-to-blender-not-updating-mesh-but-creates-a-new-one/8689

Let us know how we can reproduce this, and attach relevant files (if any).

https://speckle.community/t/revit-to-blender-creates-duplicates-in-blender/8083
https://speckle.community/t/rhino-to-blender-not-updating-mesh-but-creates-a-new-one/8689

@JR-Morgan JR-Morgan added enhancement New feature or request community Powered by the speckel community! labels Jul 23, 2024
@JR-Morgan
Copy link
Member

JR-Morgan commented Jul 23, 2024

@martysmind Would an update mode behaviour, similar to our Rhino connector fit your needs?

I.e. when you receive a newer version of a model, we simply remove all the old objects, and add the new ones in.

This wouldn't allow users to preserve any transform/UV/material changes on objects, since we would take the incoming geometry as is...

@martysmind
Copy link
Author

Yes!! But you may want to create a new local "sync" object, copy the new geometry etc. to real object and then delete the sync object when you are finished. This would preserve local changes that are not normally synced like custom shaders, geometry nodes, etc...

Even better would be a mechanism to track when an object last changed by computing an MD5-like signature on meaningful values (mesh geometry, materials, whatever else may be synced) and store that somewhere (in each object as a custom property, for instance). That way when syncing the client can look up and see if the object hasn't changed locally, and automatically update it. If it has changed the client could then prompt the user to either skip the object, overwrite, archive it, or create a new sync object collection that they can manually copy from to merge changes.

signature = hashlib.md5(b'object data')

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community Powered by the speckel community! enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants