Nice to see you are also on Speckle!
I had a quick look at your definition.
It seems that you are modifying the original input speckle object. I agree with @teocomi to always use
ShallowCopy to ensure the gh cascade workflow.
If you print the type of member.Value:
Speckle.Core.Models.Base objBase = B as Speckle.Core.Models.Base;
foreach (dynamic member in objBase.GetMembers().ToList())
if(member.Value is IList)
foreach(dynamic item in member.Value)
if(!converter.CanConvertToNative(item as Speckle.Core.Models.Base)) continue;
var element = converter.ConvertToNative(item);
var backToSpeckle = converter.ConvertToSpeckle(element);
objBase[member.Key] = backToSpeckle;
…you see something is going wrong. You should have all Lists but you have Plane objects there.
The Origin of your Planes are not updated for 2 reasons
- because you are changing the original object
- because you are re-assigning to what was a list, the value of its last list item (plane).
(if you add a list with more than 1 value to the grids you will notice it!)
I hope this helps.
The workflow you mention, in general, is possible!