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`.
3131 - ` @equations ` : for the list of equations
3232 - ` @extend ` : for extending a base system and unpacking its unknowns
3333 - ` @icon ` : for embedding the model icon
34+ - ` @metadata ` : for assigning key-value pairs as model level metadata
3435 - ` @parameters ` : for specifying the symbolic parameters
3536 - ` @structural_parameters ` : for specifying non-symbolic parameters
3637 - ` @variables ` : for specifying the unknowns
9495 v_for_defaults => 2.0
9596 end
9697end
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
97108```
98109
99110#### ` @description `
@@ -257,6 +268,30 @@ using ModelingToolkit
257268end
258269```
259270
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+
260295#### A begin block
261296
262297 - Any other Julia operations can be included with dedicated begin blocks.
You can’t perform that action at this time.
0 commit comments