Hello @Thierry_Poupon ,
Concerning EIE type, you can use something like this :
For EIE in all_EIE:
EIE_Type = EIE.get_type()
EIE_Type_elem = EIE_Type[0].get_name()
Best regards,
Sophie
Hello @Thierry_Poupon ,
Concerning EIE type, you can use something like this :
For EIE in all_EIE:
EIE_Type = EIE.get_type()
EIE_Type_elem = EIE_Type[0].get_name()
Best regards,
Sophie
@Sophie_Plazant
Thanks Sophie
Hi Sophie
Iām trying to get the list of SCE: System Component exchanges:
I managed to get those outgoing from system actorsā¦ but now I need to append the ones outgoing from systemā¦ (Some CE are crossing from one actor to the next, so O canāt really take the inputs without having doublons)
Then for system: I tried to reuse same as for actors, but it does not workā¦
Currently this script has already 3 loops and 3 browses because I had to use component ports
The āget_outgoing component_exchange()ā donāt run: issue in capella.py
Thanks for any helpā¦
May be Iāll try to save a loop and run with connected componenent from CEā¦
Last try with this kind of script:
for elem_SAC in all_SAC:
Acteur = elem_SAC
#print(Acteur)
#SACOGCE = elem_SAC.get_outgoing_component_exchanges()
#print('found sourced CE')
ACPort = elem_SAC.get_contained_component_ports()
for elem_CP in ACPort:
SACPO=elem_CP.get_orientation()
if SACPO == "OUT" or SACPO == "INOUT":
SACOGCE=elem_CP.get_component_exchanges()
for elem_CE in SACOGCE:
i = i + 1
worksheet.cell(row = i, column = 1).value = elem_CE.get_name()
All_SYS=[System]
for elem_SYS in All_SYS:
SYSCPort = elem_SYS.get_contained_component_ports()
print(elem_SYS)
for elem_CP in SYSCPort:
SYCPO=elem_CP.get_orientation()
print(SYCPO)
āāā
for elem_CE in SYSOGCE:
i = i + 1
worksheet.cell(row = i, column = 1).value = elem_CE.get_name()
āāā
Python wants a āselfā as argument in get_contained_component_ports(self), but this generates another one, I tried as well the string āselfā but the string doesnāt fit either.
So now I try yours for EIEā¦
Regards
Thierry
Here is the result:
py4j.Py4JException: An exception was raised by the Python Proxy. Return Message: Traceback (most recent call last):
File āC:\c520x\capella\plugins\org.eclipse.ease.lang.python.py4j_0.7.0.I201907020902\pysrc\ease_py4j_main.pyā, line 186, in runcode
exec(compiled, self.locals)
File āL/Python4Capella/Scripts for MAEVA/Export_MAEVA_EI-EIE.pyā, line 117, in
return _pyease_ListConverter().convert([
File āL/Python4Capella/simplified_api/capella.pyā, line 202, in get_element_type
AttributeError: TODO
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File āC:\c520x\capella\plugins\py4j-python_0.10.9.3-bnd-2odeag\src\py4j\clientserver.pyā, line 581, in _call_proxy
return_value = getattr(self.pool[obj_id], method)(*params)
File āC:\c520x\capella\plugins\org.eclipse.ease.lang.python.py4j_0.7.0.I201907020902\pysrc\ease_py4j_main.pyā, line 335, in executeScript
return self.executeCommon(code_text, self.interp.runcode, filename)
File āC:\c520x\capella\plugins\org.eclipse.ease.lang.python.py4j_0.7.0.I201907020902\pysrc\ease_py4j_main.pyā, line 313, in executeCommon
execution_result = code_exec(code_text, filename)
File āC:\c520x\capella\plugins\org.eclipse.ease.lang.python.py4j_0.7.0.I201907020902\pysrc\ease_py4j_main.pyā, line 213, in runcode
except Exception:
TypeError: catching classes that do not inherit from BaseException is not allowed
at py4j.Protocol.getReturnValue(Protocol.java:476)
at py4j.reflection.PythonProxyHandler.invoke(PythonProxyHandler.java:108)
at com.sun.proxy.$Proxy25.executeScript(Unknown Source)
at org.eclipse.ease.lang.python.py4j.internal.Py4jScriptEngine.internalExecute(Py4jScriptEngine.java:236)
at org.eclipse.ease.lang.python.py4j.internal.Py4jScriptEngine.execute(Py4jScriptEngine.java:226)
at org.eclipse.ease.AbstractScriptEngine.inject(AbstractScriptEngine.java:245)
at org.eclipse.ease.AbstractScriptEngine.run(AbstractScriptEngine.java:309)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Have a good WE
Regards
Thierry
Hello @Thierry_Poupon ,
you can use as an alternative to get outgoing component exchanges : capella_query_by_name(e_object,āOutgoing Component Exchangesā).
To see the available query, you can use available_query_names(e_object).
For āget_contained_components_ports()ā, do you have an error with elem_SYS.get_contained_components_ports()?
Best regards
Sophie
Hello@Sophie
I understood that system is not an item but a singleton where a system element isā¦
This is causing me an additional browse and loop while getting modes and states.
For SCE, what I did is pretend I wanted all CE, then add them on list when connected component was system actor. Doing this, SCE between system actors are seen twice. I solve it in the excel part by removing duplicates while reading export. The constraint there is not to have several with the same name.
I consider this point as solved.
Thanks anyway
I tried to continue exchange items checksā¦
Iām still missing a solution that alerts untyped EIE, and for untyped properties should be OK, butā¦
Reference value seems to be a project alone: each kind has to be separate (boolean; enumeration; string and numerical). On the other hand I couldnāt get the list of literals for each detail kind (some donāt have like physical quantities, they use numerics which have unitsā¦)
Class operation parameter is toot complicated for the moment, and needs imbricated loopsā¦ parameter have no accessible attribute.
As you can see, itās not finished!
To come back to state machines: in my project I have a governed (modes driven by system of interest) way bigger than system of interest (which is āsystemā), so under system I have one state machine for the governed system lifecycle (with 2 main regions), one mode machine for its modes (with 2 main regions), then the mode machine for my systemā¦ each time I have imbricated mode or states.
The target is to lists all modes or states for each machine, and then check the traces linking governed system phase; governed system mode and system of interest modes.
Next step is to check that system functions involved in required capacity during a phase are woken up by the relevant system of interest modeā¦ (then Iām speaking only about system, not actors)ā¦
In this part I just beginā¦
Many thanks again for your support and your time
Best regards
Thierry
Hi there,
As mentionned in preceding answer to Sophie Plazanet, Iām looking for a way to find incoming traces to states (and modes which seems to be same class).
There is no get_traces in states, and Iām lacking B-planā¦
Thanks for any help.
Thierry
Hello @Thierry_Poupon ,
You can use capella_query_by_name(e_object,āOutgoing Generic Tracesā) et capella_query_by_name(e_object,āIncoming Generic Tracesā).
Best regards
Sophie
Thanks Sophie
Can you tell me more about exact syntax?
Regards
Thierry
Edit1: Could this work for EI mechanism or data type?
Edit2: Found the syntax, incoming works, not outgoing but thatās enough for me.
Hi there
Iām still looking to get the typing element of parameters, reference valuesā¦
So far parameters seem to have not data field accessible, neither trough python functions , capella queryā¦ I tried to take it the other way round, from detail to what they type: the table is empty. Thinking again, the relation ātypingā has several item class at the origin and several at the targetā¦ on one side you have EIE, Class properties, collections, on the other side you have classes, collections, details (booleans; enumeration; strings, numerics; physical quantities)ā¦ may be separately you have referenced values to literals, and then the relation between literals and the detail they belong toā¦
I just noticed that trying to get values belonging to numerics, I had an error message about Physical quantitiesā¦
Thanks for any help
Thierry
Hi there!
Does someone have a clue about how much table export we can add in the same script:
I was trying to assembly them all and save browsing timeā¦ but the result is still not complete and has already 8 browse operations, creates 12 excel files.
The point is it ran into infinte loop with an incident about memory size.
Should I see a link?
Thanks for answers
Thierry
Wouaw, this sounds so heavy.
By the way, I donāt know if you are exporting using Mass view or a python script, if you are using a script then I could say this:
be careful with the function (get_all_contents_by_type()), try instead getting into the data directly and adding them into a list, instead of using the function.
Donāt know if thatās of any help.
Good luck with it.
Best R
Kabe
In fact I used bothā¦ csv exports are stronger but you need to perform again and again a painful selection that is forgotten each time you close the bench.
Here Iām speaking about scripts.
There are two reason for assemblying my scripts: launch all at once, and save browsing operations.
I have seen already that in fact you just need the one for the initial tableā¦ but I did not yet audit which "get_all_content_by _type()) I could remove.
So far I couldnāt avoid to build the name list, then add a second field in another file (name+2nd filed)*, then if I need a third one restart another (name+3rd field).
Thus, in the Excel part I need to append or joint the results to build the complete picture. My Excel model analysis systems runs 5 books containing something like 50 sheets, including data import, joints, appends, pivotsā¦
My aim is detect inconsistent EI nature to FE (air in electronic network); unused EI; FE; CE (univoked in scenarios; empty); relations life phase to mode: ensure involved functions are active while capabilities are required. All this is not in validation toolā¦
Thanks for your response
(*) If I donāt, I get only the list having something in the second field and what I want to see mostly is those having it emptyā¦
Thierry
Why?
You are generating this using mass or just a script?
If I am understanding this correctly, your problem is jointing all this files in one single one? (which takes too much long time)
I guess i would suggest to make one single excel (with python) that contains them all, then generates it once by runing the script once. Maybe that would remove your problem.
I do this because I do not find empty secondary fieldā¦ I want FE that have no category, or CE allocating nothing: If I run a complete matrix, I couldnāt have the incomplete rows, so I need the key list to compare.
Anyway this part is big but easy in Excel
Before with the csv, I took the almost complete matrix (without long texts) and picked up the columns I used in SQL queries in Excel. But This process needed 20 tables to do it all, some being painful to select like states; function instances and scenarios; or exchanges; data types and property value group that takes variant data in my modelā¦
Thierry
Thierry
Some screen shots (without revealing the confidential names/words), could prove really helpful.