1 L0 = <http://www.simantics.org/Layer0-1.1>
2 STR = <http://www.simantics.org/Structural-1.2>
3 DOC = <http://www.simantics.org/Documentation-1.2>
4 RELATIONS = <http://www.simantics.org/Documentation-1.2/Relations>
5 G2D = <http://www.simantics.org/G2D-1.1>
6 DIA = <http://www.simantics.org/Diagram-2.2>
7 MOD = <http://www.simantics.org/Modeling-1.2>
10 /*** Structure connections ***/
11 DOC.Document.ChildRelation <T STR.ConnectionRelation
12 >-- DOC.Document.ChildRelation.ordinal --> L0.String <R L0.HasProperty
14 DOC.Document.IsConnectedToChild <R STR.IsConnectedTo : DOC.Document.ChildRelation
16 DOC.ConnectionType : STR.ConnectionType
17 G2D.HasColor [0.8,0.64,0.0] : G2D.Color
18 G2D.HasStrokeType G2D.StrokeType.Scaling
19 G2D.HasStroke _ : G2D.Stroke
20 G2D.HasStrokeWidth 0.2 : L0.Float
21 G2D.HasLineCap G2D.LineCap.ButtCap
22 G2D.HasLineJoin G2D.LineJoin.MiterJoin
23 STR.HasConnectionConstraint
24 DOC.ParentToChildConstraint : DOC.RelationTypeConstraint
25 DOC.RelationTypeConstraint.Type1 RELATIONS.parentRelation
26 DOC.RelationTypeConstraint.Type2 RELATIONS.childRelation
27 DOC.NoSelfConnectionConstraint
29 DOC.RelationTypeConstraint <T STR.ConnectionConstraint
30 L0.HasDescription """Ensures that connections are type1-type2 or type2-type1."""
31 >-- DOC.RelationTypeConstraint.Type1 --> STR.ConnectionRelation <R L0.HasProperty : L0.FunctionalRelation
32 >-- DOC.RelationTypeConstraint.Type2 --> STR.ConnectionRelation <R L0.HasProperty : L0.FunctionalRelation
34 DOC.NoSelfConnectionConstraint : STR.ConnectionConstraint
35 L0.HasDescription """Ensures that elements cannot connect to themselves"""
38 defChildConnectionPoint : L0.Template
39 @template %subject %ordinal
40 %subject <R DOC.Document.IsConnectedToChild
41 DOC.Document.ChildRelation.ordinal %ordinal
43 RELATIONS.parentRelation <T L0.FunctionalRelation <T STR.ConnectionRelation
44 @L0.assert STR.AllowsConnectionType DOC.ConnectionType
45 @L0.assert MOD.ConnectionRelationToTerminal DOC.Terminals.ParentTerminal
46 @L0.assert STR.HasAttachmentRelation DIA.HasPlainConnector
48 RELATIONS.childRelation <T STR.ConnectionRelation
49 @L0.assert STR.AllowsConnectionType DOC.ConnectionType
50 @L0.assert MOD.ConnectionRelationToTerminal DOC.Terminals.ChildTerminal
51 @L0.assert STR.HasAttachmentRelation DIA.HasArrowConnector
53 RELATIONS.functionalChildRelation <T RELATIONS.childRelation <T L0.FunctionalRelation
55 RELATIONS.parent : RELATIONS.parentRelation <R STR.IsConnectedTo
57 RELATIONS.part1 : RELATIONS.functionalChildRelation
58 @defChildConnectionPoint "1"
59 RELATIONS.part2 : RELATIONS.functionalChildRelation
60 @defChildConnectionPoint "2"
61 RELATIONS.part3 : RELATIONS.functionalChildRelation
62 @defChildConnectionPoint "3"
63 RELATIONS.part4 : RELATIONS.functionalChildRelation
64 @defChildConnectionPoint "4"
65 RELATIONS.part5 : RELATIONS.functionalChildRelation
66 @defChildConnectionPoint "5"
67 RELATIONS.part6 : RELATIONS.functionalChildRelation
68 @defChildConnectionPoint "6"
69 RELATIONS.part7 : RELATIONS.functionalChildRelation
70 @defChildConnectionPoint "7"
71 RELATIONS.part8 : RELATIONS.functionalChildRelation
72 @defChildConnectionPoint "8"
73 RELATIONS.part9 : RELATIONS.functionalChildRelation
74 @defChildConnectionPoint "9"
75 RELATIONS.part10 : RELATIONS.functionalChildRelation
76 @defChildConnectionPoint "10"
78 RELATIONS.part11 : RELATIONS.functionalChildRelation
79 @defChildConnectionPoint "11"
80 RELATIONS.part12 : RELATIONS.functionalChildRelation
81 @defChildConnectionPoint "12"
82 RELATIONS.part13 : RELATIONS.functionalChildRelation
83 @defChildConnectionPoint "13"
84 RELATIONS.part14 : RELATIONS.functionalChildRelation
85 @defChildConnectionPoint "14"
86 RELATIONS.part15 : RELATIONS.functionalChildRelation
87 @defChildConnectionPoint "15"
88 RELATIONS.part16 : RELATIONS.functionalChildRelation
89 @defChildConnectionPoint "16"
90 RELATIONS.part17 : RELATIONS.functionalChildRelation
91 @defChildConnectionPoint "17"
92 RELATIONS.part18 : RELATIONS.functionalChildRelation
93 @defChildConnectionPoint "18"
94 RELATIONS.part19 : RELATIONS.functionalChildRelation
95 @defChildConnectionPoint "19"
96 RELATIONS.part20 : RELATIONS.functionalChildRelation
97 @defChildConnectionPoint "20"
98 RELATIONS.part21 : RELATIONS.functionalChildRelation
99 @defChildConnectionPoint "21"
100 RELATIONS.part22 : RELATIONS.functionalChildRelation
101 @defChildConnectionPoint "22"
102 RELATIONS.part23 : RELATIONS.functionalChildRelation
103 @defChildConnectionPoint "23"
104 RELATIONS.part24 : RELATIONS.functionalChildRelation
105 @defChildConnectionPoint "24"
106 RELATIONS.part25 : RELATIONS.functionalChildRelation
107 @defChildConnectionPoint "25"
108 RELATIONS.part26 : RELATIONS.functionalChildRelation
109 @defChildConnectionPoint "26"
110 RELATIONS.part27 : RELATIONS.functionalChildRelation
111 @defChildConnectionPoint "27"
112 RELATIONS.part28 : RELATIONS.functionalChildRelation
113 @defChildConnectionPoint "28"
114 RELATIONS.part29 : RELATIONS.functionalChildRelation
115 @defChildConnectionPoint "29"
116 RELATIONS.part30 : RELATIONS.functionalChildRelation
117 @defChildConnectionPoint "30"
118 RELATIONS.part31 : RELATIONS.functionalChildRelation
119 @defChildConnectionPoint "31"
120 RELATIONS.part32 : RELATIONS.functionalChildRelation
121 @defChildConnectionPoint "32"
122 RELATIONS.part33 : RELATIONS.functionalChildRelation
123 @defChildConnectionPoint "33"
124 RELATIONS.part34 : RELATIONS.functionalChildRelation
125 @defChildConnectionPoint "34"
126 RELATIONS.part35 : RELATIONS.functionalChildRelation
127 @defChildConnectionPoint "35"
128 RELATIONS.part36 : RELATIONS.functionalChildRelation
129 @defChildConnectionPoint "36"
130 RELATIONS.part37 : RELATIONS.functionalChildRelation
131 @defChildConnectionPoint "37"
132 RELATIONS.part38 : RELATIONS.functionalChildRelation
133 @defChildConnectionPoint "38"
134 RELATIONS.part39 : RELATIONS.functionalChildRelation
135 @defChildConnectionPoint "39"
136 RELATIONS.part40 : RELATIONS.functionalChildRelation
137 @defChildConnectionPoint "40"
138 RELATIONS.part41 : RELATIONS.functionalChildRelation
139 @defChildConnectionPoint "41"
140 RELATIONS.part42 : RELATIONS.functionalChildRelation
141 @defChildConnectionPoint "42"
142 RELATIONS.part43 : RELATIONS.functionalChildRelation
143 @defChildConnectionPoint "43"
144 RELATIONS.part44 : RELATIONS.functionalChildRelation
145 @defChildConnectionPoint "44"
146 RELATIONS.part45 : RELATIONS.functionalChildRelation
147 @defChildConnectionPoint "45"
148 RELATIONS.part46 : RELATIONS.functionalChildRelation
149 @defChildConnectionPoint "46"
150 RELATIONS.part47 : RELATIONS.functionalChildRelation
151 @defChildConnectionPoint "47"
152 RELATIONS.part48 : RELATIONS.functionalChildRelation
153 @defChildConnectionPoint "48"
154 RELATIONS.part49 : RELATIONS.functionalChildRelation
155 @defChildConnectionPoint "49"
156 RELATIONS.part50 : RELATIONS.functionalChildRelation
157 @defChildConnectionPoint "50"
159 RELATIONS.partN <R STR.IsConnectedTo : RELATIONS.childRelation
161 /*** Command connections ***/
162 DOC.Document.CommandRelation <T STR.ConnectionRelation
163 >-- DOC.Document.CommandRelation.ordinal --> L0.String <R L0.HasProperty
165 DOC.Document.IsConnectedToCommand <R STR.IsConnectedTo : DOC.Document.CommandRelation
167 DOC.CommandConnectionType : STR.ConnectionType
168 G2D.HasColor [1.0,0.0,1.0] : G2D.Color
169 G2D.HasStrokeType G2D.StrokeType.Scaling
170 G2D.HasStroke _ : G2D.Stroke
171 G2D.HasStrokeWidth 0.2 : L0.Float
172 G2D.HasLineCap G2D.LineCap.ButtCap
173 G2D.HasLineJoin G2D.LineJoin.MiterJoin
174 STR.HasConnectionConstraint
175 DOC.CommandToCommandExecutorConstraint : DOC.RelationTypeConstraint
176 DOC.RelationTypeConstraint.Type1 RELATIONS.commandExecutorRelation
177 DOC.RelationTypeConstraint.Type2 RELATIONS.commandRelation
178 DOC.NoSelfConnectionConstraint
180 defCommandExecutorConnectionPoint : L0.Template
182 %subject <R STR.IsConnectedTo
184 defCommandConnectionPoint : L0.Template
185 @template %subject %ordinal
186 %subject <R DOC.Document.IsConnectedToCommand
187 DOC.Document.CommandRelation.ordinal %ordinal
189 RELATIONS.commandExecutorRelation <T STR.ConnectionRelation
190 @L0.assert STR.AllowsConnectionType DOC.CommandConnectionType
191 @L0.assert MOD.ConnectionRelationToTerminal DOC.Terminals.CommandExecutorTerminal
192 @L0.assert STR.HasAttachmentRelation DIA.HasPlainConnector
193 >-- RELATIONS.commandExecutorRelation.propagate --> "Boolean" <R L0.HasProperty : L0.FunctionalRelation
194 @L0.assert RELATIONS.commandExecutorRelation.propagate false
196 RELATIONS.commandRelation <T L0.FunctionalRelation <T STR.ConnectionRelation
197 @L0.assert STR.AllowsConnectionType DOC.CommandConnectionType
198 @L0.assert MOD.ConnectionRelationToTerminal DOC.Terminals.CommandTerminal
199 @L0.assert STR.HasAttachmentRelation DIA.HasArrowConnector
201 RELATIONS.click : RELATIONS.commandRelation
202 @defCommandConnectionPoint "1"
204 RELATIONS.edit : RELATIONS.commandRelation
205 @defCommandConnectionPoint "2"
207 RELATIONS.load : RELATIONS.commandRelation
208 @defCommandConnectionPoint "3"
210 RELATIONS.trigger : RELATIONS.commandRelation
211 @defCommandConnectionPoint "4"
213 RELATIONS.select : RELATIONS.commandRelation
214 @defCommandConnectionPoint "5"
216 RELATIONS.valueChanged : RELATIONS.commandRelation
217 @defCommandConnectionPoint "6"
219 RELATIONS.triggerTrue : RELATIONS.commandRelation
220 @defCommandConnectionPoint "7"
222 RELATIONS.triggerFalse : RELATIONS.commandRelation
223 @defCommandConnectionPoint "8"
225 RELATIONS.uploaded : RELATIONS.commandRelation
226 @defCommandConnectionPoint "9"
228 RELATIONS.closed : RELATIONS.commandRelation
229 @defCommandConnectionPoint "10"
231 RELATIONS.enter : RELATIONS.commandRelation
232 @defCommandConnectionPoint "11"
234 RELATIONS.submit : RELATIONS.commandExecutorRelation
235 @defCommandExecutorConnectionPoint
237 RELATIONS.event : RELATIONS.commandExecutorRelation
238 @defCommandExecutorConnectionPoint
240 RELATIONS.open : RELATIONS.commandExecutorRelation
241 @defCommandExecutorConnectionPoint
243 RELATIONS.close : RELATIONS.commandExecutorRelation
244 @defCommandExecutorConnectionPoint
246 RELATIONS.sequenceTrigger : RELATIONS.commandExecutorRelation
247 @defCommandExecutorConnectionPoint
248 RELATIONS.commandExecutorRelation.propagate true
250 RELATIONS.broadcast : RELATIONS.commandExecutorRelation
251 @defCommandExecutorConnectionPoint
253 RELATIONS.sequence1 : RELATIONS.commandRelation
254 @defCommandConnectionPoint "1"
256 RELATIONS.sequence2 : RELATIONS.commandRelation
257 @defCommandConnectionPoint "2"
259 RELATIONS.sequence3 : RELATIONS.commandRelation
260 @defCommandConnectionPoint "3"
262 RELATIONS.sequence4 : RELATIONS.commandRelation
263 @defCommandConnectionPoint "4"
265 RELATIONS.sequence5 : RELATIONS.commandRelation
266 @defCommandConnectionPoint "5"
268 RELATIONS.sequence6 : RELATIONS.commandRelation
269 @defCommandConnectionPoint "6"
271 RELATIONS.sequence7 : RELATIONS.commandRelation
272 @defCommandConnectionPoint "7"
274 RELATIONS.sequence8 : RELATIONS.commandRelation
275 @defCommandConnectionPoint "8"
277 RELATIONS.sequence9 : RELATIONS.commandRelation
278 @defCommandConnectionPoint "9"
280 RELATIONS.sequence10 : RELATIONS.commandRelation
281 @defCommandConnectionPoint "10"
283 RELATIONS.broadcasted : RELATIONS.commandRelation
284 @defCommandConnectionPoint "1"
286 RELATIONS.eventIn : RELATIONS.commandExecutorRelation
287 @defCommandExecutorConnectionPoint
289 RELATIONS.eventOut : RELATIONS.commandRelation
290 @defCommandConnectionPoint "1"
292 /*** Data connections ***/
293 DOC.Document.DataRelation <T STR.ConnectionRelation
294 DOC.Document.IsConnectedToData <R STR.IsConnectedTo : DOC.Document.DataRelation
296 DOC.DataStroke : G2D.Stroke
297 G2D.HasDashArray [1.0, 0.5] : L0.FloatArray
298 G2D.HasStrokeWidth 0.2 : L0.Float
299 G2D.HasLineCap G2D.LineCap.ButtCap
300 G2D.HasLineJoin G2D.LineJoin.MiterJoin
302 DOC.DataConnectionType : STR.ConnectionType
303 G2D.HasColor [0,0.65,1.0] : G2D.Color
304 G2D.HasStrokeType G2D.StrokeType.Scaling
305 G2D.HasStroke DOC.DataStroke
306 STR.HasConnectionConstraint
307 DOC.DataProviderToDataConsumerConstraint : DOC.RelationTypeConstraint
308 DOC.RelationTypeConstraint.Type1 RELATIONS.dataProviderRelation
309 DOC.RelationTypeConstraint.Type2 RELATIONS.dataConsumerRelation
310 DOC.NoSelfConnectionConstraint
312 defDataProviderConnectionPoint : L0.Template
314 %subject <R STR.IsConnectedTo
316 defDataConsumerConnectionPoint : L0.Template
318 %subject <R DOC.Document.IsConnectedToData
320 RELATIONS.dataProviderRelation <T STR.ConnectionRelation
321 @L0.assert STR.AllowsConnectionType DOC.DataConnectionType
322 @L0.assert MOD.ConnectionRelationToTerminal DOC.Terminals.DataProviderTerminal
323 @L0.assert STR.HasAttachmentRelation DIA.HasPlainConnector
325 RELATIONS.dataConsumerRelation <T STR.ConnectionRelation
326 @L0.assert STR.AllowsConnectionType DOC.DataConnectionType
327 @L0.assert MOD.ConnectionRelationToTerminal DOC.Terminals.DataConsumerTerminal
328 @L0.assert STR.HasAttachmentRelation DIA.HasArrowConnector
330 RELATIONS.singleDataConsumerRelation <T L0.FunctionalRelation <T RELATIONS.dataConsumerRelation
332 RELATIONS.dataIn : RELATIONS.singleDataConsumerRelation
333 @defDataConsumerConnectionPoint
335 RELATIONS.arrayDataIn : RELATIONS.dataConsumerRelation
336 @defDataConsumerConnectionPoint
338 RELATIONS.dataOut : RELATIONS.dataProviderRelation
339 @defDataProviderConnectionPoint
341 RELATIONS.dataIn1 : RELATIONS.singleDataConsumerRelation
342 @defDataConsumerConnectionPoint
344 RELATIONS.dataIn2 : RELATIONS.singleDataConsumerRelation
345 @defDataConsumerConnectionPoint
347 RELATIONS.dataIn3 : RELATIONS.singleDataConsumerRelation
348 @defDataConsumerConnectionPoint
350 RELATIONS.dataIn4 : RELATIONS.singleDataConsumerRelation
351 @defDataConsumerConnectionPoint
353 RELATIONS.dataIn5 : RELATIONS.singleDataConsumerRelation
354 @defDataConsumerConnectionPoint
356 RELATIONS.dataIn6 : RELATIONS.singleDataConsumerRelation
357 @defDataConsumerConnectionPoint
359 RELATIONS.dataIn7 : RELATIONS.singleDataConsumerRelation
360 @defDataConsumerConnectionPoint
362 RELATIONS.dataIn8 : RELATIONS.singleDataConsumerRelation
363 @defDataConsumerConnectionPoint
365 RELATIONS.dataIn9 : RELATIONS.singleDataConsumerRelation
366 @defDataConsumerConnectionPoint
368 RELATIONS.dataIn10 : RELATIONS.singleDataConsumerRelation
369 @defDataConsumerConnectionPoint
371 /*** Data definition connections ***/
372 DOC.Document.DataDefinitionRelation <T STR.ConnectionRelation
373 DOC.Document.IsConnectedToDataDefinition <R STR.IsConnectedTo : DOC.Document.DataDefinitionRelation
375 DOC.DataDefinitionConnectionType : STR.ConnectionType
376 G2D.HasColor [0,0.65,1.0] : G2D.Color
377 G2D.HasStrokeType G2D.StrokeType.Scaling
378 G2D.HasStroke DOC.DataStroke
379 STR.HasConnectionConstraint
380 DOC.DataDefinitionToDataDefinitionConsumerConstraint : DOC.RelationTypeConstraint
381 DOC.RelationTypeConstraint.Type1 RELATIONS.dataDefinitionRelation
382 DOC.RelationTypeConstraint.Type2 RELATIONS.dataDefinitionConsumerRelation
383 DOC.NoSelfConnectionConstraint
385 defDataDefinitionConnectionPoint : L0.Template
387 %subject <R STR.IsConnectedTo
389 defDataDefinitionConsumerConnectionPoint : L0.Template
391 %subject <R DOC.Document.IsConnectedToDataDefinition
393 RELATIONS.dataDefinitionRelation <T STR.ConnectionRelation
394 @L0.assert STR.AllowsConnectionType DOC.DataDefinitionConnectionType
395 @L0.assert MOD.ConnectionRelationToTerminal DOC.Terminals.DataProviderTerminal
396 @L0.assert STR.HasAttachmentRelation DIA.HasPlainConnector
398 RELATIONS.singleDataDefinitionRelation <T RELATIONS.dataDefinitionRelation <T L0.FunctionalRelation
400 RELATIONS.dataDefinitionConsumerRelation <T STR.ConnectionRelation
401 @L0.assert STR.AllowsConnectionType DOC.DataDefinitionConnectionType
402 @L0.assert MOD.ConnectionRelationToTerminal DOC.Terminals.DataConsumerTerminal
403 @L0.assert STR.HasAttachmentRelation DIA.HasArrowConnector
405 RELATIONS.data1 : RELATIONS.dataDefinitionConsumerRelation
406 @defDataDefinitionConsumerConnectionPoint
408 RELATIONS.data2 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
409 @defDataDefinitionConsumerConnectionPoint
411 RELATIONS.data3 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
412 @defDataDefinitionConsumerConnectionPoint
414 RELATIONS.data4 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
415 @defDataDefinitionConsumerConnectionPoint
417 RELATIONS.data5 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
418 @defDataDefinitionConsumerConnectionPoint
420 RELATIONS.data6 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
421 @defDataDefinitionConsumerConnectionPoint
423 RELATIONS.data7 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
424 @defDataDefinitionConsumerConnectionPoint
426 RELATIONS.data8 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
427 @defDataDefinitionConsumerConnectionPoint
429 RELATIONS.data9 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
430 @defDataDefinitionConsumerConnectionPoint
432 RELATIONS.data10 : RELATIONS.dataDefinitionConsumerRelation : L0.FunctionalRelation
433 @defDataDefinitionConsumerConnectionPoint
435 RELATIONS.dataDefinition : RELATIONS.dataDefinitionRelation
436 @defDataDefinitionConnectionPoint