Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - pieter.steyn

Pages: [1]
1
What I tend to do if extending ArchiMate as you intend with objective is  to extend the new stereo type from the base UML type instead of ArchiMate. For example for instead of extending ArchiMate  Goal which is based on Class I create a stereo type and extend it from Class to create an Objective. the Stereotype has its own shapescript. That way you don't have the the base ArchiMate  element shapescript being drawn.

Makes sense. I suppose it's a toss-up between fully controlling the visualisation, and having to define all of the metamodel relationships to make the Quick Linker work!

2
Thanks!

(@KP - I am not calling DrawParentShape(), but have edited the decoration script.)

So, it's good to know all inherited decorations are drawn. Appreciate it, @Simon M.

Not ideal, but what I have done to get my custom decoration to display is to rely on the fact that my decoration is overlaid on top of the inherited decoration.
I create and fill a shape to override the previous decoration, and then draw mine on top of that.

For example, I specialised the ArchiMate_Goal element to be an Objective (more SMART).
The decoration in the shapescript for ArchiMate_Goal is:

decoration goal
{
   orientation="ne";
   SetOrigin("ne",-25,5);
   
   startpath();
   ellipse(0,0,100,100);
   endpath();
   strokepath();
   startpath();
   ellipse(15,15,85,85);
   endpath();
   strokepath();
   setfillcolor(getuserbordercolor());
   ellipse(30,30,70,70);
}

What I did in my custom ShapeScript was replace the decoration, and start with blotting out the old decoration:
decoration objective
{
   orientation="ne";

   SetOrigin("ne",-25,5);
   
   startpath();
   ellipse(0,0,100,100);
   endpath();
   SetFillColor(GetUserFillColor());
   FillAndStrokePath();
   
        //...      
}

I suppose, if specialising an existing MDG and using custom ShapeScript (as per Geert's library), there is no value in keeping the decorations in the new ShapeScript as the inherited decorations will always be displayed, unless you want to redefine it.

Thanks again!

3
I have created a tailored MDG based on ArchiMate, and have replaced all of the ShapeScripts on the elements. (I used Geert's library - thanks, Geert!)
It has worked perfectly for most elements, including Business, Application and Technology elements, as I have not needed to change decorations.

I have now got around to customising decorations for some extended elements (such as Objective derived from Goal, and Organisation derived from Business Actor), and am running into an issue.

When I put in custom ShapeScript on these elements, the shapescript seems to be duplicated on top of the standard ArchiMate ShapeScript.
Anything I draw seems to be overlaid.
 
In fact, if I remove everything from the custom ShapeScript (which should just draw an empty shape), it still draws the standard ArchiMate shape that I extended, including the decoration, colour and main shape. It cannot therefore be anything in the new ShapeScript.

Any idea why these elements would be displaying inherited ShapeScript overlaid with any new ShapeScript, and what I can do about it?

Appreciate it.

Pieter.

4
Yep.

Got this response from support:
The ArchiMate 3 MDG technology in EA 14 is using the metamodel functionality introduced in EA 14 to define quicklinks.
http://www.sparxsystems.com/enterprise_architect_user_guide/14.0/modeling_tools/metamodelconstraints.html

This method is a little less flexible than defining quicklinker rules explicitly, but allows you to model the relationships instead, and is much simpler when you have a set of stereotypes with inheritance between them. It also has the advantage that the rules you define can also be used by model validation.

Thanks!

5
I have been looking at the ArchiMate3.xml that ships with EA v14.

It contains no QuickLink node, but instead has stereotypedrelationship definitions for the ArchiMate elements that were not in the v13.5 MDG XML:
It also has a "_HideUmlLinks" property, which seems to directly relate to QuickLinks.

Is this now how QuickLinks are defined?
I can't find anything in the documentation.

<Stereotype name="ArchiMate_BusinessActor" metatype="BusinessActor" ...  strictness="profile">
            <stereotypedrelationships>
              <stereotypedrelationship stereotype="ArchiMate3::ArchiMate_Assignment" constraint="ArchiMate3::ArchiMate_BusinessRole;ArchiMate3::ArchiMate_Stakeholder;ArchiMate3::Business Behavior"/>
            </stereotypedrelationships>
...
            <AppliesTo>
              <Apply type="Class">
                <Property name="_defaultDiagramType" value="ArchiMate3::Business"/>
                <Property name="_HideUmlLinks" value="True"/>
              </Apply>
            </AppliesTo>
          </Stereotype>

Pages: [1]