Object Tracking/Binding - Speckle Objects

heya!

TL;DR as of right now, applicationIds are preserved in Blender, but not in SketchUp (tho I’ll add it to the list!). however, keep in mind that receiving a Revit element into Blender/SketchUp/other geometry focussed apps will turn it into a Mesh, so sending it back out again will not preserve the Revit element, even if it has the same applicationId

so this is a bit more complicated than it may seem from the surface when we’re talking about going between geometry focussed applications (eg SketchUp, Blender, in some cases Rhino) and BIM focussed application (eg Revit, Archicad, etc). this is because BIM focussed applications are dealing with BuiltElements while a geo focussed application is dealing with Geometry.

so in eg SketchUp, the incoming data is traversed until it hits something it can convert which could for example be the displayValue Mesh of a FamilyInstance. it then converts only this mesh to SketchUp. this mesh will of course have a different applicationId than the parent object.

in Blender I have actually temporarily solved this issue by passing down parent props to child geometry (eg see this commit here which preserves all the Revit applicationIds and custom props in the properties field on each object. ((I can probably get this working in SketchUp as well! I’ll add it to the list.))

in both cases, what is actually being converted is a Mesh, not a BuiltElement, so sending the object from SketchUp/Blender and back into Revit will give you a Direct Shape and not the original BIM element, even if the applicationId is the same.

so what this means is you can currently have one-way object tracking/binding but not two-way. this means that for example, you could have two models

  1. a Blender model where you are:
    • modelling objects and sending updates to Speckle
    • receiving from a Speckle/Revit model and receiving continuous updates on those objects
  2. a Revit model where you are:
    • doin your BIM stuff and sending updates to Speckle
    • receiving from a Speckle/Blender model and getting continuous updates on those objects
3 Likes