A recent internal discussion clarifies Revit element identification in Forge, Navisworks and IFC, some new thoughts on consciousness versus AI, and a couple of topics of personal interest:
I spent the last two weekends in the mountains north and south of the Gotthard pass.
First, I crossed the ridges between Grossgand, Ruchälplistock and Jakobiger with my friend Nik, and we spent the night in a pleasant, warm, windless bivouac on the latter at 2505 metres before descending for coffee in the Leutschachhütte next morning (https://flic.kr/s/aHsmEUnYFd).
The weekend after, I hiked with Moni from Mergugno over Brissago up to the Rifugio al Legn overlooking the Lago Maggiore. I continued alone from there up to Fumadiga and through the upper part of Bocchetta di Valle to Monte Limidario, aka Gridone.
This question prompted me to create a new topic group
on element identification using ElementId
and UniqueId
RVT, IFC, NW and Forge:
Question: I created a Navisworks file from a Revit file and submitted it to Forge. The returning translated JSON looks like this:
What is this externalId
and where does it come from?
The Id
property maps to the Revit element id.
Can you please confirm?
Where is the source Revit element unique id?
Is it lost during this process?
Answer: The externalId
is the path through the model selection tree to that item.
As far as I know, Revit doesn't have per-element GUIDs, but instead each element has a unique id.
This is what you have highlighted at the bottom of the image.
This is how we expect NWD files to look like when converted to SVF.
You cannot expect the data to look exactly the same as the RVT file.
Response: This is what the source Revit file looks like in JSON:
In this case, the externalId
is the Element.UniqueID
GUID.
The Name
property contains the Element.Id
.
Answer: Yes, I know they are different, which you would expect, really, as you are converting different types of files.
Revit creates a unique id by appending together the document-level EpisodeId GUID with the Element ID in hex:
0088CA1F hex = 8964639 decimal
Response: In this case, in order to find the Revit element in the converted Navisworks file, we actually need to parse the name and get the Id out of it? I was expecting a property to hold this value.
I find strange that in the translated source Revit file we don't actually have an "Id" property.
I thought that the "
externalId` in the translated source RVT file, was the actual id to look for in the translated NWD file.
I need to consistently identify elements in NWD and IFC files generated out of a source RVT file.
Looking at the Forge model derivative JSON files, it seems we can have
Id
out of the Name
for the RVTElement.Id
for the NWDIfcTag
for the IFCHere is an image showing all three:
Answer: Yes.
The Revit extractor puts the Element ID in the object name, so you can get it from there.
The NW extractor has the Element ID as a specific property (in the Element category).
The IFC file has the Element ID in the IfcTag attribute.
In NW, we try to read as much property data as we can. From there, if the property is visible in NW, it is exported on into the SVF file. The NW to SVF extractor implements special handling for different formats. Once the file has been converted to NWC/NWD, we don't really know what source file type it was originally. Furthermore, because not all file formats have unique ids for elements, NW doesn't have a concept of unique elements ids either; hence, it can only output the path through the tree for the externalId
property.
A very interesting overview by Steve Paulson, Roger Penrose on why consciousness does not compute, describing some of Penrose's theories on consciousness that cannot simply be simulated by AI.
The prestigious Zurich university ETH just published some positive news on a possible approach to the climate change; their research shows how trees could save the climate.
Similar to last year, I am heading off to France for some camping and a meditation retreat in Plum Village, a Buddhist monastery near Bordeaux.
On the way there, I'm also visiting my friend George in a camping ground on the beach of the Atlantic for a few days.
So I will be less active in the Revit API discussion forum in the coming weeks.
I wish you a wonderful summer!