void recursiveLinkDA(NodeBase source, NodeBase target, NodeFC fc) { NodeBase linkedDa = target.LinkChildNodeByName(source); // Set FC if (linkedDa is NodeData && !(linkedDa is NodeDO)) { (linkedDa as NodeData).SCL_FCDesc = fc.Name; } // Check DO / DA types if (linkedDa != source) { // We are in a DA once again // That means this is a DO and not a DA // We have to create DO and add it to the iec model (target) // and replace linkedDa with this object NodeDO ido = new NodeDO(source.Name); ido.IsIecModel = true; target.RemoveChildNode(source); linkedDa = target.AddChildNode(ido); } foreach (NodeBase newSource in source.GetChildNodes()) { recursiveLinkDA(newSource, linkedDa, fc); } }