Revit - Unexpected Objects Appearing as "Updated" Between Commits

Hello,

I’m a new Speckle user :wave:

I’m trying to use speckle with Revit to produce automated takeoffs, and have the following question:

Objective:

I’m trying to isolate changes between different versions of a model. I just found the visual differ feature which is great!

Here is what I’ve attempted:

  1. A model of a house is uploaded - call this V1
  2. A change is made in Revit to increase the size of one window and uploaded - call this V2

Expected outcome:

  • A handful of objects are detected as changed between V1/V2 (the actual window, the trim, the wall the window is on, etc…)

Actual outcome:

  • 64 objects are detected as changed by the differ between V1/V2 (many of which are pretty far removed from the window in question…

Looking more closely at one of the objects which was unexpected to be changed, the differences are only referenced IDs in __closure and displayValue fields.

Perhaps this is an expected level collateral damage from the way Revit works or how my model is setup…

But also led me to wonder if there could be:

a) A bug associated with this? Like, should these fields even be included in the object data or object hash? I see a few places in the code where these fields are listed as ignored.

b) Could these sort of differences be “safely” ignored and considered unchanged?

Related question about the Differ functionality: I notice that it does not allow you to view differences across different branches. Is that a UI limitation, or a data-model problem? From the code it seems like it could work across branches…

Thank you.

1 Like

Hey @Christopher_Fox ,

Welcome to the community! Feel free to Introduce yourself :person_gesturing_ok: to the community if you want to! :grinning:

All of these are valid questions.

This is definitely not expected. We haven’t seen this before. Can you share the Speckle Model URL with us? If you can share the source Revit model too, that would be great.

As you said, technically, it is possible to compare two models (aka branches). It is a more of a UI/UX limitation rn.

I will let our web wizards answer your technical questions.

Hi @Christopher_Fox

Welcome to the community! :slight_smile:

64 objects are detected as changed by the differ between V1/V2 (many of which are pretty far removed from the window in question…

Like Bilal said, we would need the model URLs in order to see what’s going on.

a) A bug associated with this? Like, should these fields even be included in the object data or object hash? I see a few places in the code where these fields are listed as ignored.

There might be a bug, and we’ll know for sure when we have a look at the models. The Differ works by comparing ids and applicationIds coming in from the server. It can’t decide to ignore certain properties. Whether the properties you mentioned are excluded when computing the object hash, maybe @dimitrie would be able to say

b) Could these sort of differences be “safely” ignored and considered unchanged?

I don’t think that it feasible for real time diffing, as it would mean we’d have to compare and/or re-hash everything

I notice that it does not allow you to view differences across different branches. Is that a UI limitation, or a data-model problem? From the code it seems like it could work across branches…

You are right, the differ can work just fine on any two streams, similar or not. The current UI limitation might change in the future, and I think it’s current purpose is to keep things as relevant as possible

Cheers