File tree Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Expand file tree Collapse file tree 1 file changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ set to `false`.
31
31
- ` @equations ` : for the list of equations
32
32
- ` @extend ` : for extending a base system and unpacking its unknowns
33
33
- ` @icon ` : for embedding the model icon
34
+ - ` @metadata ` : for assigning key-value pairs as model level metadata
34
35
- ` @parameters ` : for specifying the symbolic parameters
35
36
- ` @structural_parameters ` : for specifying non-symbolic parameters
36
37
- ` @variables ` : for specifying the unknowns
94
95
v_for_defaults => 2.0
95
96
end
96
97
end
98
+
99
+ struct Author end
100
+ struct ModelVersion end
101
+ @mtkmodel ModelD begin
102
+ @description "A component with some metadata."
103
+ @metadata begin
104
+ Author = "Test Author"
105
+ ModelVersion = "1.0.0"
106
+ end
107
+ end
97
108
```
98
109
99
110
#### ` @description `
@@ -257,6 +268,30 @@ using ModelingToolkit
257
268
end
258
269
```
259
270
271
+ #### ` @metadata ` begin block
272
+
273
+ - Assign key-value pairs as model level metadata.
274
+ - The keys must be ` DataType ` to avoid any key collisions.
275
+ - Assignments can be made using either ` = ` or ` => ` .
276
+ - Metadata can be retrieved using [ ` getmetadata ` ] ( @ref ) .
277
+ - Metadata can be set using [ ` setmetadata ` ] ( @ref ) .
278
+
279
+ ``` @example mtkmodel-example
280
+ using ModelingToolkit
281
+
282
+ struct Author end
283
+ struct ModelVersion end
284
+
285
+ @mtkmodel MetadataModel begin
286
+ @metadata begin
287
+ Author = "Test Author"
288
+ ModelVersion => "1.0.0"
289
+ end
290
+ end
291
+ @named model = MetadataModel()
292
+ getmetadata(model, Author, nothing) == "Test Author"
293
+ ```
294
+
260
295
#### A begin block
261
296
262
297
- Any other Julia operations can be included with dedicated begin blocks.
You can’t perform that action at this time.
0 commit comments