Level Picker output change

We noticed in the latest Rino.Inside.Revit 7.0.20309.6003, 11/04/2020
when we pull Level there is a long string
seems that merges two Unique Ids and the second part is an actual reference to Revit Level.
How this special string is constructed and what is the first half of this string?
Is this is a new approach for all Revit element?


This string is {DocumentGUID}-{UniqueID} of the level.
Both values are also returned by the ‘Element Passport’ component.

The previous picker returned the ElementId that was wrong when you changed your active document.

The ElementId identifies an element inside the document but same value also refer to an other Element in an other document.
So we need a “Passport ID” to refer those elements.

The string you see is that “Passport ID”.
This is part of the changes we are doing to support Element Binding and multiple documents in general.

2 Likes

@kike can you please let me how do you extract DocumentGUID from Revit API? is it special property of Document object?

is it?
ExportUtils.GetGBXMLDocumentId(doc);

1 Like

Here the method from Rhino.Inside…

It is calling Autodesk.Revit.DB.ExportUtils.GetGBXMLDocumentId that basically…

Retrieves the GUID representing this document in exported gbXML files.

Right now we are using this Id as a stable Id for a document.
The implementation of GetFingerprintGUID may change before we release v1.0, but the intention is to keep it as a System.Guid and keep the “Passport ID” format as {DocumentGUID}-{Element.UniqueId}.

2 Likes