Hello,
I am working on a script which takes SysML elemets from EAP files and inport them inside System/Function model. For that I use ea.js shared by Ansys.
EA structure:
Current Medini import structure:

What I am missing is how to move created elements inside containers? Variable "the_owner" can not be rewriten inside the script.
I am using for import of containers this function:
function importPackages(eaPackage, output) {
eaPackage.containedPackages().toArray().forEach(function (p){
//console.log(eaPackage.metaType + " / " + p.name);
var mp = Factory.createElement(output, Metamodel.sysml.SysMLContainerPackage);
mp.name = p.name;
importPackages(p, mp);
});
}//End importPackages and for importing other elements from EAP file I am using:
Since I was not capable to use containedElements() as for above case (containedPackages()) I used findByType. In IF after defining proper element I wanted also to define creation location, for example to move Actor into FCA container.
function importElements(EAElement, output) {
eaFinder.findByType("EAElement").toArray().forEach(function (p){
//ImportPackage -> collect data for the_owner varable to define structure
if (p.metaType == "Package"){
var owner_target = p.name;
}//End if
//ImportActors
if (p.metaType == "Actor"){
var cp = Factory.createElement(output, Metamodel.sysml.SysMLactor);
cp.name = p.name;
//cp.the_owner = owner_target;
}//End if
//ImportFunctions
if (p.metaType == "Activity"){
var cp1 = Factory.createElement(output, Metamodel.sysml.SysMLActivity);
cp1.name = p.name;
}//End if
//ImportInterfaces
if (p.metaType == "Interface"){
var cp2 = Factory.createElement(output, Metamodel.sysml.SysMLPort);
cp2.name = p.name;
}//End if
//ImportParts
if (p.metaType == "Part"){
var cp3 = Factory.createElement(output, Metamodel.sysml.SysMLPart, false);
cp3.name = p.name;
}//End if
//ImportDecision
if (p.metaType == "Decision"){
var cp4 = Factory.createElement(output, Metamodel.sysml.SysMLActivity);
cp4.typeCode = p.name;
}//End if
//ImportUseCAse
if (p.metaType == "UseCase"){
var cp5 = Factory.createElement(output, Metamodel.sysml.SysMLActivity);
cp5.name = p.name;
cp5.typeCode = "function";
}//End if
});//End eaFinder function
}//End importElements
Thank in advance for ideas.
Best regards, Klemen Dobravec