I don't understand this while loop structure. How does the ductCable get assigned? I see the logic test saying: "if type is IMMDuctCabe do stuff". But it looks like it is assigning that value at the same time.
items.Reset();
var item = items.Next();
while (item != null)
{
if (item is IMMDuctCable ductCable)
{
var newDuctCable = new MMDuctCableClass();
newDuctCable.cableID = ductCable.cableID;
....