There is no use case where Create is used with IObjects, even though it accepts them.
Same for Update.
We need to clearly separate the methods that are useful for the full CRUD() (formerly Replace()):
they need to accept only IBHoMObject -- as without the essential properties of a BHoMObject, namely tag, the full CRUD simply cannot work.
Flexibility to work with different types will then be left to the Push override:
just override the Pull and make it call whatever method suits you for creating non-BHoMObjects.
Essentially for consistency of use.
IObject
s, even though it accepts them.We need to clearly separate the methods that are useful for the full
CRUD()
(formerlyReplace()
): they need to accept only IBHoMObject -- as without the essential properties of a BHoMObject, namely tag, the full CRUD simply cannot work.Flexibility to work with different types will then be left to the
Push
override: just override the Pull and make it call whatever method suits you for creating non-BHoMObjects.