Enterprise Architect version 15.2



My Profile

Social Media Channels

facebook  twitter  youtube   linkedin



Takeshi Kouno

Sparx Systems Japan (Chief Executive Officer)
Sparx Systems Japan offers regional support and sales in Japan, and develops RaQuest and some Add-ins for Enterprise Architect. For detail, visit https://www.sparxsystems.jp/en/ .

MBSE (Model-Based Systems Engineering) is now familiar to many organizations and companies. When we use Enterprise Architect for MBSE, usually we use SysML for modelling language. There are 9 diagrams in SysML and there are many methodologies about MBSE, so there are lots of methods to use Enterprise Architect for MBSE.

But usually, any method requires lots of diagrams and lots of elements. It must take much time to create a MBSE model. You may hesitate to adopt MBSE since you have not understood its value and effect yet.
I introduce very simple MBSE method ‘Minimum MBSE’ to do MBSE with Enterprise Architect and SysML. This is very simple method by cutting off many usually-important information, so this method is suitable for trial. If you understand value and effect of MBSE, Enterprise Architect and SysML, you should choose another method and try for full-scale MBSE method.

The Minimum MBSE is best for the following situations.

  • You already have enough knowledge about the target system and/or domain.
  • It is better that the target system already exists and you need to enhance or modify the system.
  • The system size is not so large. Only 1 or couple of engineers will create model.

So, the Minimum MBSE is NOT suitable for the following situations.

  • You do not have enough knowledge about the target system and/or domain.
  • The target system is new.
  • The target system is large and/or complex.

The following figure shows artifacts and their relationships by this method.


 You can download the whole article PDF from here.

In this artricle, we use our Traceability Suite Add-In for checking traceablity in model. For detail about the Add-In, visit here

If you have any questions, idea to be better, and anything you feel, please leave comments or send email to This email address is being protected from spambots. You need JavaScript enabled to view it..


Tuesday, 15 September 2020 07:08

BPMN Smart Layout Add-in

This Add-in adjusts following points at one step:

  • Align centers of 'near' objects (both vertically and horizontally)
  • Adjust start and end points of flows to the center of object edge if related objects are aligned
  • Adjust start or end points of flows to 'near' center of object edge
  • Delete unnecessary bended points

