diff --git a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs index cbd2618b0..24258ecc7 100644 --- a/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs +++ b/Connectors/Revit/Speckle.Connectors.RevitShared/Operations/Receive/RevitHostObjectBuilder.cs @@ -192,13 +192,16 @@ localToGlobalMap.AtomicObject is ITransformable transformable // and ICurve && localToGlobalMap.AtomicObject["units"] is string units ) { + var id = localToGlobalMap.AtomicObject.id; ITransformable? newTransformable = null; foreach (var mat in localToGlobalMap.Matrix) { transformable.TransformTo(new Transform() { matrix = mat, units = units }, out newTransformable); + transformable = newTransformable; // we need to keep the reference to the new object, as we're going to use it in the cache' } localToGlobalMap.AtomicObject = (newTransformable as Base)!; + localToGlobalMap.AtomicObject.id = id; // restore the id, as it's used in the cache' localToGlobalMap.Matrix = new HashSet(); // flush out the list, as we've applied the transforms already }