Same Revit Types being sent as different Types

Hi guys

We have Revit types being serialized with different Id’s. This is causing us to have duplicated of these types when querying e.g. on PowerBi.

Is that expected?

1 Like


I had a similar issue, where also two (supposed to be identical) elements had two different IDs.

In my case, it’s been about some (very few) random walls in two separate model versions, which have been marked “modified” in the diffing view of FE2. That’s how I noticed.
I commited both model versions, right after each other - just removing some (totally different) elements in the second commit. So all the rest shoudn’t have changed at all.

A quick check turned out that the walls “changed” (currently this means = had different IDs), because their doors “changed”, because one of their parameters was missing in the later commit:

It’s probably the same issue.

Hi Sam, thanks for sharing your case. In my case those elements on the picture belong to the same version (commit), that’s why I am thinking this is unexpected.

Yes, I know. But I still thought it might be the same issue. Unexpected in both cases.

Not sure about your use case specifically, but can’t you use the applicationId for identifying ‘same’ types? This one shouldn’t change. And it’s also equal in your screenshot.

Using the object id for such things is tricky. Even if you just check out the central Revit model to another place (or someone else) the ids will change, since most elements include the revitLinkedModelPath in their properties. (not sure why)

The exact same model, just a different local model (different directory):


Sorry @vwb, I was travelling and couldn’t answer your question yesterday.

It may very well be expected behaviour with Revit instances. While we work hard to represent Type/instance in Speckle instances faithfully, we have some nuances that may trigger this observed behaviour.

e.g. Placed Furniture

If a Revit family instance is placed mirrored, the Speckle Instances will be separate because of location and mirrored status - expected.
The Speckle definition may deviate from a simple understanding because the mirrored geometry in the source Revit model may have produced different definition display values.

From a PowerBI perspective, this may or may not be a problem - it depends on what you seek to achieve.

If you are counting types, then referencing the original applicationid or ElementIds will highlight them as the same definition, albeit the different Speckle id is related to another property not shared (hence my assumption it is the displayValue)

i.e. resolve definitions to instances with powerquery and then differentiating not on Speckle Id will give a unit count of instanced families

If your powerbi need is something else, then let us discuss that.

We are rebuilding relatioships using the applicationId as you mentioned, the issue is that there are multiple occurrences of the same applicationId that refers to a type. I have workarounds in PowerBi available, for example selecting the first occurrence of the applicationId of a certain type.

To me, that’s very weird. I’d expect for a type to appear once.

in theory - could you check if those duplicated types are indeed mirrored? that was just my initial assumption.

data diffing the two definitions would reveal why its happening - can you share a project link?

I believe these two are completely different revit instances. it’s indicated in the elementId