How to use

  1. Download the zip from the following website
  2. Install the add-in by running EAAddinSetupEn.bat with administrative rights
    (for detail, see: https://www.sparxsystems.jp/en/EAAddinSetupEn.htm)
  3. Run EA, open a BPMN diagram, then right-click and select 'Specialize' | 'BPMN Smart Layout'


You can watch the basic usage and behaviour of this Add-in with the following Youtube video:

https://youtu.be/wdYovcGmGeg (2m18s, no voice)


- You cannot undo the layout, so please back-up your project before using this Add-in.
- If you find a model which cannot be layouted correctly, please send an image to This email address is being protected from spambots. You need JavaScript enabled to view it.


Friday, 27 July 2018 06:42

Model Conveter from ChangeVision Astah

EAImport is a converter from ChangeVision's astah (formerly JUDE) to Enterprise Architect.

System Requirements

  • Astah community 6.9
  • Enterprise Architect 13.0 or later
  • Java Runtime Environment 7 (JRE 7/32 bit version)
    • If you installed astah 32bit version, it is already installed.
    • JRE 8 may work, but it is unconfirmed.
    • If it does not exist, download the 32-bit version for Windows from the Oracle website and install it.
      (64-bit Java cannot be used.)

The following "Working Directory" assumes "c:\work" in this manual.


How to Set up the Converter

1. Copy the following files to the Working Directory.

  • all files in the EAImporter.ZIP file
  • "SSJavaCOM.dll" and "eaapi.jar" in the "Java API" folder in the Enterprise Architect installation directory
  • "astah-api.jar" and "astah-community.jar" in the Astah installation directory
  • slf4j-api-1.6.6.jar in the "lib" directory under the Astah installation directory
  • astah's file to convert (.asta)
  • EAP file to import (.eap/.eapx) - You can use "EABase.eap" file in the Enterprise Architect installation directory.

2. Open the run.bat file with a text editor such as Notepad

  • You need to modify the line which starts with "set JAVA_HOME =". Please specify the directory where Java runtime is installed. 


How to Convert

1. Run the Command Prompt from the Windows start menu.
2. Navigate to your working directory.

  • Example: cd \work

3. Run the batch file

  • Example: run Sample.asta EABase.eap
  • You can ignore messages of "SLF 4J"



  • Depending on the size of the asta file to be converted, Out of memory error may be shown. If the message is shown, adjusting the value of STACK_SIZE and MAXIMUM_HEAP_SIZE may be improved.
  • If there are any issues you can not convert successfully, please contact me with asta file to reproduce issues.



  • Template information of Classes is not supported.
  • Ports which are owned by Parts are not supported.
  • Notes are automatically added in Use Case diagram if a Use Case in the diagram has Extension Points. Plese delete the Notes element.
  • Size of Use Case elements might not be maintained.
  • Call Behavior actions are converted as normal Action elements.
  • Levels of Execution Specification in Sequence diagrams are reset.
  • Some properties of fragments in Sequence diagram are not converted.
  • Deletion Mark (X) in Sequence diagrams is not supported.
  • Positions of messages in Communication diagram are not converted.
  • You need to enable SysML 1.3 if you need to convert SysML Requirements.
  • Style of Nesting connectors in SysML Requirement diagrams is not converted.
  • Some styles of connector are not supported.
  • Position of self-connectors and Labels (text) might not be maintained.
  • Order in the Project Browser is reset.
  • All non-UML elements are not supported.


This XML file is MDG Technology for GSN. You can create GSN (Goal Structure Notation) model on Enterprise Architect. For detail about GSN, please visit http://www.goalstructuringnotation.info/ .


With this MDG Technology, you can use GSN Diagram, GSN Toolbox, GSN objects and Quicklinker rule for GSN objects. To use this Technology, import the attached file via Specialize Ribbon | Publish-Tech button | Import MDG Technology menu item.

 (Update on 15th October 2019: Update text drawings for some objects)

Wednesday, 22 August 2018 02:26

Add-In for Fault Tree Analysis

This FTA Add-In enables to write Fault Tree Analysis (FTA) diagram in Enterprise Architect. It offers some userful features like auto-layout.


- Installation


Please unzip the following file, then right-click EAAddinSetup.bat file and select 'Run As Administrator'. If installation is succeeded, you can find 'FTA' menu item under Extension menu of Enterprise Architect.

This add-in works on Enterprise Architect version 13.0 or later.



- How to create FTA


Just the same as creating other type of diagrams. At first, create top-level intermediate event and then use the QuickLinker to add other events or gates.

You can set basic properties by double-clicking target object.


- Add-In features

This Add-In has two features, auto-layout and calculate probability.

Select root (target) object and call features by context menu, under 'Specialize' | 'FTA'.


Friday, 13 April 2012 02:30

Apply Windows7 Jump Lists to EA.exe


- Windows 7 Administrator rights

- The Windows 7 Jump List feature currently works with existing applications


Please Note: Modifying Windows Registry Settings may cause severe issues.  Do not edit the Windows registry unless you are confident about doing so.  We recommend that you backup your registry settings before any modifications are made.




1. Copy the following text and paste to a text editor. Then save it with .reg extension


-- from here --


Windows Registry Editor Version 5.00


Windows Registry Editor Version 5.00






-- end here --


2. Double-click the file and add Registry values.


3. Similar to step 1, save the following texts as .reg file

-- from here --


Windows Registry Editor Version 5.00





@="C:\\Program Files (x86)\\Sparx Systems\\EA\\EA.exe,1"







@="\"C:\\Program Files (x86)\\Sparx Systems\\EA\\EA.exe\" \"%1\""

-- end here --



4. Before applying the .reg file, check the EA install path in the .reg file. The above example is for Windows 64 bit environment. You need to modify the path on 32bit OS or


5. Right-click any .EAP file, then select 'Open With' | 'Choose Program'. There are two Enterprise Architect settings, select the second Enterprise Architect setting.

6. EA will start and open the EAP file. Please check the EAP file is added to the Jump Lists.


You do not need to repeat the above steps if the step6 works fine. When you double-click any EAP file after this setting, the file will be added to the Jump Lists automatically.



With this Add-in, when you create a new Association connector and set its name, a reading direction mark (black triangle) is automatically added. (the direction is connector's source to target.)

To enable this Add-in, follow the steps:


1. Unzip the attached file.

2. Run EAAddinSetup.bat file. If you run on Windows Vista or Windows 7, please run the bat file as Administrator (right-click the file and run as Administrator).

3. Run Enterprise Architect.

4. Create an Assocation.

5. Double-click the Assocation and set its name.

6. The add-in works on the background automatically, and the reading direction mark will be added automatically.


Friday, 30 October 2009 07:13

Replace text in Element Name and Notes

Dim fromString, toString

'Replace text in Name and Notes
 Function ReplaceString(obj)

    Dim modified
    modified = False

    'replace string in Name
    If InStr(obj.Name, fromString) > 0 Then
        obj.Name = Replace(obj.Name, fromString, toString)
        modified = True
    End If
    'replace string in Notes
    If InStr(obj.Notes, fromString) > 0 Then
        obj.Notes = Replace(obj.Notes, fromString, toString)
        modified = True
    End If
    'call Update if modified
    If modified Then
    End If
    ReplaceString = modified
End Function

'Replace texts of an element
Sub ReplaceElement(elem)

    Dim method
    Dim attr
    Dim i
    Dim modified
    modified = False
    ' element methods
 For i = 0 To elem.Methods.Count - 1
  Set method = elem.Methods.GetAt(i)
  modified = modified Or ReplaceString(method)
    ' element attributes
 For i = 0 To elem.Attributes.Count - 1
  Set attr = elem.Attributes.GetAt(i)
  modified = modified Or ReplaceString(attr)

    ' element properties
 modified = modified Or ReplaceString(elem)
 ' tell EA changes if modified
    If modified Then
        Repository.AdviseElementChange elem.ElementID
    End If
End Sub

' Replace texts of a Package
Sub ReplaceInPackage(pkg)

    ' elements in the Package
    Dim elem
    Dim i
    For i = 0 To pkg.Elements.Count - 1
        Set elem = pkg.Elements.GetAt(i)
        ReplaceElement elem
    ' packages in the Package
    Dim childPkg
 For i = 0 To pkg.Packages.Count - 1
  Set childPkg = pkg.Packages.GetAt(i)
  ReplaceInPackage childPkg
    ' Package properties
 If ReplaceString(pkg) Then
  ' tell EA changes if modified
  Repository.AdviseElementChange pkg.Element.ElementID
 End If

End Sub

'Main function
Sub Main()

 fromString = InputBox("Find what:","Replace text")
 If fromString = "" Then Exit Sub
 toString = InputBox("Replace with:","Replace text")
 If toString = "" Then Exit Sub

 ReplaceInPackage Repository.GetTreeSelectedPackage
 Msgbox "Complete.",,"Replace text"

End Sub

'Call main function


Wednesday, 28 October 2009 11:47

Swap Element Name and Alias Properties

'Swap a Method or an Attribute
Private Sub Swap(obj)
    Dim sTmp

    If obj.Style <> "" And obj.Name <> "" Then
        sTmp = obj.Name
        obj.Name = obj.Style
        obj.Style = sTmp
        Repository.AdviseElementChange obj.ParentID
    End If
    'Parameters of Method
    If obj.ObjectType = 24 Then
  Dim i
        For i = 0 To obj.Parameters.Count - 1
            SwapParameter obj.Parameters(i)
    End If
End Sub

'Swap Parameters
Private Sub SwapParameter(param)

    Dim sTmp
    If param.Alias <> "" And param.Name <> "" Then
        sTmp = param.Name
        param.Name = param.Alias
        param.Alias = sTmp
    End If
End Sub

'Swap ConnectorEnds
Private Sub SwapConnectorEnd(connEnd)

 Dim sTmp

    If connEnd.Role <> "" And connEnd.Alias <> "" Then
        sTmp = connEnd.Role
        connEnd.Role = connEnd.Alias
        connEnd.Alias = sTmp
    End If
End Sub

'Swap an Element
Private Sub SwapElement(elem)
    Dim method
    Dim attr
 Dim conn
    Dim i
    Dim sTmp
    ' Methods of Element
    For i = 0 To elem.Methods.Count - 1
        Set method = elem.Methods.GetAt(i)
        Swap method
    'Attributes of Element
    For i = 0 To elem.Attributes.Count - 1
        Set attr = elem.Attributes.GetAt(i)
        Swap attr

    'Connectors of Elements
    For i = 0 To elem.Connectors.Count -1
  Set conn = elem.Connectors.GetAt(i)

  If elem.ElementID = conn.SupplierID then
   If conn.Alias <> "" And conn.Name <> "" Then
    sTmp = conn.Alias
    conn.Alias = conn.Name
    conn.Name = sTmp
   End If

   SwapConnectorEnd conn.SupplierEnd
   SwapConnectorEnd conn.ClientEnd
   Repository.AdviseConnectorChange conn.connectorID
  End If

 'Element Name
    If elem.Alias <> "" And elem.Name <> "" Then
        sTmp = elem.Name
        elem.Name = elem.Alias
        elem.Alias = sTmp
        Repository.AdviseElementChange elem.ElementID
    End If
End Sub

'Swap a Package
Private Sub SwapPackage(pkg)

    'Elements in Package
    Dim elem
    Dim i
    For i = 0 To pkg.Elements.Count - 1
        Set elem = pkg.Elements.GetAt(i)
        SwapElement elem
    'Packages in Package
    Dim childPkg
    For i = 0 To pkg.Packages.Count - 1
        Set childPkg = pkg.Packages.GetAt(i)
        SwapPackage childPkg
    'Package Name
    Dim sTmp
    If pkg.Alias <> "" And pkg.Name <> "" Then
        sTmp = pkg.Name
        pkg.Name = pkg.Alias
        pkg.Alias = sTmp
    End If
End Sub

'Main Function
Sub Main()

 SwapPackage Repository.GetTreeSelectedPackage

 Msgbox "Completed."+vbcrlf+"Please reload all opened diagram."

End Sub

'Call the Main function