public static EAAPI.Element Copy(this EAAPI.Element source, EAAPI.Package targetPackage) { EAAPI.Element targetElement = (EAAPI.Element)targetPackage.Elements.AddNew(source.Name, source.Type); targetElement.ClassifierID = source.ClassifierID; targetElement.Stereotype = source.Stereotype; if (source.Type == "Part") { targetElement.PropertyType = source.PropertyType; } /* * if (source.Type == "Action") * { * for (int i = 0; i < source.Elements.Count; i++) * { * EA.Element sourceEmbeddedEl = (EA.Element) source.Elements.GetAt((short)i); * EA.Element embeddedEl = (EA.Element) el.Elements.AddNew(sourceEmbeddedEl.Name, sourceEmbeddedEl.Type); * embeddedEl.ClassfierID = sourceEmbeddedEl.ClassfierID; * embeddedEl.Stereotype = sourceEmbeddedEl.Stereotype; * * embeddedEl.Update(); * el.Elements.Refresh(); * } * } */ // copy tagged values for (short i = 0; i < source.TaggedValues.Count; i++) { EAAPI.TaggedValue sourceTag = (EAAPI.TaggedValue)source.TaggedValues.GetAt(i); EAAPI.TaggedValue targetTag = (EAAPI.TaggedValue)targetElement.TaggedValues.AddNew(sourceTag.Name, sourceTag.Value); targetTag.Update(); } targetElement.TaggedValues.Refresh(); targetElement.Update(); targetPackage.Elements.Refresh(); targetPackage.Element.Refresh(); return(targetElement); }
public static void SetTaggedValueString(this EAAPI.Element modelElement, string tagName, string value, bool isMemo = false) { for (short cnt = 0; cnt < modelElement.TaggedValues.Count; cnt++) { EAAPI.TaggedValue tag = modelElement.TaggedValues.GetAt(cnt) as EAAPI.TaggedValue; if (tag != null && tag.Name == tagName) { if (!isMemo) { tag.Value = value; } else { tag.Value = "<memo>*"; tag.Notes = value; } tag.Update(); modelElement.TaggedValues.Refresh(); return; } } EAAPI.TaggedValue newTag = modelElement.TaggedValues.AddNew(tagName, "") as EAAPI.TaggedValue; if (newTag != null) { if (!isMemo) { newTag.Value = value; } else { newTag.Value = "<memo>*"; newTag.Notes = value; } newTag.Update(); } modelElement.TaggedValues.Refresh(); }