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