Hi everyone,
I’m very new to Capella (I’ve only been using it for about two months), and I have a very specific question that I haven’t seen posed on the forum. I’m hoping to make my Capella diagrams interactive. That is, I want the user to be able to select a point in the workflow (of a scenario diagram or architecture diagram), set values for some variables, and see the probability of outcomes/paths based on the input variables, characteristics provided by the PVMT, and past data.
Specifically, if the user changes a value in an input box on the Capella diagram (which, to my knowledge, does not exist yet), then the model would adapt in real time to show the percent likelihood of each outcome based on previous data (which I have, but would have to program into Capella somehow).
I’ve found some information online about Capella Studio, and this seems like the most promising way to create exactly what I’m imagining, but I’m still not sure whether this idea would be possible through this tool or if Capella diagrams are inherently static and cannot pull data from outside sources in real time. I have also never worked with Java before, so it would be a bit of a bunny trail that I would like to avoid if it would be impossible to create this. I’ve also seen information about the Simulink-Capella bridge, but have not been able to find a way to download it, and I’m not sure whether this would accomplish my goals.
If this is impossible in Capella, I’m very open to suggestions of alternative software packages to use (preferably open-source and easy for non-engineers to read)!
Thank you,
Karley
Hello, Karley
I’m also new to Capella and also very interested in achieving something like what you’ve described.
I do believe that achieving an input box or some custom element inside the Capella diagram would involve development with Capella Studio + Java.
But couldn’t this input of data onto an object be achieved with PVMT itself? You could create a property named such as “Value” to represent the current value of that property, and visualize (and I believe also edit) that value directly in the diagram.
Then, in order to run a calculation on top of that data, you could extract the property values from the model with Python4Capella or py-capellambse and perform the computation outside cappela with the exported property values.
There is another tool (which I believe is also an Eclipce RCP just like Capella) called Remote Component Environment (RCE) which enables the “construction of automated workflows and execution on a distributed network of computer nodes”, which I believe could provide the glue between the extraction of the PVMT values in Capella and their computation (involving possibly multiple scripts/programs, for example). I even believe there might be someone working on a RCE integration with Capella as an addon which would further facilitate this process, but I still got to find more information about it.
Hi Mateus,
While it’s true that the PVMT would allow direct editing of property values in the diagram, I’m not sure if it’s possible to integrate changes in the PVMT values with external data to inform any calculations. The data that I am working with is quite large, and it is not feasible to integrate all of it into the PVMT.
I haven’t worked in Python4Capella, but from what you’re describing, it seems like the data analysis would be done after changing the values, saving and exporting the model, and running a script to generate the final probability percentages. I’m hoping to achieve something that will do all of those things automatically (at the time the user makes the change to the variables) and then display the outcome in the Capella diagram.
It seems like RCE could be helpful to me, but if it’s not available as a Capella Add-on, then I’m still in the position of potentially having to develop what I’m looking for in Capella Studio. Please let me know if you find any more information on this topic or if someone has made an add-on like this.
Thank you!
1 Like
Hello everyone,
I can confirm that there are many ways of achieving this purpose, i.e. synchronisation of graphical information according to model data.
The most complete/powerful is to use Capella Studio and other EMF technologies. However, this indeed requires strong software development skills.
Others, some mentioned above, are more accessible to ‘system engineers’, such as PVMT, the use of Python scripts, etc.
I would just like to highlight that the choice of implementation will depend on numerous criteria. For example, the volume of data to be processed. The frequency and method of updating. The complexity of the calculations involved. The level of integration required, etc.
So there isn’t just one right way of doing that. In practice, such choices are made on a case-by-case basis.
We can also have technologies used as a quick prototyping means before an eventual change for production (e.g. first version in PVMT then switch to a dedicated point of view with Capella Studio).
That said, we can help you. Obeo in particular has a great deal of experience in this type of development. Don’t hesitate to contact us if you need support or want to entrust us with your developments.