diff --git a/app.js b/app.js index ddc832cd..358b48a0 100644 --- a/app.js +++ b/app.js @@ -8,13 +8,13 @@ const path = require('path') const ArgumentParser = require('argparse').ArgumentParser /// /////////////////////////////////////// -var parser = new ArgumentParser({ +const parser = new ArgumentParser({ version: '0.0.1', addHelp: true, description: 'Modelica parser' }) parser.addArgument( - [ '-o', '--output' ], + ['-o', '--output'], { help: 'Specify output format.', choices: ['raw-json', 'json', 'modelica'], @@ -22,7 +22,7 @@ parser.addArgument( } ) parser.addArgument( - [ '-l', '--log' ], + ['-l', '--log'], { help: "Logging level, 'info' is the default.", choices: ['error', 'warn', 'info', 'verbose', 'debug'], @@ -30,7 +30,7 @@ parser.addArgument( } ) parser.addArgument( - [ '-m', '--mode' ], + ['-m', '--mode'], { help: "Parsing mode, CDL model or a package of the Modelica Buildings library, 'cdl' is the default.", choices: ['cdl', 'modelica'], @@ -38,14 +38,14 @@ parser.addArgument( } ) parser.addArgument( - [ '-f', '--file' ], + ['-f', '--file'], { help: "Filename or packagename that contains the top-level Modelica class, or a json file when the output format is 'modelica'.", required: true } ) parser.addArgument( - [ '-d', '--directory' ], + ['-d', '--directory'], { help: 'Specify output directory, with the default being the current.', defaultValue: 'current' @@ -54,14 +54,14 @@ parser.addArgument( parser.addArgument( - [ '-p', '--prettyPrint' ], + ['-p', '--prettyPrint'], { help: 'Pretty print JSON output.', defaultValue: 'false' } ) -var args = parser.parseArgs() +const args = parser.parseArgs() const logFile = 'modelica-json.log' try { @@ -92,27 +92,27 @@ if (args.output === 'modelica') { pa.convertToModelica(args.file, args.directory, false) } else { // Get mo files array - var moFiles = ut.getMoFiles(args.file) + const moFiles = ut.getMoFiles(args.file) // Parse the json representation for moFiles pa.getJsons(moFiles, args.mode, args.output, args.directory, args.prettyPrint) } if (args.output === 'json') { - var schema + let schema if (args.mode === 'cdl') { schema = path.join(`${__dirname}`, 'schema-cdl.json') } else { schema = path.join(`${__dirname}`, 'schema-modelica.json') } - var jsonFiles = ut.findFilesInDir(path.join(args.directory, 'json'), '.json') + let jsonFiles = ut.findFilesInDir(path.join(args.directory, 'json'), '.json') // exclude CDL folder and possibly Modelica folder - var pathSep = path.sep - var cdlPath = path.join(pathSep, 'CDL', pathSep) - var modelicaPath = path.join('Modelica', pathSep) + const pathSep = path.sep + const cdlPath = path.join(pathSep, 'CDL', pathSep) + const modelicaPath = path.join('Modelica', pathSep) jsonFiles = jsonFiles.filter(obj => !(obj.includes(cdlPath) || obj.includes(modelicaPath))) // validate json schema - for (var i = 0; i < jsonFiles.length; i++) { - var eachFile = jsonFiles[i] - setTimeout(function () { ut.jsonSchemaValidation(args.mode, eachFile, 'json', schema) }, 100) + for (let i = 0; i < jsonFiles.length; i++) { + const eachFile = jsonFiles[i] + setTimeout(function () { ut.jsonSchemaValidation(args.mode, eachFile, schema) }, 100) } } diff --git a/json2mo/algorithmSection.js b/json2mo/algorithmSection.js index e4947d1a..afd81018 100644 --- a/json2mo/algorithmSection.js +++ b/json2mo/algorithmSection.js @@ -1,14 +1,14 @@ function parse (content, rawJson = false) { const statementParser = require('./statement') - var moOutput = '' + let moOutput = '' if (content.initial != null) { if (content.initial) { moOutput += 'initial ' } } moOutput += 'algorithm' - var statements = null + let statements = null if (rawJson) { statements = content.statements } else { @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/annotation.js b/json2mo/annotation.js index 5bfe6150..cf486dea 100644 --- a/json2mo/annotation.js +++ b/json2mo/annotation.js @@ -1,18 +1,18 @@ function parse (content, rawJson = false) { const classModificationParser = require('./classModification') - var moOutput = '' + let moOutput = '' moOutput += '\n\tannotation ' if (rawJson) { if (content.class_modification != null) { moOutput += classModificationParser.parse(content.class_modification, rawJson) } } else { - var classModification = content + const classModification = content moOutput += classModificationParser.parse(classModification, rawJson) } - // moOutput+="\n" + // moOutput+="\n" return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/argument.js b/json2mo/argument.js index d6302a98..ba38fdca 100644 --- a/json2mo/argument.js +++ b/json2mo/argument.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const elementModificationOrReplaceable = require('./elementModificationOrReplaceable') const elementRedeclaration = require('./elementRedeclaration') - var moOutput = '' + let moOutput = '' if (content.element_modification_or_replaceable != null) { moOutput += elementModificationOrReplaceable.parse(content.element_modification_or_replaceable, rawJson) } else if (content.element_redeclaration != null) { @@ -11,4 +11,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/argumentList.js b/json2mo/argumentList.js index 5d33238a..66da1b60 100644 --- a/json2mo/argumentList.js +++ b/json2mo/argumentList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const argumentParser = require('./argument') - var moOutput = '' + let moOutput = '' if (rawJson) { - var argumentStr = content.arguments + const argumentStr = content.arguments if (argumentStr != null) { argumentStr.forEach(argument => { @@ -15,4 +15,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/arraySubscripts.js b/json2mo/arraySubscripts.js index b1e5265b..566ae7c0 100644 --- a/json2mo/arraySubscripts.js +++ b/json2mo/arraySubscripts.js @@ -2,11 +2,11 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const subscriptParser = require('./subscript') - var moOutput = '' + let moOutput = '' if (rawJson) { moOutput += '[' - var subscripts = content.subscripts + const subscripts = content.subscripts if (subscripts != null) { subscripts.forEach(subscript => { moOutput += subscriptParser.parse(subscript, rawJson) @@ -16,7 +16,7 @@ function parse (content, rawJson = false) { } moOutput += '] ' } else { - var arraySubscripts = content + const arraySubscripts = content moOutput += '[' if (arraySubscripts != null) { @@ -37,4 +37,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/assignmentEquation.js b/json2mo/assignmentEquation.js index aa9c7595..8ed11e88 100644 --- a/json2mo/assignmentEquation.js +++ b/json2mo/assignmentEquation.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const simpleExpression = require('./simpleExpression') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (content.lhs != null) { moOutput += simpleExpression.parse(content.lhs, rawJson) } @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/assignmentStatement.js b/json2mo/assignmentStatement.js index a4fe21fa..8e26eb3a 100644 --- a/json2mo/assignmentStatement.js +++ b/json2mo/assignmentStatement.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const componentReferenceParser = require('./componentReference') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (content.identifier != null) { moOutput += componentReferenceParser.parse(content.identifier, rawJson) } @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/assignmentWithFunctionCallStatement.js b/json2mo/assignmentWithFunctionCallStatement.js index 42c9764a..7fa4ea6d 100644 --- a/json2mo/assignmentWithFunctionCallStatement.js +++ b/json2mo/assignmentWithFunctionCallStatement.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const outputExpressionListParser = require('./outputExpressionList') const functionCallArgsParser = require('./functionCallArgs') - var moOutput = '' + let moOutput = '' moOutput += '(' if (content.output_expression_list != null) { moOutput += outputExpressionListParser.parse(content.output_expression_list, rawJson) @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/basePrefix.js b/json2mo/basePrefix.js index 1e77408d..434255d4 100644 --- a/json2mo/basePrefix.js +++ b/json2mo/basePrefix.js @@ -1,12 +1,12 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.type_prefix != null) { moOutput += util.format('%s ', content.type_prefix) } } else { - var basePrefix = content + const basePrefix = content if (basePrefix != null) { moOutput += util.format('%s ', basePrefix) } @@ -15,4 +15,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/classDefinition.js b/json2mo/classDefinition.js index df7c4401..f7581b96 100644 --- a/json2mo/classDefinition.js +++ b/json2mo/classDefinition.js @@ -1,9 +1,9 @@ function parse (content, rawJson = false) { const util = require('util') const classSpecifier = require('./classSpecifier') - var encapsulated = content.encapsulated - var classPrefixes = content.class_prefixes - var moOutput = '' + const encapsulated = content.encapsulated + const classPrefixes = content.class_prefixes + let moOutput = '' if (encapsulated != null) { if (encapsulated) { @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/classModification.js b/json2mo/classModification.js index 30c920bd..9731e248 100644 --- a/json2mo/classModification.js +++ b/json2mo/classModification.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const argumentListParser = require('./argumentList') const argumentParser = require('./argument') - var moOutput = '' + let moOutput = '' if (rawJson) { moOutput += '(\n\t' if (content.argument_list != null) { @@ -10,7 +10,7 @@ function parse (content, rawJson = false) { } moOutput += ')\n\t' } else { - var argumentList = content + const argumentList = content moOutput += '(\n\t' argumentList.forEach(argument => { @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/classSpecifier.js b/json2mo/classSpecifier.js index 21e03906..009bc732 100644 --- a/json2mo/classSpecifier.js +++ b/json2mo/classSpecifier.js @@ -3,11 +3,11 @@ function parse (content, rawJson = false) { const shortClassSpecifierParser = require('./shortClassSpecifier') const derClassSpecifierParser = require('./derClassSpecifier') - var longClassSpecifier = content.long_class_specifier - var shortClassSpecifier = content.short_class_specifier - var derClassSpecifier = content.der_class_specifier + const longClassSpecifier = content.long_class_specifier + const shortClassSpecifier = content.short_class_specifier + const derClassSpecifier = content.der_class_specifier - var moOutput = '' + let moOutput = '' if (longClassSpecifier != null) { moOutput += longClassSpecifierParser.parse(longClassSpecifier, rawJson) @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/comment.js b/json2mo/comment.js index fb7130f3..57c97cec 100644 --- a/json2mo/comment.js +++ b/json2mo/comment.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const annotationParser = require('./annotation') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.string_comment != null) { moOutput += util.format('\n"\t%s"', content.string_comment) @@ -22,4 +22,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentClause.js b/json2mo/componentClause.js index 20783ed9..c864e2e4 100644 --- a/json2mo/componentClause.js +++ b/json2mo/componentClause.js @@ -4,7 +4,7 @@ function parse (content, rawJson = false) { const componentListParser = require('./componentList') const util = require('util') - var moOutput = '' + let moOutput = '' if (content.type_prefix != null) { moOutput += util.format('%s ', content.type_prefix) @@ -28,4 +28,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentClause1.js b/json2mo/componentClause1.js index 6b7d6158..6fe2be56 100644 --- a/json2mo/componentClause1.js +++ b/json2mo/componentClause1.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const typeSpecifierParser = require('./typeSpecifier') const componentDeclaration1Parser = require('./componentDeclaration1') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.type_prefix != null) { moOutput += util.format('%s ', content.type_prefix) @@ -29,4 +29,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentDeclaration.js b/json2mo/componentDeclaration.js index 84965239..74c21871 100644 --- a/json2mo/componentDeclaration.js +++ b/json2mo/componentDeclaration.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const conditionAttributeParser = require('./condition_attribute') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.declaration != null) { moOutput += declarationParser.parse(content.declaration, rawJson) } @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentDeclaration1.js b/json2mo/componentDeclaration1.js index af3b0619..d0fc73b2 100644 --- a/json2mo/componentDeclaration1.js +++ b/json2mo/componentDeclaration1.js @@ -2,7 +2,7 @@ function parse (content, rawJson) { const declarationParser = require('./declaration') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.declaration != null) { moOutput += declarationParser.parse(content.declaration, rawJson) } @@ -18,4 +18,4 @@ function parse (content, rawJson) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentList.js b/json2mo/componentList.js index 0a32662b..69fa0093 100644 --- a/json2mo/componentList.js +++ b/json2mo/componentList.js @@ -4,8 +4,8 @@ function parse (content, rawJson = false) { const conditionAttributeParser = require('./conditionAttribute') const commentParser = require('./comment') - var moOutput = '' - var componentDeclarationList + let moOutput = '' + let componentDeclarationList if (rawJson) { componentDeclarationList = content.component_declaration_list @@ -30,4 +30,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentReference.js b/json2mo/componentReference.js index 985c16e1..76dc5d2c 100644 --- a/json2mo/componentReference.js +++ b/json2mo/componentReference.js @@ -3,8 +3,8 @@ function parse (content, rawJson = false) { const arraySubscriptsParser = require('./arraySubscripts') const componentReferencePartParser = require('./componentReferencePart') - var moOutput = '' - var componentReferenceParts + let moOutput = '' + let componentReferenceParts if (rawJson) { componentReferenceParts = content.component_reference_parts if (componentReferenceParts != null) { @@ -31,4 +31,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentReferencePart.js b/json2mo/componentReferencePart.js index 62207012..d54db7c6 100644 --- a/json2mo/componentReferencePart.js +++ b/json2mo/componentReferencePart.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const arraySubscriptsParser = require('./arraySubscripts') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.dot_op != null) { @@ -20,4 +20,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/composition.js b/json2mo/composition.js index 8d172440..83379d8c 100644 --- a/json2mo/composition.js +++ b/json2mo/composition.js @@ -4,12 +4,12 @@ function parse (content, rawJson = false) { const externalCompositionParser = require('./externalComposition') const annotationParser = require('./annotation') - var moOutput = '' + let moOutput = '' if (content.element_list != null) { moOutput += elementListParser.parse(content.element_list, rawJson) } if (content.element_sections != null) { - var elementSections = content.element_sections + const elementSections = content.element_sections elementSections.forEach(ele => { moOutput += elementSectionParser.parse(ele, rawJson) }) @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/conditionAttribute.js b/json2mo/conditionAttribute.js index ed602634..9fd2db87 100644 --- a/json2mo/conditionAttribute.js +++ b/json2mo/conditionAttribute.js @@ -1,14 +1,14 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' moOutput += '\n\tif ' if (rawJson) { if (content.expression != null) { moOutput += expressionParser.parse(content.expression, rawJson) } } else { - var expression = content + const expression = content if (expression != null) { moOutput += expressionParser.parse(expression, rawJson) } @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/connectClause.js b/json2mo/connectClause.js index 30f55342..407864af 100644 --- a/json2mo/connectClause.js +++ b/json2mo/connectClause.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const componentReferenceParser = require('./componentReference') - var moOutput = '' + let moOutput = '' moOutput += 'connect(' if (content.from != null) { moOutput += componentReferenceParser.parse(content.from, rawJson) @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/constrainingClause.js b/json2mo/constrainingClause.js index a99e6dfd..6db1802c 100644 --- a/json2mo/constrainingClause.js +++ b/json2mo/constrainingClause.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const nameParser = require('./name') const classModificationParser = require('./classModification') - var moOutput = '' + let moOutput = '' moOutput += 'constrainedby ' if (content.name != null) { @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { } return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/declaration.js b/json2mo/declaration.js index 8aad3b5c..0ac5eb50 100644 --- a/json2mo/declaration.js +++ b/json2mo/declaration.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const arraySubscriptsParser = require('./arraySubscripts') const modificationParser = require('./modification') - var moOutput = '' + let moOutput = '' if (content.identifier != null) { moOutput += util.format('%s', content.identifier) } @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/derClassSpecifier.js b/json2mo/derClassSpecifier.js index 13ea81a9..efa12d71 100644 --- a/json2mo/derClassSpecifier.js +++ b/json2mo/derClassSpecifier.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const util = require('util') const derClassSpecifierValueParser = require('./derClassSpecifierValue') - var moOutput = '' - var identifier = content.identifier + let moOutput = '' + const identifier = content.identifier if (identifier != null) { moOutput += util.format('%s= ', identifier) @@ -22,4 +22,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/derClassSpecifierValue.js b/json2mo/derClassSpecifierValue.js index 55e1f1b2..a941df3b 100644 --- a/json2mo/derClassSpecifierValue.js +++ b/json2mo/derClassSpecifierValue.js @@ -3,11 +3,11 @@ function parse (content, rawJson = false) { const nameParser = require('./name') const commentParser = require('./comment') - var moOutput = 'der(' + let moOutput = 'der(' if (content.type_specifier != null) { moOutput += nameParser.parse(content.type_specifier, rawJson) } - var identifiers = null + let identifiers = null if (rawJson) { identifiers = content.identifiers } else { @@ -33,4 +33,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/element.js b/json2mo/element.js index 28ad146d..cdbf11dc 100644 --- a/json2mo/element.js +++ b/json2mo/element.js @@ -6,7 +6,7 @@ function parse (content, rawJson = false) { const constrainingClauseParser = require('./constrainingClause') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.import_clause != null) { moOutput += importClauseParser.parse(content.import_clause, rawJson) moOutput += ';\n' @@ -84,4 +84,4 @@ function parse (content, rawJson = false) { } return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementList.js b/json2mo/elementList.js index 50860176..09469c42 100644 --- a/json2mo/elementList.js +++ b/json2mo/elementList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const elementParser = require('./element') - var moOutput = '' - var elements + let moOutput = '' + let elements if (rawJson) { elements = content.elements if (elements != null) { @@ -22,4 +22,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementModification.js b/json2mo/elementModification.js index f47b90ae..c290a6a0 100644 --- a/json2mo/elementModification.js +++ b/json2mo/elementModification.js @@ -6,14 +6,14 @@ function parse (content, rawJson = false) { const graPri = require('../lib/graphicalPrimitives.js') // Get all the keys in the json object. It may be graphical primitive. - var keys = Object.keys(content) - var isGraPri = false + const keys = Object.keys(content) + let isGraPri = false // check if it is a graphical primitive isGraPri = keys.some(function (ele) { return graPri.isGraphicAnnotation(ele) }) - var moOutput = '' + let moOutput = '' if (isGraPri) { moOutput += graphicParser.parse(content, rawJson) } else { @@ -31,4 +31,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementModificationOrReplaceable.js b/json2mo/elementModificationOrReplaceable.js index 48a906e2..b86f7fdd 100644 --- a/json2mo/elementModificationOrReplaceable.js +++ b/json2mo/elementModificationOrReplaceable.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const elementModificationParser = require('./elementModification') const elementReplaceableParser = require('./elementReplaceable') - var moOutput = '' + let moOutput = '' if (content.each != null) { if (content.each) { moOutput += 'each ' @@ -30,4 +30,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementRedeclaration.js b/json2mo/elementRedeclaration.js index 9302364f..60b33eaa 100644 --- a/json2mo/elementRedeclaration.js +++ b/json2mo/elementRedeclaration.js @@ -3,7 +3,7 @@ function parse (content, rawJson) { const componentClause1Parser = require('./componentClause1') const elementReplaceableParser = require('./elementReplaceable') - var moOutput = '' + let moOutput = '' moOutput += 'redeclare ' if (content.each != null) { @@ -36,4 +36,4 @@ function parse (content, rawJson) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementReplaceable.js b/json2mo/elementReplaceable.js index 9e61b990..cbd21004 100644 --- a/json2mo/elementReplaceable.js +++ b/json2mo/elementReplaceable.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const componentClause1Parser = require('./componentClause1') const constrainingClauseParser = require('./constrainingClause') - var moOutput = '' + let moOutput = '' moOutput += 'replaceable ' if (content.short_class_definition != null) { moOutput += shortClassDefinitionParser.parse(content.short_class_definition, rawJson) @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementSection.js b/json2mo/elementSection.js index cac1568a..11ab4781 100644 --- a/json2mo/elementSection.js +++ b/json2mo/elementSection.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const equationSectionParser = require('./equationSection') const algorithmSectionParser = require('./algorithmSection') - var moOutput = '' + let moOutput = '' if (content.public_element_list != null) { moOutput += 'public\n' @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/enumList.js b/json2mo/enumList.js index 0c0540e5..404c4c7e 100644 --- a/json2mo/enumList.js +++ b/json2mo/enumList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const enumerationLiteralParser = require('./enumerationLiteral') - var moOutput = '' - var enumerationLiterals + let moOutput = '' + let enumerationLiterals if (rawJson) { enumerationLiterals = content.enumeration_literal } else { @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/enumerationLiteral.js b/json2mo/enumerationLiteral.js index 7c8bc54f..18f1287d 100644 --- a/json2mo/enumerationLiteral.js +++ b/json2mo/enumerationLiteral.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.identifier != null) { moOutput += util.format('%s ', content.identifier) @@ -20,4 +20,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/equation.js b/json2mo/equation.js index 5530de7f..1e2ac783 100644 --- a/json2mo/equation.js +++ b/json2mo/equation.js @@ -7,7 +7,7 @@ function parse (content, rawJson = false) { const functionCallEquationParser = require('./functionCallEquation') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.assignment_equation != null) { moOutput += '\n' moOutput += assignmentEquationParser.parse(content.assignment_equation, rawJson) @@ -41,4 +41,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/equationSection.js b/json2mo/equationSection.js index 0e79fbbe..54978991 100644 --- a/json2mo/equationSection.js +++ b/json2mo/equationSection.js @@ -1,14 +1,14 @@ function parse (content, rawJson = false) { const equationParser = require('./equation') - var moOutput = '' + let moOutput = '' if (content.initial != null) { if (content.initial) { moOutput += 'initial ' } } moOutput += 'equation' - var equations + let equations if (rawJson) { equations = content.equations } else { @@ -23,4 +23,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/expression.js b/json2mo/expression.js index fae169ed..65c82467 100644 --- a/json2mo/expression.js +++ b/json2mo/expression.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const simpleExpressionParser = require('./simpleExpression') const ifExpressionParser = require('./ifExpression') - var moOutput = '' + let moOutput = '' if (content.if_expression != null) { moOutput += ifExpressionParser.parse(content.if_expression, rawJson) @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/expressionList.js b/json2mo/expressionList.js index 65a252e2..24c1889a 100644 --- a/json2mo/expressionList.js +++ b/json2mo/expressionList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' - var expressionList = null + let moOutput = '' + let expressionList = null if (rawJson) { expressionList = content.expressions } else { @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/extendsClause.js b/json2mo/extendsClause.js index 1f43f75f..08ba5ce4 100644 --- a/json2mo/extendsClause.js +++ b/json2mo/extendsClause.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const classModificationParser = require('./classModification') const annotationParser = require('./annotation') - var moOutput = '' + let moOutput = '' moOutput += 'extends ' if (content.name != null) { @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/externalComposition.js b/json2mo/externalComposition.js index 4453e654..c3a8436b 100644 --- a/json2mo/externalComposition.js +++ b/json2mo/externalComposition.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const externalFunctionCallParser = require('./externalFunctionCall') const annotationParser = require('./annotation') - var moOutput = '' + let moOutput = '' moOutput += 'external ' if (content.language_specification != null) { moOutput += util.format('%s ', content.language_specification) @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/externalFunctionCall.js b/json2mo/externalFunctionCall.js index 33b559dd..3b865286 100644 --- a/json2mo/externalFunctionCall.js +++ b/json2mo/externalFunctionCall.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const componentReferenceParser = require('./componentReference') const expressionListParser = require('./expressionList') - var moOutput = '' + let moOutput = '' if (content.component_reference != null) { moOutput += componentReferenceParser.parse(content.component_reference, rawJson) @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/finalClassDefinition.js b/json2mo/finalClassDefinition.js index d356ff5a..3ba5f466 100644 --- a/json2mo/finalClassDefinition.js +++ b/json2mo/finalClassDefinition.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const classDefinitionParser = require('./classDefinition') - var moOutput = '' - var isFinal = false + let moOutput = '' + let isFinal = false if (rawJson) { isFinal = content.is_final @@ -20,11 +20,11 @@ function parse (content, rawJson = false) { moOutput += classDefinitionParser.parse(content.class_definition, rawJson) } } else { - var classDefinition = content + const classDefinition = content moOutput += classDefinitionParser.parse(classDefinition, rawJson) } return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forEquation.js b/json2mo/forEquation.js index 22f6e182..5fdd8235 100644 --- a/json2mo/forEquation.js +++ b/json2mo/forEquation.js @@ -2,16 +2,15 @@ function parse (content, rawJson = false) { const forIndicesParser = require('./forIndices') const equationParser = require('./equation') - var moOutput = '' + let moOutput = '' moOutput += 'for ' - var loopEquations if (content.for_indices != null) { moOutput += forIndicesParser.parse(content.for_indices, rawJson) } moOutput += 'loop \n' - loopEquations = content.loop_equations + const loopEquations = content.loop_equations loopEquations.forEach(ele => { moOutput += equationParser.parse(ele, rawJson) moOutput += ';\n' @@ -20,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forIndex.js b/json2mo/forIndex.js index 46fddb8e..9b1649f9 100644 --- a/json2mo/forIndex.js +++ b/json2mo/forIndex.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.identifier != null) { moOutput += util.format('%s ', content.identifier) @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forIndices.js b/json2mo/forIndices.js index 7085f4d7..69297b72 100644 --- a/json2mo/forIndices.js +++ b/json2mo/forIndices.js @@ -3,8 +3,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const forIndexParser = require('./forIndex') // only for raw-json - var moOutput = '' - var indices + let moOutput = '' + let indices if (rawJson) { indices = content.indices if (indices != null) { @@ -33,4 +33,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forIndicesObj.js b/json2mo/forIndicesObj.js index b3b7aa57..f3941058 100644 --- a/json2mo/forIndicesObj.js +++ b/json2mo/forIndicesObj.js @@ -1,13 +1,13 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' + let moOutput = '' moOutput += util.format('%s', content[0].name) moOutput += ' in ' moOutput += util.format('%s', content[0].range) if (content.length > 1) { - for (var i = 1; i < content.length; i++) { - var ith = content[i] + for (let i = 1; i < content.length; i++) { + const ith = content[i] moOutput += ', ' moOutput += util.format('%s', ith.name) moOutput += ' in ' @@ -17,4 +17,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forLoopObj.js b/json2mo/forLoopObj.js index a1537e17..42f4d64b 100644 --- a/json2mo/forLoopObj.js +++ b/json2mo/forLoopObj.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const forIndiceObjParser = require('./forIndicesObj') - var moOutput = '' + let moOutput = '' if (content != null) { moOutput += '{' moOutput += expressionParser.parse(content.expression, rawJson) @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forStatement.js b/json2mo/forStatement.js index 7218857e..1b214af9 100644 --- a/json2mo/forStatement.js +++ b/json2mo/forStatement.js @@ -2,14 +2,14 @@ function parse (content, rawJson = false) { const forIndicesParser = require('./for_indices') const statementParser = require('./statement') - var moOutput = '' + let moOutput = '' moOutput += 'for ' if (content.for_indices != null) { moOutput += forIndicesParser.parse(content.for_indices, rawJson) } moOutput += 'loop \n' - var loopStatements = content.loop_statements + const loopStatements = content.loop_statements loopStatements.forEach(ele => { moOutput += statementParser.parse(ele, rawJson) moOutput += ';\n' @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionArgument.js b/json2mo/functionArgument.js index 0ab38a76..57f0f042 100644 --- a/json2mo/functionArgument.js +++ b/json2mo/functionArgument.js @@ -4,7 +4,7 @@ function parse (content, rawJson = false) { const namedArgumentParser = require('./namedArgument') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (content.function_name != null) { moOutput += 'function ' @@ -16,7 +16,7 @@ function parse (content, rawJson = false) { moOutput += namedArgumentsParser.parse(content.named_arguments, rawJson) } } else { - var namedArguments = content.named_arguments + const namedArguments = content.named_arguments if (namedArguments != null) { namedArguments.forEach(ele => { moOutput += namedArgumentParser.parse(ele, rawJson) @@ -32,4 +32,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionArguments.js b/json2mo/functionArguments.js index 4b87b325..490f67ab 100644 --- a/json2mo/functionArguments.js +++ b/json2mo/functionArguments.js @@ -5,7 +5,7 @@ function parse (content, rawJson = false) { const functionArgumentParser = require('./functionArgument') const forIndicesParser = require('./forIndices') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.named_arguments != null) { @@ -24,7 +24,7 @@ function parse (content, rawJson = false) { } } } else { - var namedArguments = content.named_arguments // only in simplified-json + const namedArguments = content.named_arguments // only in simplified-json if (namedArguments != null) { namedArguments.forEach(ele => { @@ -49,4 +49,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallArgs.js b/json2mo/functionCallArgs.js index 050e4ad2..0f045b78 100644 --- a/json2mo/functionCallArgs.js +++ b/json2mo/functionCallArgs.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const functionArgumentParser = require('./functionArgument') const functionArgumentsParser = require('./functionArguments') const forIndicesParser = require('./forIndices') - var moOutput = '' + let moOutput = '' moOutput += '(' if (rawJson) { @@ -11,7 +11,7 @@ function parse (content, rawJson = false) { moOutput += functionArgumentsParser.parse(content.function_arguments, rawJson) } } else { - var namedArguments = content.named_arguments // only in simplified-json + const namedArguments = content.named_arguments // only in simplified-json if (namedArguments != null) { namedArguments.forEach(ele => { @@ -38,4 +38,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallArgsObj.js b/json2mo/functionCallArgsObj.js index f36e92a1..66fd6413 100644 --- a/json2mo/functionCallArgsObj.js +++ b/json2mo/functionCallArgsObj.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const forIndiceObjParser = require('./forIndicesObj') - var moOutput = '' + let moOutput = '' if (content[0].expression != null) { moOutput += expressionParser.parse(content[0].expressoin, rawJson) moOutput += ' for ' @@ -20,4 +20,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallEquation.js b/json2mo/functionCallEquation.js index 5d6c465f..97fa70a1 100644 --- a/json2mo/functionCallEquation.js +++ b/json2mo/functionCallEquation.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const nameParser = require('./name') const functionCallArgsParser = require('./functionCallArgs') - var moOutput = '' + let moOutput = '' if (content.function_name != null) { moOutput += nameParser.parse(content.function_name, rawJson) @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallObj.js b/json2mo/functionCallObj.js index a2599471..b50d740d 100644 --- a/json2mo/functionCallObj.js +++ b/json2mo/functionCallObj.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const functionCallArgsObjParser = require('./functionCallArgsObj') - var moOutput = '' + let moOutput = '' if (content.name != null) { moOutput += util.format('%s', content.name) } @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallStatement.js b/json2mo/functionCallStatement.js index 81cb8577..335775f5 100644 --- a/json2mo/functionCallStatement.js +++ b/json2mo/functionCallStatement.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const componentReferenceParser = require('./componentReference') const functionCallArgsParser = require('./functionCallArgs') - var moOutput = '' + let moOutput = '' if (content.function_name != null) { moOutput += componentReferenceParser.parse(content.function_name, rawJson) } @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/graphic.js b/json2mo/graphic.js index 68134bd1..2ff22a87 100644 --- a/json2mo/graphic.js +++ b/json2mo/graphic.js @@ -3,10 +3,10 @@ const util = require('util') function parse (content, rawJson = false) { // "keys" will be a one element array, could be // ['Line', 'Text', 'Rectangle', 'Polygon', 'Ellipse', 'Bitmap', 'Placement', 'coordinateSystem', 'graphics'] - var graKeys = Object.keys(content) - var graKey = graKeys[0] + const graKeys = Object.keys(content) + const graKey = graKeys[0] - var moOutput = '' + let moOutput = '' if (graKey === 'Line') { moOutput += lineParse(content.Line) } else if (graKey === 'Text') { @@ -31,41 +31,41 @@ function parse (content, rawJson = false) { } function lineParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Line(' + graComIte.join(',') + ')' } function textParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Text(' + graComIte.join(',') + ')' } function rectangleParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Rectangle(' + graComIte.join(',') + ')' } function polygonParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Polygon(' + graComIte.join(',') + ')' } function ellipseParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Ellipse(' + graComIte.join(',') + ')' } function bitmapParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Bitmap(' + graComIte.join(',') + ')' } function placementParse (obj) { - var visible = obj.visible - var iconVisible = obj.iconVisible - var transformation = obj.transformation - var iconTransformation = obj.iconTransformation - var strArr = [] + const visible = obj.visible + const iconVisible = obj.iconVisible + const transformation = obj.transformation + const iconTransformation = obj.iconTransformation + const strArr = [] if (visible != null) { strArr.push('visible=' + util.format('%s', visible)) } @@ -82,10 +82,10 @@ function placementParse (obj) { } function coordinateSystemParse (obj) { - var extent = obj.extent - var preserveAspectRatio = obj.preserveAspectRatio - var initialScale = obj.initialScale - var strArr = [] + const extent = obj.extent + const preserveAspectRatio = obj.preserveAspectRatio + const initialScale = obj.initialScale + const strArr = [] if (extent != null) { strArr.push('extent=' + pointsParse(extent)) } @@ -99,22 +99,22 @@ function coordinateSystemParse (obj) { } function graphicsParse (obj) { - var strArr = [] - for (var i = 0; i < obj.length; i++) { - var ithEle = obj[i] - var name = ithEle.name - var attibutes = ithEle.attribute - var graComIte = commonGraphicItems(attibutes) + const strArr = [] + for (let i = 0; i < obj.length; i++) { + const ithEle = obj[i] + const name = ithEle.name + const attibutes = ithEle.attribute + const graComIte = commonGraphicItems(attibutes) strArr.push(name + '(' + graComIte.join(',') + ')') } return 'graphics=' + '{' + strArr.join(',') + '}' } function transformationParse (obj) { - var origin = obj.origin - var extent = obj.extent - var rotation = obj.rotation - var strArr = [] + const origin = obj.origin + const extent = obj.extent + const rotation = obj.rotation + const strArr = [] if (origin != null) { strArr.push('origin=' + originParse(origin)) } @@ -128,10 +128,10 @@ function transformationParse (obj) { } function pointsParse (obj) { - var pointsArr = [] - for (var i = 0; i < obj.length; i++) { - var ithPoint = obj[i] - var pointStr = '{' + const pointsArr = [] + for (let i = 0; i < obj.length; i++) { + const ithPoint = obj[i] + let pointStr = '{' pointStr += util.format('%s', ithPoint.x) pointStr += ',' pointStr += util.format('%s', ithPoint.y) @@ -142,7 +142,7 @@ function pointsParse (obj) { } function colorParse (obj) { - var colEle = '{' + let colEle = '{' colEle += util.format('%s', obj.r) colEle += ',' colEle += util.format('%s', obj.g) @@ -153,7 +153,7 @@ function colorParse (obj) { } function originParse (obj) { - var ori = '{' + let ori = '{' ori += util.format('%s', obj.x) ori += ',' ori += util.format('%s', obj.y) @@ -162,35 +162,35 @@ function originParse (obj) { } function commonGraphicItems (obj) { - var color = obj.color - var thickness = obj.thickness - var arrowSize = obj.arrowSize - var extent = obj.extent - var textString = obj.textString - var fontSize = obj.fontSize - var fontName = obj.fontName - var textColor = obj.textColor - var horizontalAlignment = obj.horizontalAlignment - var string = obj.string - var index = obj.index - var radius = obj.radius - var borderPattern = obj.borderPattern - var points = obj.points - var smooth = obj.smooth - var startAngle = obj.startAngle - var endAngle = obj.endAngle - var closure = obj.closure - var fileName = obj.fileName - var imageSource = obj.imageSource - var visible = obj.visible - var origin = obj.origin - var rotation = obj.rotation - var lineColor = obj.lineColor - var fillColor = obj.fillColor - var pattern = obj.pattern - var fillPattern = obj.fillPattern - var lineThickness = obj.lineThickness - var strArr = [] + const color = obj.color + const thickness = obj.thickness + const arrowSize = obj.arrowSize + const extent = obj.extent + const textString = obj.textString + const fontSize = obj.fontSize + const fontName = obj.fontName + const textColor = obj.textColor + const horizontalAlignment = obj.horizontalAlignment + const string = obj.string + const index = obj.index + const radius = obj.radius + const borderPattern = obj.borderPattern + const points = obj.points + const smooth = obj.smooth + const startAngle = obj.startAngle + const endAngle = obj.endAngle + const closure = obj.closure + const fileName = obj.fileName + const imageSource = obj.imageSource + const visible = obj.visible + const origin = obj.origin + const rotation = obj.rotation + const lineColor = obj.lineColor + const fillColor = obj.fillColor + const pattern = obj.pattern + const fillPattern = obj.fillPattern + const lineThickness = obj.lineThickness + const strArr = [] if (fileName != null) { strArr.push('fileName=' + util.format('%s', fileName)) } @@ -281,4 +281,4 @@ function commonGraphicItems (obj) { return strArr } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifElseifEquation.js b/json2mo/ifElseifEquation.js index 48b7e783..a4a35383 100644 --- a/json2mo/ifElseifEquation.js +++ b/json2mo/ifElseifEquation.js @@ -2,14 +2,14 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const equationParser = require('./equation') - var moOutput = '' + let moOutput = '' if (content.condition != null) { moOutput += expressionParser.parse(content.condition, rawJson) } - var thenEquations = content.then - var thenOutput = '' + const thenEquations = content.then + let thenOutput = '' if (thenEquations != null) { thenOutput = '' thenEquations.forEach(ele => { @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifElseifExpression.js b/json2mo/ifElseifExpression.js index 2963fe3c..9311df8e 100644 --- a/json2mo/ifElseifExpression.js +++ b/json2mo/ifElseifExpression.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (content.condition != null) { moOutput += expressionParser.parse(content.condition, rawJson) @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifElseifStatement.js b/json2mo/ifElseifStatement.js index 440388d4..a52b6732 100644 --- a/json2mo/ifElseifStatement.js +++ b/json2mo/ifElseifStatement.js @@ -2,14 +2,14 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const statementParser = require('./statement') - var moOutput = '' + let moOutput = '' if (content.condition != null) { moOutput += expressionParser.parse(content.condition, rawJson) } - var thenStatements = content.then - var thenOutput = '' + const thenStatements = content.then + let thenOutput = '' if (thenStatements != null) { thenOutput = '' thenStatements.forEach(ele => { @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifEquation.js b/json2mo/ifEquation.js index 05d8271e..128d0157 100644 --- a/json2mo/ifEquation.js +++ b/json2mo/ifEquation.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const ifElseifEquationParser = require('./ifElseifEquation') const equationParser = require('./equation') - var moOutput = '' - var ifElseifs = content.if_elseif + let moOutput = '' + const ifElseifs = content.if_elseif if (ifElseifs != null) { ifElseifs.forEach(ele => { moOutput += 'elseif ' @@ -12,9 +12,9 @@ function parse (content, rawJson = false) { } moOutput = moOutput.slice(4, moOutput.length) // to remove 1st else of elseif so that we get "if" - var elseEquations = content.else_equation + const elseEquations = content.else_equation if (elseEquations != null) { - var elseOutput = '' + let elseOutput = '' elseEquations.forEach(ele => { elseOutput += equationParser.parse(ele, rawJson) elseOutput += ';\n' @@ -28,4 +28,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifExpression.js b/json2mo/ifExpression.js index a4941310..5d9404f5 100644 --- a/json2mo/ifExpression.js +++ b/json2mo/ifExpression.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const ifElseifExpressionParser = require('./ifElseifExpression') const expressionParser = require('./expression') - var moOutput = '' - var ifElseifs = content.if_elseif + let moOutput = '' + const ifElseifs = content.if_elseif if (ifElseifs != null) { ifElseifs.forEach(ele => { moOutput += ' elseif ' @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifExpressionObj.js b/json2mo/ifExpressionObj.js index 1d4ec894..709afd6a 100644 --- a/json2mo/ifExpressionObj.js +++ b/json2mo/ifExpressionObj.js @@ -1,14 +1,14 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' - for (var i = 0; i < content.length; i++) { - var ithCon = content[i] - var ithElseIf = ithCon.if_elseif + let moOutput = '' + for (let i = 0; i < content.length; i++) { + const ithCon = content[i] + const ithElseIf = ithCon.if_elseif moOutput += 'if (' moOutput += util.format('%s', ithElseIf[0].condition) moOutput += ') then ' moOutput += util.format('%s', ithElseIf[0].then) - for (var j = 1; j < ithElseIf.length; j++) { + for (let j = 1; j < ithElseIf.length; j++) { moOutput += ' elseif (' moOutput += util.format('%s', ithElseIf[j].condition) moOutput += ') then ' @@ -23,4 +23,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifStatement.js b/json2mo/ifStatement.js index 1918e9f3..6270e5ab 100644 --- a/json2mo/ifStatement.js +++ b/json2mo/ifStatement.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const ifElseifStatementParser = require('./ifElseifStatement') const statementParser = require('./statement') - var moOutput = '' - var ifElseifs = content.if_elseif + let moOutput = '' + const ifElseifs = content.if_elseif if (ifElseifs != null) { ifElseifs.forEach(ele => { moOutput += 'elseif ' @@ -12,9 +12,9 @@ function parse (content, rawJson = false) { } moOutput = moOutput.slice(4, moOutput.length) // to remove 1st else of elseif so that we get "if" - var elseStatements = content.else_statement + const elseStatements = content.else_statement if (elseStatements != null) { - var elseOutput = '' + let elseOutput = '' elseStatements.forEach(ele => { elseOutput += statementParser.parse(ele, rawJson) elseOutput += ';\n' @@ -28,4 +28,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/importClause.js b/json2mo/importClause.js index d707df79..01e85f33 100644 --- a/json2mo/importClause.js +++ b/json2mo/importClause.js @@ -4,10 +4,10 @@ function parse (content, rawJson = false) { const commentParser = require('./comment') const importListParser = require('./importList') - var moOutput = '' + let moOutput = '' moOutput += 'import ' - var name = '' + let name = '' if (content.name != null) { name = nameParser.parse(content.name, rawJson) } @@ -40,4 +40,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/importList.js b/json2mo/importList.js index 47224f2a..63df3369 100644 --- a/json2mo/importList.js +++ b/json2mo/importList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' - var identifierList = content.identifier_list + let moOutput = '' + const identifierList = content.identifier_list if (identifierList != null) { identifierList.forEach(identifier => { moOutput += util.format('%s, ', identifier) @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/logicalAnd.js b/json2mo/logicalAnd.js index ec04e387..9c5ec9bf 100644 --- a/json2mo/logicalAnd.js +++ b/json2mo/logicalAnd.js @@ -1,10 +1,10 @@ function parse (content, rawJson = false) { const logicalFactorObjParser = require('./logicalFactorObj') - var moOutput = '' + let moOutput = '' moOutput += logicalFactorObjParser.parse(content[0], rawJson) if (content.length > 1) { - for (var i = 1; i < content.length; i++) { + for (let i = 1; i < content.length; i++) { moOutput += ' and ' moOutput += logicalFactorObjParser.parse(content[i], rawJson) } @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/logicalExpression.js b/json2mo/logicalExpression.js index 85f7aba7..0074e48e 100644 --- a/json2mo/logicalExpression.js +++ b/json2mo/logicalExpression.js @@ -1,11 +1,11 @@ function parse (content, rawJson = false) { const logicalAndParser = require('./logicalAnd') - var logicalOr = content.logical_or - var moOutput = '' + const logicalOr = content.logical_or + let moOutput = '' moOutput += logicalAndParser.parse(logicalOr[0].logical_and, rawJson) if (logicalOr.length > 1) { - for (var i = 1; i < logicalOr.length; i++) { + for (let i = 1; i < logicalOr.length; i++) { moOutput += ' or ' moOutput += logicalAndParser.parse(logicalOr[i].logical_and, rawJson) } @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/logicalFactorObj.js b/json2mo/logicalFactorObj.js index 2240552c..66bf676a 100644 --- a/json2mo/logicalFactorObj.js +++ b/json2mo/logicalFactorObj.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' + let moOutput = '' if (content.not != null) { moOutput += 'not ' } @@ -15,4 +15,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/longClassSpecifier.js b/json2mo/longClassSpecifier.js index 11ad3fcd..201d7ff4 100644 --- a/json2mo/longClassSpecifier.js +++ b/json2mo/longClassSpecifier.js @@ -3,10 +3,10 @@ function parse (content, rawJson = false) { const compositionParser = require('./composition') const classModificationParser = require('./classModification') - var identifier = content.identifier - var isExtends = content.is_extends + const identifier = content.identifier + const isExtends = content.is_extends - var moOutput = '' + let moOutput = '' if (isExtends != null) { if (isExtends) { @@ -27,12 +27,12 @@ function parse (content, rawJson = false) { } if (rawJson) { - var stringComment = content.string_comment + const stringComment = content.string_comment if (stringComment != null) { moOutput += util.format('\n%s\n', stringComment) } } else { - var descriptionString = content.description_string + const descriptionString = content.description_string if (descriptionString != null) { moOutput += util.format('\n"%s"\n', descriptionString) } @@ -46,4 +46,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/modification.js b/json2mo/modification.js index a48325a7..abf8ba60 100644 --- a/json2mo/modification.js +++ b/json2mo/modification.js @@ -1,9 +1,9 @@ function parse (content, rawJson = false) { const classModificationParser = require('./classModification') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' - var haveClaMod = content.class_modification != null + const haveClaMod = content.class_modification != null if (haveClaMod) { moOutput += classModificationParser.parse(content.class_modification, rawJson) } @@ -25,4 +25,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/name.js b/json2mo/name.js index c7751f3c..b1027953 100644 --- a/json2mo/name.js +++ b/json2mo/name.js @@ -2,9 +2,9 @@ function parse (content, rawJson = false) { const util = require('util') const namePartParser = require('./namePart') - var moOutput = '' + let moOutput = '' if (rawJson) { - var nameParts = content.name_parts + const nameParts = content.name_parts if (nameParts != null) { nameParts.forEach(ele => { moOutput += namePartParser.parse(ele, rawJson) @@ -17,4 +17,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/namePart.js b/json2mo/namePart.js index d6f59e6e..fcd5f32e 100644 --- a/json2mo/namePart.js +++ b/json2mo/namePart.js @@ -1,5 +1,5 @@ function parse (content, rawJson = false) { - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.dot_op != null) { if (content.dot_op) { @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/namedArgument.js b/json2mo/namedArgument.js index 6a1a8640..c46a2fd5 100644 --- a/json2mo/namedArgument.js +++ b/json2mo/namedArgument.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const functionArgumentParser = require('./functionArgument') - var moOutput = '' + let moOutput = '' if (content.identifier != null) { moOutput += util.format('%s=', content.identifier) } @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/namedArguments.js b/json2mo/namedArguments.js index 1f8d8f01..fa29d14b 100644 --- a/json2mo/namedArguments.js +++ b/json2mo/namedArguments.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const namedArgumentParser = require('./namedArgument') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.named_argument != null) { @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/outputExpressionList.js b/json2mo/outputExpressionList.js index 4839a11c..4587b137 100644 --- a/json2mo/outputExpressionList.js +++ b/json2mo/outputExpressionList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' - var outputExpressions = null + let moOutput = '' + let outputExpressions = null if (rawJson) { outputExpressions = content.output_expressions } else { @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/shortClassDefinition.js b/json2mo/shortClassDefinition.js index ea183bb2..0b81bd1d 100644 --- a/json2mo/shortClassDefinition.js +++ b/json2mo/shortClassDefinition.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const shortClassSpecifierParser = require('./shortClassSpecifier') - var moOutput = '' + let moOutput = '' if (content.class_prefixes != null) { moOutput += util.format('%s ', content.class_prefixes) } @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/shortClassSpecifier.js b/json2mo/shortClassSpecifier.js index f0a47a44..9ea1d349 100644 --- a/json2mo/shortClassSpecifier.js +++ b/json2mo/shortClassSpecifier.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const util = require('util') const shortClassSpecifierValueParser = require('./shortClassSpecifierValue') - var moOutput = '' - var identifier = content.identifier + let moOutput = '' + const identifier = content.identifier if (identifier != null) { moOutput += util.format('%s=', identifier) @@ -21,4 +21,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/shortClassSpecifierValue.js b/json2mo/shortClassSpecifierValue.js index bda9463d..56c1fc43 100644 --- a/json2mo/shortClassSpecifierValue.js +++ b/json2mo/shortClassSpecifierValue.js @@ -6,7 +6,7 @@ function parse (content, rawJson = false) { const commentParser = require('./comment') const enumListParser = require('./enumList') - var moOutput = '' + let moOutput = '' if (content.name == null) { moOutput += 'enumeration (' @@ -41,4 +41,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/simpleExpression.js b/json2mo/simpleExpression.js index 4d0ffa7f..6f18d27b 100644 --- a/json2mo/simpleExpression.js +++ b/json2mo/simpleExpression.js @@ -5,7 +5,7 @@ function parse (content, rawJson = false) { const logicalExpressionParser = require('./logicalExpression') const ifExpressionParser = require('./ifExpressionObj') - var moOutput = '' + let moOutput = '' if (content != null) { if (rawJson) { moOutput += util.format('%s', JSON.stringify(content)) @@ -26,4 +26,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/statement.js b/json2mo/statement.js index 7cf32a64..13dbab7f 100644 --- a/json2mo/statement.js +++ b/json2mo/statement.js @@ -8,7 +8,7 @@ function parse (content, rawJson) { const whenStatementParser = require('./whenStatement') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.assignment_statement != null) { moOutput += '\n' moOutput += assignmentStatementParser.parse(content.assignment_statement, rawJson) @@ -52,4 +52,4 @@ function parse (content, rawJson) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/storedDefiniton.js b/json2mo/storedDefiniton.js index c99f4a7b..f1c6b3b2 100644 --- a/json2mo/storedDefiniton.js +++ b/json2mo/storedDefiniton.js @@ -2,9 +2,9 @@ function parse (content, rawJson = false) { const util = require('util') const finalClassDefinitionParser = require('./finalClassDefinition') - var within = content.within + const within = content.within - var moOutput = '' + let moOutput = '' if (within != null) { moOutput += util.format('within %s;\n', within) } @@ -27,4 +27,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/subscript.js b/json2mo/subscript.js index a6ff5013..702a340b 100644 --- a/json2mo/subscript.js +++ b/json2mo/subscript.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (rawJson) { moOutput += '[' @@ -15,4 +15,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/typeSpecifier.js b/json2mo/typeSpecifier.js index d9f19056..e1716912 100644 --- a/json2mo/typeSpecifier.js +++ b/json2mo/typeSpecifier.js @@ -2,17 +2,17 @@ function parse (content, rawJson = false) { const util = require('util') const nameParser = require('./name') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.name != null) { moOutput += nameParser.parse(content.name, rawJson) } } else { - var name = content + const name = content moOutput += util.format('%s ', name) } return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/whenEquation.js b/json2mo/whenEquation.js index c53258ac..c3a305f1 100644 --- a/json2mo/whenEquation.js +++ b/json2mo/whenEquation.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const equationParser = require('./equation') - var moOutput = '' - var whenElsewhens = null + let moOutput = '' + let whenElsewhens = null if (rawJson) { whenElsewhens = content.when_elsewhen } else { @@ -17,8 +17,8 @@ function parse (content, rawJson = false) { moOutput += expressionParser.parse(ele.condition, rawJson) } moOutput += '\n' - var thenEquations = ele.then - var thenOutput = '' + const thenEquations = ele.then + let thenOutput = '' if (thenEquations != null) { thenEquations.forEach(thenEqu => { thenOutput += equationParser.parse(thenEqu, rawJson) @@ -37,4 +37,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/whenStatement.js b/json2mo/whenStatement.js index e9817b70..9fa2559b 100644 --- a/json2mo/whenStatement.js +++ b/json2mo/whenStatement.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const statementParser = require('./statement') - var moOutput = '' - var whenElsewhens = null + let moOutput = '' + let whenElsewhens = null if (rawJson) { whenElsewhens = content.when_elsewhen } else { @@ -17,8 +17,8 @@ function parse (content, rawJson = false) { moOutput += expressionParser.parse(ele.condition, rawJson) } moOutput += '\n' - var thenStatements = ele.then - var thenOutput = '' + const thenStatements = ele.then + let thenOutput = '' if (thenStatements != null) { thenStatements.forEach(thenSta => { thenOutput += statementParser.parse(thenSta, rawJson) @@ -37,4 +37,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/whileStatement.js b/json2mo/whileStatement.js index 838f0456..201dc1ec 100644 --- a/json2mo/whileStatement.js +++ b/json2mo/whileStatement.js @@ -2,14 +2,14 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const statementParser = require('./statement') - var moOutput = '' + let moOutput = '' moOutput += 'while ' if (content.condition != null) { // in simplified json moOutput += expressionParser.parse(content.condition, rawJson) } moOutput += 'loop \n' - var loopStatements = content.loop_statements + const loopStatements = content.loop_statements loopStatements.forEach(ele => { moOutput += statementParser.parse(ele, rawJson) moOutput += ';\n' @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/lib/graphicalPrimitives.js b/lib/graphicalPrimitives.js index a854a4f6..60f7f1ea 100644 --- a/lib/graphicalPrimitives.js +++ b/lib/graphicalPrimitives.js @@ -53,12 +53,12 @@ function graphicAnnotationObj (name, mod) { */ function lineObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -72,12 +72,12 @@ function lineObj (mod) { */ function textObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -91,12 +91,12 @@ function textObj (mod) { */ function rectangleObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -110,12 +110,12 @@ function rectangleObj (mod) { */ function polygonObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -129,12 +129,12 @@ function polygonObj (mod) { */ function ellipseObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -148,12 +148,12 @@ function ellipseObj (mod) { */ function bitmapObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -167,21 +167,21 @@ function bitmapObj (mod) { */ function placementObj (mod) { const claModArr = mod.class_modification - var visible, iconVisible, transformation, iconTransformation - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var modification = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification'], ithEle) + let visible, iconVisible, transformation, iconTransformation + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const modification = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification'], ithEle) if (name === 'visible') { visible = modification.expression.simple_expression } if (name === 'iconVisible') { iconVisible = modification.expression.simple_expression } if (name === 'transformation') { transformation = transformationObj(modification) } if (name === 'iconTransformation') { iconTransformation = transformationObj(modification) } } return Object.assign( - {'visible': visible}, - {'iconVisible': iconVisible}, - {'transformation': transformation}, - {'iconTransformation': iconTransformation} + { visible }, + { iconVisible }, + { transformation }, + { iconTransformation } ) } @@ -192,19 +192,19 @@ function placementObj (mod) { */ function coordinateSystemObj (mod) { const claModArr = mod.class_modification - var extent, preserveAspectRatio, initialScale - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + let extent, preserveAspectRatio, initialScale + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) if (name === 'extent') { extent = pointsObj(expression) } if (name === 'preserveAspectRatio') { preserveAspectRatio = expression } if (name === 'initialScale') { initialScale = Number(expression) } } return Object.assign( - {'extent': extent}, - {'preserveAspectRatio': preserveAspectRatio}, - {'initialScale': initialScale} + { extent }, + { preserveAspectRatio }, + { initialScale } ) } @@ -216,13 +216,13 @@ function coordinateSystemObj (mod) { function graphicsObj (mod) { const graStr = mod.expression.simple_expression const graItes = ['Line', 'Text', 'Rectangle', 'Polygon', 'Ellipse', 'Bitmap'] - var linLoc, texLoc, recLoc, polLoc, ellLoc, bitLoc - var tempLocs = [] - var allLocs + let linLoc, texLoc, recLoc, polLoc, ellLoc, bitLoc + const tempLocs = [] + // const allLocs = [] // find the location of each primitive - for (var i = 0; i < graItes.length; i++) { - var ithEle = graItes[i] - var seaKey = ithEle + '(' + for (let i = 0; i < graItes.length; i++) { + const ithEle = graItes[i] + const seaKey = ithEle + '(' if (ithEle === 'Line') { linLoc = locations(seaKey, graStr) } if (ithEle === 'Text') { texLoc = locations(seaKey, graStr) } if (ithEle === 'Rectangle') { recLoc = locations(seaKey, graStr) } @@ -230,24 +230,24 @@ function graphicsObj (mod) { if (ithEle === 'Ellipse') { ellLoc = locations(seaKey, graStr) } if (ithEle === 'Bitmap') { bitLoc = locations(seaKey, graStr) } } - allLocs = tempLocs.concat(linLoc || []) - .concat(texLoc || []) - .concat(recLoc || []) - .concat(polLoc || []) - .concat(ellLoc || []) - .concat(bitLoc || []) - .sort(function (a, b) { return (a - b) }) - var graArr = [] - var firstBra, lastBra, name, attStr + const allLocs = tempLocs.concat(linLoc || []) + .concat(texLoc || []) + .concat(recLoc || []) + .concat(polLoc || []) + .concat(ellLoc || []) + .concat(bitLoc || []) + .sort(function (a, b) { return (a - b) }) + const graArr = [] + let firstBra, lastBra, name, attStr if (allLocs.length > 1) { - for (var j = 0; j < allLocs.length - 1; j++) { + for (let j = 0; j < allLocs.length - 1; j++) { firstBra = graStr.indexOf('(', allLocs[j]) lastBra = graStr.lastIndexOf(')', allLocs[j + 1]) name = graStr.substring(allLocs[j], firstBra) attStr = graStr.substring(firstBra + 1, lastBra) graArr.push(Object.assign( - {'name': name}, - {'attribute': graphicAttributeObj(name, attStr)} + { name }, + { attribute: graphicAttributeObj(name, attStr) } )) } } @@ -256,8 +256,8 @@ function graphicsObj (mod) { name = graStr.substring(allLocs[allLocs.length - 1], firstBra) attStr = graStr.substring(firstBra + 1, lastBra) graArr.push(Object.assign( - {'name': name}, - {'attribute': graphicAttributeObj(name, attStr)} + { name }, + { attribute: graphicAttributeObj(name, attStr) } )) return graArr } @@ -269,19 +269,19 @@ function graphicsObj (mod) { */ function transformationObj (mod) { const claModArr = mod.class_modification - var origin, extent, rotation - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + let origin, extent, rotation + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) if (name === 'extent') { extent = pointsObj(expression) } if (name === 'origin') { origin = originObj(expression) } if (name === 'rotation') { rotation = Number(expression) } } return Object.assign( - {'origin': origin}, - {'extent': extent}, - {'rotation': rotation} + { origin }, + { extent }, + { rotation } ) } @@ -293,18 +293,18 @@ function transformationObj (mod) { function graphicItemsObj (graIteObj) { const names = graIteObj.names const expressions = graIteObj.expressions - var visible, origin, rotation - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = expressions[i] + let visible, origin, rotation + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = expressions[i] if (name === 'visible') { visible = expression } if (name === 'origin') { origin = originObj(expression) } if (name === 'rotation') { rotation = Number(expression) } } return Object.assign( - {'visible': visible}, - {'origin': origin}, - {'rotation': rotation} + { visible }, + { origin }, + { rotation } ) } @@ -317,8 +317,8 @@ function originObj (expStr) { const subStr = expStr.substring(expStr.indexOf('{') + 1, expStr.lastIndexOf('}')) const subStrArr = subStr.split(',') return Object.assign( - {'x': Number(subStrArr[0])}, - {'y': Number(subStrArr[1])} + { x: Number(subStrArr[0]) }, + { y: Number(subStrArr[1]) } ) } @@ -330,10 +330,10 @@ function originObj (expStr) { function filledShapeObj (filShaObj) { const names = filShaObj.names const expressions = filShaObj.expressions - var lineColor, fillColor, pattern, fillPattern, lineThickness - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = expressions[i] + let lineColor, fillColor, pattern, fillPattern, lineThickness + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = expressions[i] if (name === 'lineColor') { lineColor = colorObj(expression) } if (name === 'fillColor') { fillColor = colorObj(expression) } if (name === 'pattern') { pattern = expression } @@ -341,29 +341,29 @@ function filledShapeObj (filShaObj) { if (name === 'lineThickness') { lineThickness = Number(expression) } } return Object.assign( - {'lineColor': lineColor}, - {'fillColor': fillColor}, - {'pattern': pattern}, - {'fillPattern': fillPattern}, - {'lineThickness': lineThickness} + { lineColor }, + { fillColor }, + { pattern }, + { fillPattern }, + { lineThickness } ) } function graIteFilShaObjs (graIteNams, graIteExps, filShaNams, filShaExps) { - var graIteObjs, filShaObjs + let graIteObjs, filShaObjs if (graIteNams && graIteNams.length > 0) { graIteObjs = graphicItemsObj(Object.assign( - {'names': graIteNams}, {'expressions': graIteExps} + { names: graIteNams }, { expressions: graIteExps } )) } if (filShaNams && filShaNams.length > 0) { filShaObjs = filledShapeObj(Object.assign( - {'names': filShaNams}, {'expressions': filShaExps} + { names: filShaNams }, { expressions: filShaExps } )) } return Object.assign( - {'graIteObjs': graIteObjs}, - {'filShaObjs': filShaObjs} + { graIteObjs }, + { filShaObjs } ) } @@ -376,12 +376,12 @@ function pointsObj (expStr) { const subStr = expStr.substring(expStr.indexOf('{') + 1, expStr.lastIndexOf('}')) const lefBraLocs = locations('{', subStr) const rigBraLocs = locations('}', subStr) - var eleStr, eleStrArr + let eleStr, eleStrArr const points = [] - for (var i = 0; i < lefBraLocs.length; i++) { + for (let i = 0; i < lefBraLocs.length; i++) { eleStr = subStr.substring(lefBraLocs[i] + 1, rigBraLocs[i]) eleStrArr = eleStr.split(',') - points.push(Object.assign({'x': Number(eleStrArr[0]), 'y': Number(eleStrArr[1])})) + points.push(Object.assign({ x: Number(eleStrArr[0]), y: Number(eleStrArr[1]) })) } return points } @@ -395,9 +395,9 @@ function colorObj (expStr) { const subStr = expStr.substring(expStr.indexOf('{') + 1, expStr.lastIndexOf('}')) const subStrArr = subStr.split(',') return Object.assign( - {'r': Number(subStrArr[0])}, - {'g': Number(subStrArr[1])}, - {'b': Number(subStrArr[2])} + { r: Number(subStrArr[0]) }, + { g: Number(subStrArr[1]) }, + { b: Number(subStrArr[2]) } ) } @@ -419,9 +419,9 @@ function graphicAttributeObj (keyNam, valStr) { * @param valStr string */ function lineAttributeObj (valStr) { - var nameVales = nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return lineAttribute(names, values) } @@ -431,9 +431,9 @@ function lineAttributeObj (valStr) { * @param valStr string */ function textAttributeObj (valStr) { - var nameVales = nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return textAttribute(names, values) } @@ -443,9 +443,9 @@ function textAttributeObj (valStr) { * @param valStr string */ function rectangleAttributeObj (valStr) { - var nameVales = nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return rectangleAttribute(names, values) } @@ -455,9 +455,9 @@ function rectangleAttributeObj (valStr) { * @param valStr string */ function polygonAttributeObj (valStr) { - var nameVales = nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return polygonAttribute(names, values) } @@ -467,9 +467,9 @@ function polygonAttributeObj (valStr) { * @param valStr string */ function ellipseAttributeObj (valStr) { - var nameVales = nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return ellipseAttribute(names, values) } @@ -479,9 +479,9 @@ function ellipseAttributeObj (valStr) { * @param valStr string */ function bitmapAttributeObj (valStr) { - var nameVales = nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return bitmapAttribute(names, values) } @@ -492,10 +492,10 @@ function bitmapAttributeObj (valStr) { * @param values value string array */ function lineAttribute (names, values) { - var points, color, pattern, thickness, arrowSize, smooth, visible - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + let points, color, pattern, thickness, arrowSize, smooth, visible + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'pattern') { pattern = expression } if (name === 'thickness') { thickness = Number(expression) } if (name === 'arrowSize') { arrowSize = Number(expression) } @@ -507,13 +507,13 @@ function lineAttribute (names, values) { if (name === 'color') { color = colorObj(expression) } } return Object.assign( - {'points': points}, - {'color': color}, - {'pattern': pattern}, - {'thickness': thickness}, - {'arrowSize': arrowSize}, - {'smooth': smooth}, - {'visible': visible} + { points }, + { color }, + { pattern }, + { thickness }, + { arrowSize }, + { smooth }, + { visible } ) } @@ -526,15 +526,15 @@ function lineAttribute (names, values) { function textAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] const filledShape = ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'] - var graIteNams = [] - var graIteExps = [] - var filShaNams = [] - var filShaExps = [] - var extent, textString, fontSize, fontName, textColor - var horizontalAlignment, string, index - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + const filShaNams = [] + const filShaExps = [] + let extent, textString, fontSize, fontName, textColor + let horizontalAlignment, string, index + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'extent') { extent = pointsObj(expression) } if (name === 'textString') { textString = expression } if (name === 'fontSize') { fontSize = Number(expression) } @@ -554,16 +554,16 @@ function textAttribute (names, values) { filShaExps.push(expression) } } - var graIteFilShaObj = graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const graIteFilShaObj = graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) return Object.assign( - {'extent': extent}, - {'textString': textString}, - {'fontSize': fontSize}, - {'fontName': fontName}, - {'textColor': textColor}, - {'horizontalAlignment': horizontalAlignment}, - {'string': string}, - {'index': index}, + { extent }, + { textString }, + { fontSize }, + { fontName }, + { textColor }, + { horizontalAlignment }, + { string }, + { index }, graIteFilShaObj ? graIteFilShaObj.graIteObjs : undefined, graIteFilShaObj ? graIteFilShaObj.filShaObjs : undefined ) @@ -578,14 +578,14 @@ function textAttribute (names, values) { function rectangleAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] const filledShape = ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'] - var graIteNams = [] - var graIteExps = [] - var filShaNams = [] - var filShaExps = [] - var extent, radius, borderPattern - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + const filShaNams = [] + const filShaExps = [] + let extent, radius, borderPattern + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'extent') { extent = pointsObj(expression) } if (name === 'radius') { radius = Number(expression) } if (name === 'borderPattern') { borderPattern = expression } @@ -600,11 +600,11 @@ function rectangleAttribute (names, values) { filShaExps.push(expression) } } - var graIteFilShaObj = graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const graIteFilShaObj = graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) return Object.assign( - {'extent': extent}, - {'radius': radius}, - {'borderPattern': borderPattern}, + { extent }, + { radius }, + { borderPattern }, graIteFilShaObj ? graIteFilShaObj.graIteObjs : undefined, graIteFilShaObj ? graIteFilShaObj.filShaObjs : undefined ) @@ -619,14 +619,14 @@ function rectangleAttribute (names, values) { function polygonAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] const filledShape = ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'] - var graIteNams = [] - var graIteExps = [] - var filShaNams = [] - var filShaExps = [] - var points, smooth - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + const filShaNams = [] + const filShaExps = [] + let points, smooth + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'points') { points = pointsObj(expression) } if (name === 'smooth') { smooth = expression } // Check if it is the graphicItems @@ -640,10 +640,10 @@ function polygonAttribute (names, values) { filShaExps.push(expression) } } - var graIteFilShaObj = graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const graIteFilShaObj = graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) return Object.assign( - {'points': points}, - {'smooth': smooth}, + { points }, + { smooth }, graIteFilShaObj ? graIteFilShaObj.graIteObjs : undefined, graIteFilShaObj ? graIteFilShaObj.filShaObjs : undefined ) @@ -658,14 +658,14 @@ function polygonAttribute (names, values) { function ellipseAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] const filledShape = ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'] - var graIteNams = [] - var graIteExps = [] - var filShaNams = [] - var filShaExps = [] - var extent, startAngle, endAngle, closure - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + const filShaNams = [] + const filShaExps = [] + let extent, startAngle, endAngle, closure + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'extent') { extent = pointsObj(expression) } if (name === 'startAngle') { startAngle = Number(expression) } if (name === 'endAngle') { endAngle = Number(expression) } @@ -681,12 +681,12 @@ function ellipseAttribute (names, values) { filShaExps.push(expression) } } - var graIteFilShaObj = graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const graIteFilShaObj = graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) return Object.assign( - {'extent': extent}, - {'startAngle': startAngle}, - {'endAngle': endAngle}, - {'closure': closure}, + { extent }, + { startAngle }, + { endAngle }, + { closure }, graIteFilShaObj ? graIteFilShaObj.graIteObjs : undefined, graIteFilShaObj ? graIteFilShaObj.filShaObjs : undefined ) @@ -700,12 +700,12 @@ function ellipseAttribute (names, values) { */ function bitmapAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] - var graIteNams = [] - var graIteExps = [] - var extent, fileName, imageSource - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + let extent, fileName, imageSource + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'extent') { extent = pointsObj(expression) } if (name === 'fileName') { fileName = expression } if (name === 'imageSource') { imageSource = expression } @@ -715,11 +715,11 @@ function bitmapAttribute (names, values) { graIteExps.push(expression) } } - var graIteObj = graIteFilShaObjs(graIteNams, graIteExps) + const graIteObj = graIteFilShaObjs(graIteNams, graIteExps) return Object.assign( - {'extent': extent}, - {'fileName': fileName}, - {'imageSource': imageSource}, + { extent }, + { fileName }, + { imageSource }, graIteObj ? graIteObj.graIteObjs : undefined ) } @@ -731,26 +731,26 @@ function bitmapAttribute (names, values) { */ function nameAttributePair (valStr) { // search for '=' locations - var equLocs = locations('=', valStr) + const equLocs = locations('=', valStr) // search for ',' locations - var comLocs = [] - for (var i = 0; i < equLocs.length; i++) { - var comLoc = valStr.lastIndexOf(',', equLocs[i]) + const comLocs = [] + for (let i = 0; i < equLocs.length; i++) { + const comLoc = valStr.lastIndexOf(',', equLocs[i]) if (comLoc > -1) { comLocs.push(comLoc) } } - var keyNam = [] - var val = [] + const keyNam = [] + const val = [] keyNam.push(valStr.substring(0, equLocs[0])) if (comLocs.length > 0) { - for (var j = 0; j < comLocs.length; j++) { + for (let j = 0; j < comLocs.length; j++) { keyNam.push(valStr.substring(comLocs[j] + 1, equLocs[j + 1])) val.push(valStr.substring(equLocs[j] + 1, comLocs[j])) } } val.push(valStr.substring(equLocs[equLocs.length - 1] + 1)) return Object.assign( - {'names': keyNam}, - {'values': val} + { names: keyNam }, + { values: val } ) } @@ -761,8 +761,8 @@ function nameAttributePair (valStr) { * @param str string */ function locations (substr, str) { - var a = [] - var i = -1 + const a = [] + let i = -1 while ((i = str.indexOf(substr, i + 1)) >= 0) { a.push(i) } return a } diff --git a/lib/jsonquery.js b/lib/jsonquery.js index 677e28a8..a56ef7a4 100644 --- a/lib/jsonquery.js +++ b/lib/jsonquery.js @@ -1,5 +1,6 @@ const ut = require('../lib/util.js') const graPri = require('../lib/graphicalPrimitives.js') +// const { is } = require('bluebird') /** * Get the JSON property `p` from the json data `o` @@ -19,18 +20,18 @@ function simplifyModelicaJSON (model, parseMode) { const within = model.within const finalDef = model.final_class_definitions const claDefArr = [] - for (var i = 0; i < finalDef.length; i++) { - var obj = finalDef[i] + for (let i = 0; i < finalDef.length; i++) { + const obj = finalDef[i] const final = obj.is_final ? true : undefined const claDef = this.classDefinition(obj.class_definition) - claDefArr.push(Object.assign({'final': final}, claDef)) + claDefArr.push(Object.assign({ final }, claDef)) } return Object.assign( - {'within': within}, - {'class_definition': claDefArr}, - {'modelicaFile': model.modelicaFile}, - {'fullMoFilePath': model.fullMoFilePath}, - {'checksum': model.checksum}) + { within }, + { class_definition: claDefArr }, + { modelicaFile: model.modelicaFile }, + { fullMoFilePath: model.fullMoFilePath }, + { checksum: model.checksum }) } function classDefinition (claDef) { @@ -38,9 +39,9 @@ function classDefinition (claDef) { const classPrefixes = claDef.class_prefixes const classSpecifierObj = this.classSpecifier(claDef.class_specifier) return Object.assign( - {'encapsulated': encapsulated || undefined}, - {'class_prefixes': classPrefixes}, - {'class_specifier': classSpecifierObj} + { encapsulated: encapsulated || undefined }, + { class_prefixes: classPrefixes }, + { class_specifier: classSpecifierObj } ) } @@ -54,9 +55,11 @@ function classSpecifier (claSpe) { const shortClass = claSpe.short_class_specifier const derClass = claSpe.der_class_specifier if (longClass || shortClass || derClass) { - return longClass ? (Object.assign({'long_class_specifier': this.longClassSpecifier(longClass)})) - : (shortClass ? (Object.assign({'short_class_specifier': this.shortClassSpecifier(shortClass)})) - : (Object.assign({'der_class_specifier': this.derClassSpecifier(derClass)}))) + return longClass + ? (Object.assign({ long_class_specifier: this.longClassSpecifier(longClass) })) + : (shortClass + ? (Object.assign({ short_class_specifier: this.shortClassSpecifier(shortClass) })) + : (Object.assign({ der_class_specifier: this.derClassSpecifier(derClass) }))) } throw new Error('one of long_class_specifier or short_class_specifier or der_class_specifier must be present in class_specifier') } @@ -67,14 +70,14 @@ function classSpecifier (claSpe) { * @param lonClaSpe long_class_specifier value */ function longClassSpecifier (lonClaSpe) { - var ident = null + let ident = null if (lonClaSpe.identifier) { ident = lonClaSpe.identifier } else { throw new Error('missing identifier') } const desStr = trimDesString(lonClaSpe.string_comment) - var comp = null + let comp = null if (lonClaSpe.composition) { comp = this.composition(lonClaSpe.composition) } else { @@ -84,11 +87,11 @@ function longClassSpecifier (lonClaSpe) { const claMod = lonClaSpe.class_modification const claModObj = claMod ? this.classModification(claMod) : undefined return Object.assign( - {'identifier': ident}, - {'description_string': desStr}, - {'composition': !ut.isEmptyObject(comp) ? comp : undefined}, - {'extends': ext || undefined}, - {'class_modification': claModObj}) + { identifier: ident }, + { description_string: desStr }, + { composition: !ut.isEmptyObject(comp) ? comp : undefined }, + { extends: ext || undefined }, + { class_modification: claModObj }) } /** @@ -109,10 +112,10 @@ function composition (com) { const ann = com.annotation ? com.annotation.class_modification : null const annObj = ann ? this.classModification(ann) : undefined return Object.assign( - {'element_list': eleLis}, - {'element_sections': eleSec}, - {'external_composition': extComObj}, - {'annotation': (annObj === '()') ? undefined : annObj}) + { element_list: eleLis }, + { element_sections: eleSec }, + { external_composition: extComObj }, + { annotation: (annObj === '()') ? undefined : annObj }) } /** @@ -123,7 +126,7 @@ function composition (com) { function elementList (eleLis) { const ele = eleLis.elements const eleArr = [] - for (var i = 0; i < ele.length; i++) { + for (let i = 0; i < ele.length; i++) { const obj = ele[i] const impCla = obj.import_clause const extCla = obj.extends_clause @@ -141,17 +144,17 @@ function elementList (eleLis) { const des = obj.comment const desObj = des ? this.description(des) : undefined eleArr.push(Object.assign( - {'import_clause': impCla ? this.importClause(impCla) : undefined}, - {'extends_clause': extCla ? this.extendsClause(extCla) : undefined}, - {'redeclare': redeclare || undefined}, - {'final': final || undefined}, - {'inner': inner || undefined}, - {'outer': outer || undefined}, - {'replaceable': replaceable || undefined}, - {'constraining_clause': conCla ? this.constrainingClause(conCla) : undefined}, - {'class_definition': claDef ? this.classDefinition(claDef) : undefined}, - {'component_clause': comCla ? this.componentClause(comCla) : undefined}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined})) + { import_clause: impCla ? this.importClause(impCla) : undefined }, + { extends_clause: extCla ? this.extendsClause(extCla) : undefined }, + { redeclare: redeclare || undefined }, + { final: final || undefined }, + { inner: inner || undefined }, + { outer: outer || undefined }, + { replaceable: replaceable || undefined }, + { constraining_clause: conCla ? this.constrainingClause(conCla) : undefined }, + { class_definition: claDef ? [this.classDefinition(claDef)] : undefined }, + { component_clause: comCla ? this.componentClause(comCla) : undefined }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined })) } return eleArr } @@ -169,11 +172,11 @@ function importClause (impCla) { const comment = impCla.comment const desObj = comment ? this.description(comment) : undefined return Object.assign( - {'identifier': identifier}, - {'name': name ? this.nameString(name) : undefined}, - {'dot_star': dotSta ? '.*' : undefined}, - {'import_list': impLis ? this.importList(impLis) : undefined}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { identifier }, + { name: name ? this.nameString(name) : undefined }, + { dot_star: dotSta ? '.*' : undefined }, + { import_list: impLis ? this.importList(impLis) : undefined }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } ) } @@ -197,8 +200,8 @@ function description (des) { const ann = des.annotation ? des.annotation.class_modification : null const annotation = ann ? this.classModification(ann) : undefined return Object.assign( - {'description_string': strDes}, - {'annotation': (annotation === '()') ? undefined : annotation} + { description_string: strDes }, + { annotation: (annotation === '()') ? undefined : annotation } ) } @@ -225,9 +228,9 @@ function extendsClause (extCla) { const ann = extCla.annotation ? extCla.annotation.class_modification : null const annotation = ann ? this.classModification(ann) : undefined return Object.assign( - {'name': name ? this.nameString(name) : undefined}, - {'class_modification': claMod ? this.classModification(claMod) : undefined}, - {'annotation': (annotation === '()') ? undefined : annotation} + { name: name ? this.nameString(name) : undefined }, + { class_modification: claMod ? this.classModification(claMod) : undefined }, + { annotation: (annotation === '()') ? undefined : annotation } ) } @@ -240,8 +243,8 @@ function constrainingClause (conCla) { const name = conCla.name const claMod = conCla.class_modification return Object.assign( - {'name': name ? this.nameString(name) : undefined}, - {'class_modification': claMod ? this.classModification(claMod) : undefined} + { name: name ? this.nameString(name) : undefined }, + { class_modification: claMod ? this.classModification(claMod) : undefined } ) } @@ -256,10 +259,10 @@ function componentClause (comCla) { const arrSub = comCla.array_subscripts const comLis = comCla.component_list return Object.assign( - {'type_prefix': prefix}, - {'type_specifier': this.typeSpecifier(typSpe)}, - {'array_subscripts': arrSub ? this.arraySubscripts(arrSub) : undefined}, - {'component_list': comLis ? this.componentList(comLis) : undefined} + { type_prefix: prefix }, + { type_specifier: this.typeSpecifier(typSpe) }, + { array_subscripts: arrSub ? this.arraySubscripts(arrSub) : undefined }, + { component_list: comLis ? this.componentList(comLis) : undefined } ) } @@ -275,13 +278,13 @@ function typeSpecifier (typSpe) { */ function arraySubscripts (arrSub) { const eleArr = [] - for (var i = 0; i < arrSub.length; i++) { - var obj = arrSub[i] + for (let i = 0; i < arrSub.length; i++) { + const obj = arrSub[i] const exp = obj.expression const colOp = obj.colon_op eleArr.push(Object.assign( - {'colon_op': colOp || undefined}, - {'expression': exp ? this.expression(exp) : undefined} + { colon_op: colOp || undefined }, + { expression: exp ? this.expression(exp) : undefined } )) } return eleArr @@ -297,8 +300,8 @@ function expression (expObj) { const ifExp = expObj.if_expression const ifExpObj = ifExp ? this.ifExpression(ifExp) : undefined return Object.assign( - {'simple_expression': simExp ? this.simpleExpression(simExp) : undefined}, - {'if_expression': !ut.isEmptyObject(ifExpObj) ? ifExpObj : undefined} + { simple_expression: simExp ? this.simpleExpression(simExp, false) : undefined }, + { if_expression: !ut.isEmptyObject(ifExpObj) ? ifExpObj : undefined } ) } @@ -311,18 +314,18 @@ function ifExpression (ifExp) { const ifEls = ifExp.if_elseif const elsExp = ifExp.else_expression const ifElsArr = [] - for (var i = 0; i < ifEls.length; i++) { - var obj = ifEls[i] + for (let i = 0; i < ifEls.length; i++) { + const obj = ifEls[i] const con = obj.condition const then = obj.then ifElsArr.push(Object.assign( - {'condition': con ? this.expression(con) : undefined}, - {'then': then ? this.expression(then) : undefined} + { condition: con ? this.expression(con) : undefined }, + { then: then ? this.expression(then) : undefined } )) } return Object.assign( - {'if_elseif': (ifElsArr.length > 0) ? ifElsArr : undefined}, - {'else_expression': elsExp ? this.expression(elsExp) : undefined} + { if_elseif: (ifElsArr.length > 0) ? ifElsArr : undefined }, + { else_expression: elsExp ? this.expression(elsExp) : undefined } ) } @@ -334,16 +337,16 @@ function ifExpression (ifExp) { function componentList (comLis) { const compList = comLis.component_declaration_list const decLisArr = [] - for (var i = 0; i < compList.length; i++) { - var obj = compList[i] + for (let i = 0; i < compList.length; i++) { + const obj = compList[i] const dec = obj.declaration const conAtt = obj.condition_attribute const com = obj.comment const comObj = com ? this.description(com) : undefined decLisArr.push(Object.assign( - {'declaration': dec ? this.declaration(dec) : undefined}, - {'condition_attribute': conAtt ? {'expression': this.expression(conAtt.expression)} : undefined}, - {'description': !ut.isEmptyObject(comObj) ? comObj : undefined} + { declaration: dec ? this.declaration(dec) : undefined }, + { condition_attribute: conAtt ? { expression: this.expression(conAtt.expression) } : undefined }, + { description: !ut.isEmptyObject(comObj) ? comObj : undefined } )) } return decLisArr @@ -359,9 +362,9 @@ function declaration (dec) { const arrSub = dec.array_subscripts const mod = dec.modification return Object.assign( - {'identifier': ident}, - {'array_subscripts': arrSub ? this.arraySubscripts(arrSub) : undefined}, - {'modification': mod ? this.modification(mod) : undefined} + { identifier: ident }, + { array_subscripts: arrSub ? this.arraySubscripts(arrSub) : undefined }, + { modification: mod ? this.modification(mod) : undefined } ) } @@ -376,10 +379,10 @@ function modification (mod) { const colEqu = mod.colon_equal const exp = mod.expression return Object.assign( - {'class_modification': claMod ? this.classModification(claMod) : undefined}, - {'equal': equ || undefined}, - {'colon_equal': colEqu || undefined}, - {'expression': exp ? this.expression(exp) : undefined} + { class_modification: claMod ? this.classModification(claMod) : undefined }, + { equal: equ || undefined }, + { colon_equal: colEqu || undefined }, + { expression: exp ? this.expression(exp) : undefined } ) } @@ -393,8 +396,8 @@ function classModification (claMod) { if (argLis) { const claModArr = [] const args = argLis.arguments - for (var i = 0; i < args.length; i++) { - var ele = args[i] + for (let i = 0; i < args.length; i++) { + const ele = args[i] const eleModRep = ele.element_modification_or_replaceable const eleRed = ele.element_redeclaration // var eleModRepDict = { @@ -404,8 +407,8 @@ function classModification (claMod) { // 'element_redeclaration': eleRed ? this.elementRedeclaration(eleRed) : undefined // } claModArr.push(Object.assign( - {'element_modification_or_replaceable': eleModRep ? this.elementModificationReplaceable(eleModRep) : undefined}, - {'element_redeclaration': eleRed ? this.elementRedeclaration(eleRed) : undefined} + { element_modification_or_replaceable: eleModRep ? this.elementModificationReplaceable(eleModRep) : undefined }, + { element_redeclaration: eleRed ? this.elementRedeclaration(eleRed) : undefined } )) } return claModArr @@ -425,10 +428,10 @@ function elementModificationReplaceable (eleModRep) { const eleMod = eleModRep.element_modification const eleRep = eleModRep.element_replaceable return Object.assign( - {'each': each || undefined}, - {'final': final || undefined}, - {'element_modification': eleMod ? this.elementModification(eleMod) : undefined}, - {'element_replaceable': eleRep ? this.elementReplaceable(eleRep) : undefined} + { each: each || undefined }, + { final: final || undefined }, + { element_modification: eleMod ? this.elementModification(eleMod) : undefined }, + { element_replaceable: eleRep ? this.elementReplaceable(eleRep) : undefined } ) } @@ -445,14 +448,14 @@ function elementModification (eleMod) { if (isGraAnn) { const graMod = mod ? graPri.graphicAnnotationObj(name, this.modification(mod)) : undefined return Object.assign( - {[name]: graMod} + { [name]: graMod } ) } else { // the 'name' could be string, or an object for the graphical annotation return Object.assign( - {'name': name}, - {'modification': mod ? this.modification(mod) : undefined}, - {'description_string': desStr} + { name }, + { modification: mod ? this.modification(mod) : undefined }, + { description_string: desStr } ) } } @@ -467,9 +470,9 @@ function elementReplaceable (eleRep) { const comCla1 = eleRep.component_clause1 const conCla = eleRep.constraining_clause return Object.assign( - {'short_class_definition': shoClaDef ? this.shortClassDefinition(shoClaDef) : undefined}, - {'component_clause1': comCla1 ? this.componentClause1(comCla1) : undefined}, - {'constraining_clause': conCla ? this.constrainingClause(conCla) : undefined} + { short_class_definition: shoClaDef ? this.shortClassDefinition(shoClaDef) : undefined }, + { component_clause1: comCla1 ? this.componentClause1(comCla1) : undefined }, + { constraining_clause: conCla ? this.constrainingClause(conCla) : undefined } ) } @@ -482,8 +485,8 @@ function shortClassDefinition (shoClaDef) { const claPre = shoClaDef.class_prefixes const shoClaSpe = shoClaDef.short_class_specifier return Object.assign( - {'class_prefixes': claPre}, - {'short_class_specifier': this.shortClassSpecifier(shoClaSpe)} + { class_prefixes: claPre }, + { short_class_specifier: this.shortClassSpecifier(shoClaSpe) } ) } @@ -497,9 +500,9 @@ function componentClause1 (comCla1) { const typSpe = comCla1.type_specifier const comDec1 = comCla1.component_declaration1 return Object.assign( - {'type_prefix': typPre}, - {'type_specifier': this.typeSpecifier(typSpe)}, - {'component_declaration1': this.componentDeclaration1(comDec1)} + { type_prefix: typPre }, + { type_specifier: this.typeSpecifier(typSpe) }, + { component_declaration1: this.componentDeclaration1(comDec1) } ) } @@ -513,8 +516,8 @@ function componentDeclaration1 (comDec1) { const des = comDec1.comment const desObj = des ? this.description(des) : undefined return Object.assign( - {'declaration': this.declaration(dec)}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { declaration: this.declaration(dec) }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } ) } @@ -530,11 +533,11 @@ function elementRedeclaration (eleRed) { const comCla1 = eleRed.component_clause1 const eleRep = eleRed.element_replaceable return Object.assign( - {'each': each || undefined}, - {'final': final || undefined}, - {'short_class_definition': shoClaDef ? this.shortClassDefinition(shoClaDef) : undefined}, - {'component_clause1': comCla1 ? this.componentClause1(comCla1) : undefined}, - {'element_replaceable': eleRep ? this.elementReplaceable(eleRep) : undefined} + { each: each || undefined }, + { final: final || undefined }, + { short_class_definition: shoClaDef ? this.shortClassDefinition(shoClaDef) : undefined }, + { component_clause1: comCla1 ? this.componentClause1(comCla1) : undefined }, + { element_replaceable: eleRep ? this.elementReplaceable(eleRep) : undefined } ) } @@ -545,17 +548,17 @@ function elementRedeclaration (eleRed) { */ function elementSections (eleSec) { const secArr = [] - for (var i = 0; i < eleSec.length; i++) { - var obj = eleSec[i] + for (let i = 0; i < eleSec.length; i++) { + const obj = eleSec[i] const pubEle = obj.public_element_list const proEle = obj.protected_element_list const equSec = obj.equation_section const algSec = obj.algorithm_section secArr.push(Object.assign( - {'public_element_list': pubEle ? this.elementList(pubEle) : undefined}, - {'protected_element_list': proEle ? this.elementList(proEle) : undefined}, - {'equation_section': equSec ? this.equationSection(equSec) : undefined}, - {'algorithm_section': algSec ? this.algorithmSection(algSec) : undefined} + { public_element_list: pubEle ? this.elementList(pubEle) : undefined }, + { protected_element_list: proEle ? this.elementList(proEle) : undefined }, + { equation_section: equSec ? this.equationSection(equSec) : undefined }, + { algorithm_section: algSec ? this.algorithmSection(algSec) : undefined } )) } return secArr @@ -570,13 +573,13 @@ function equationSection (equSec) { const ini = equSec.initial const equLis = equSec.equations const equArr = [] - for (var i = 0; i < equLis.length; i++) { - var obj = equLis[i] + for (let i = 0; i < equLis.length; i++) { + const obj = equLis[i] equArr.push(this.equation(obj)) } return Object.assign( - {'initial': ini || undefined}, - {'equation': equArr} + { initial: ini || undefined }, + { equation: equArr } ) } @@ -595,13 +598,13 @@ function equation (equ) { const des = equ.comment const desObj = des ? this.description(des) : undefined return Object.assign( - {'assignment_equation': (assEqu && !ut.isEmptyObject(assEqu)) ? this.assignmentEquation(assEqu) : undefined}, - {'if_equation': ifEqu ? this.ifEquation(ifEqu) : undefined}, - {'for_equation': forEqu ? this.forEquation(forEqu) : undefined}, - {'connect_clause': conCla ? this.connectClause(conCla) : undefined}, - {'when_equation': wheEqu ? this.whenEquation(wheEqu) : undefined}, - {'function_call_equation': (funCalEqu && !ut.isEmptyObject(funCalEqu)) ? this.functionCallEquation(funCalEqu) : undefined}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { assignment_equation: (assEqu && !ut.isEmptyObject(assEqu)) ? this.assignmentEquation(assEqu) : undefined }, + { if_equation: ifEqu ? this.ifEquation(ifEqu) : undefined }, + { for_equation: forEqu ? this.forEquation(forEqu) : undefined }, + { connect_clause: conCla ? this.connectClause(conCla) : undefined }, + { when_equation: wheEqu ? this.whenEquation(wheEqu) : undefined }, + { function_call_equation: (funCalEqu && !ut.isEmptyObject(funCalEqu)) ? this.functionCallEquation(funCalEqu) : undefined }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } ) } @@ -614,8 +617,8 @@ function assignmentEquation (assEqu) { const simExp = assEqu.lhs const exp = assEqu.rhs return Object.assign( - {'lhs': simExp ? this.simpleExpression(simExp) : undefined}, - {'rhs': exp ? this.expression(exp) : undefined} + { lhs: simExp ? this.simpleExpression(simExp) : undefined }, + { rhs: exp ? this.expression(exp) : undefined } ) } @@ -628,31 +631,31 @@ function ifEquation (ifEqu) { const ifEls = ifEqu.if_elseif const elsEqu = ifEqu.else_expression const ifElsArr = [] - for (var i = 0; i < ifEls.length; i++) { - var obj = ifEls[i] + for (let i = 0; i < ifEls.length; i++) { + const obj = ifEls[i] const theEquArr = [] const theEqu = obj.then - for (var j = 0; j < theEqu.length; j++) { - var ele = theEqu[j] + for (let j = 0; j < theEqu.length; j++) { + const ele = theEqu[j] theEquArr.push(Object.assign( - {'equation': this.equation(ele)} + { equation: this.equation(ele) } )) } ifElsArr.push(Object.assign( - {'condition': obj.condition ? this.expression(obj.condition) : undefined}, - {'then': theEquArr} + { condition: obj.condition ? this.expression(obj.condition) : undefined }, + { then: theEquArr } )) } const elsArr = [] if (elsEqu) { - for (var k = 0; k < elsEqu.length; k++) { - var obj2 = elsEqu[k] + for (let k = 0; k < elsEqu.length; k++) { + const obj2 = elsEqu[k] elsArr.push(this.equation(obj2)) } } return Object.assign( - {'if_elseif': ifElsArr}, - {'else_equation': elsEqu ? elsArr : undefined} + { if_elseif: ifElsArr }, + { else_equation: elsEqu ? elsArr : undefined } ) } @@ -665,13 +668,13 @@ function forEquation (forEqu) { const forInd = forEqu.for_indices const looEqu = forEqu.loop_equations const looEquArr = [] - for (var i = 0; i < looEqu.length; i++) { - var obj = looEqu[i] + for (let i = 0; i < looEqu.length; i++) { + const obj = looEqu[i] looEquArr.push(this.equation(obj)) } return Object.assign( - {'for_indices': this.forIndices(forInd)}, - {'loop_equations': looEquArr} + { for_indices: this.forIndices(forInd) }, + { loop_equations: looEquArr } ) } @@ -682,8 +685,8 @@ function forEquation (forEqu) { */ function connectClause (conCla) { return Object.assign( - {'from': this.componentReference(conCla.from)}, - {'to': this.componentReference(conCla.to)} + { from: this.componentReference(conCla.from) }, + { to: this.componentReference(conCla.to) } ) } @@ -695,13 +698,13 @@ function connectClause (conCla) { function componentReference (comRef) { const comPar = comRef.component_reference_parts const parArr = [] - for (var i = 0; i < comPar.length; i++) { - var obj = comPar[i] + for (let i = 0; i < comPar.length; i++) { + const obj = comPar[i] const arrSub = obj.array_subscripts parArr.push(Object.assign( - {'dot_op': obj.dot_op}, - {'identifier': obj.identifier}, - {'array_subscripts': arrSub ? this.arraySubscripts(arrSub) : undefined} + { dot_op: obj.dot_op }, + { identifier: obj.identifier }, + { array_subscripts: arrSub ? this.arraySubscripts(arrSub) : undefined } )) } return parArr @@ -715,18 +718,18 @@ function componentReference (comRef) { function whenEquation (wheEqus) { const wheEqu = wheEqus.when_elsewhen const wheEquArr = [] - for (var i = 0; i < wheEqu.length; i++) { - var obj = wheEqu[i] + for (let i = 0; i < wheEqu.length; i++) { + const obj = wheEqu[i] const con = obj.condition const the = obj.then const theArr = [] - for (var j = 0; j < the.length; j++) { - var ele = the[j] + for (let j = 0; j < the.length; j++) { + const ele = the[j] theArr.push(this.equation(ele)) } wheEquArr.push(Object.assign( - {'condition': con ? this.expression(con) : undefined}, - {'then': theArr} + { condition: con ? this.expression(con) : undefined }, + { then: theArr } )) } return wheEquArr @@ -741,8 +744,8 @@ function functionCallEquation (funCalEqu) { const name = funCalEqu.function_name const funCalArg = funCalEqu.function_call_args return Object.assign( - {'function_name': name ? this.nameString(name) : undefined}, - {'function_call_args': funCalArg ? this.functionCallArgs(funCalArg) : undefined} + { function_name: name ? this.nameString(name) : undefined }, + { function_call_args: funCalArg ? this.functionCallArgs(funCalArg) : undefined } ) } @@ -767,10 +770,10 @@ function functionArguments (funArgs) { const forInd = funArgs.for_indices const intFunArgs = funArgs.function_arguments return Object.assign( - {'named_arguments': namArg ? this.namedArguments(namArg) : undefined}, - {'function_argument': funArg ? this.functionArgument(funArg) : undefined}, - {'for_indices': forInd ? this.forIndices(forInd) : undefined}, - {'function_arguments': intFunArgs ? this.functionArguments(intFunArgs) : undefined} + { named_arguments: namArg ? this.namedArguments(namArg) : undefined }, + { function_argument: funArg ? this.functionArgument(funArg) : undefined }, + { for_indices: forInd ? this.forIndices(forInd) : undefined }, + { function_arguments: intFunArgs ? this.functionArguments(intFunArgs) : undefined } ) } @@ -782,13 +785,13 @@ function functionArguments (funArgs) { function namedArguments (namArg) { const args = this.namedArgsArray(namArg) const namArgArr = [] - for (var i = 0; i < args.length; i++) { - var obj = args[i] + for (let i = 0; i < args.length; i++) { + const obj = args[i] const ident = obj.identifier const val = obj.value namArgArr.push(Object.assign( - {'identifier': ident}, - {'value': val ? this.functionArgument(val) : undefined} + { identifier: ident }, + { value: val ? this.functionArgument(val) : undefined } )) } return namArgArr @@ -804,10 +807,10 @@ function functionArgument (funArg) { const namArg = funArg.named_arguments const exp = funArg.expression return Object.assign( - {'function_name': name ? this.nameString(name) : undefined}, - {'named_arguments': namArg ? this.namedArguments(namArg) : undefined}, - {'expression': exp ? this.expression(exp) : undefined} - ) + { function_name: name ? this.nameString(name) : undefined }, + { named_arguments: namArg ? this.namedArguments(namArg) : undefined }, + { expression: exp ? this.expression(exp) : undefined } + ) } /** @@ -818,12 +821,12 @@ function functionArgument (funArg) { function forIndices (forInd) { const indLis = forInd.indices const indArr = [] - for (var i = 0; i < indLis.length; i++) { - var obj = indLis[i] + for (let i = 0; i < indLis.length; i++) { + const obj = indLis[i] const exp = obj.expression indArr.push(Object.assign( - {'identifier': obj.identifier}, - {'expression': exp ? this.expression(exp) : undefined} + { identifier: obj.identifier }, + { expression: exp ? this.expression(exp) : undefined } )) } return indArr @@ -838,13 +841,13 @@ function algorithmSection (algSec) { const ini = algSec.initial const staLis = algSec.statements const staArr = [] - for (var i = 0; i < staLis.length; i++) { - var obj = staLis[i] + for (let i = 0; i < staLis.length; i++) { + const obj = staLis[i] staArr.push(this.statement(obj)) } return Object.assign( - {'initial': ini || undefined}, - {'statement': staArr} + { initial: ini || undefined }, + { statement: staArr } ) } @@ -866,16 +869,16 @@ function statement (sta) { const isBreak = sta.is_break const isReturn = sta.is_return return Object.assign( - {'assignment_statement': assSta ? this.assignmentStatement(assSta) : undefined}, - {'Function_call_statement': funCalSta ? this.functionCallStatement(funCalSta) : undefined}, - {'assignment_with_function_call_statement': assWithFunCalSta ? this.assignmentWithFunctionCallStatement(assWithFunCalSta) : undefined}, - {'break': isBreak || undefined}, - {'return': isReturn || undefined}, - {'if_statement': ifSta ? this.ifStatement(ifSta) : undefined}, - {'for_statement': forSta ? this.forStatement(forSta) : undefined}, - {'while_statement': whiSta ? this.whileStatement(whiSta) : undefined}, - {'when_statement': wheSta ? this.whenStatement(wheSta) : undefined}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { assignment_statement: assSta ? this.assignmentStatement(assSta) : undefined }, + { Function_call_statement: funCalSta ? this.functionCallStatement(funCalSta) : undefined }, + { assignment_with_function_call_statement: assWithFunCalSta ? this.assignmentWithFunctionCallStatement(assWithFunCalSta) : undefined }, + { break: isBreak || undefined }, + { return: isReturn || undefined }, + { if_statement: ifSta ? this.ifStatement(ifSta) : undefined }, + { for_statement: forSta ? this.forStatement(forSta) : undefined }, + { while_statement: whiSta ? this.whileStatement(whiSta) : undefined }, + { when_statement: wheSta ? this.whenStatement(wheSta) : undefined }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } ) } @@ -888,8 +891,8 @@ function assignmentStatement (assSta) { const ident = assSta.identifier const val = assSta.value return Object.assign( - {'identifier': ident ? this.componentReference(ident) : undefined}, - {'value': val ? this.expression(val) : undefined} + { identifier: ident ? this.componentReference(ident) : undefined }, + { value: val ? this.expression(val) : undefined } ) } @@ -902,8 +905,8 @@ function functionCallStatement (funCalSta) { const name = funCalSta.function_name const funCalArg = funCalSta.function_call_args return Object.assign( - {'function_name': name ? this.componentReference(name) : undefined}, - {'function_call_args': funCalArg ? this.functionCallArgs(funCalArg) : undefined} + { function_name: name ? this.componentReference(name) : undefined }, + { function_call_args: funCalArg ? this.functionCallArgs(funCalArg) : undefined } ) } @@ -915,17 +918,17 @@ function functionCallStatement (funCalSta) { function assignmentWithFunctionCallStatement (assWithFunCalSta) { const outExpLis = assWithFunCalSta.output_expression_list const outExpArr = [] - for (var i = 0; i < outExpLis.length; i++) { - var obj = outExpLis[i] - var objExp = obj.expression + for (let i = 0; i < outExpLis.length; i++) { + const obj = outExpLis[i] + const objExp = obj.expression if (objExp) { outExpArr.push(this.expression(objExp)) } } const name = assWithFunCalSta.function_name const funCalArg = assWithFunCalSta.function_call_args return Object.assign( - {'output_expression_list': outExpArr}, - {'function_name': name ? this.componentReference(name) : undefined}, - {'function_call_args': funCalArg ? this.functionCallArgs(funCalArg) : undefined} + { output_expression_list: outExpArr }, + { function_name: name ? this.componentReference(name) : undefined }, + { function_call_args: funCalArg ? this.functionCallArgs(funCalArg) : undefined } ) } @@ -938,29 +941,29 @@ function ifStatement (ifSta) { const ifEls = ifSta.if_elseif const elsSta = ifSta.else_statement const ifElsArr = [] - for (var i = 0; i < ifEls.length; i++) { - var obj = ifEls[i] + for (let i = 0; i < ifEls.length; i++) { + const obj = ifEls[i] const theStaArr = [] const theSta = obj.then - for (var j = 0; j < theSta.length; j++) { - var ele = theSta[j] + for (let j = 0; j < theSta.length; j++) { + const ele = theSta[j] theStaArr.push(this.statement(ele)) } ifElsArr.push(Object.assign( - {'condition': obj.condition ? this.expression(obj.condition) : undefined}, - {'then': theStaArr} + { condition: obj.condition ? this.expression(obj.condition) : undefined }, + { then: theStaArr } )) } const elsArr = [] if (elsSta && (elsSta.length > 0)) { - for (var k = 0; k < elsSta.length; k++) { - var obj2 = elsSta[k] + for (let k = 0; k < elsSta.length; k++) { + const obj2 = elsSta[k] elsArr.push(this.statement(obj2)) } } return Object.assign( - {'if_elseif': ifElsArr}, - {'else_statement': (elsArr.length > 0) ? elsArr : undefined} + { if_elseif: ifElsArr }, + { else_statement: (elsArr.length > 0) ? elsArr : undefined } ) } @@ -973,13 +976,13 @@ function forStatement (forSta) { const forInd = forSta.for_indices const looSta = forSta.loop_statements const looStaArr = [] - for (var i = 0; i < looSta.length; i++) { - var obj = looSta[i] + for (let i = 0; i < looSta.length; i++) { + const obj = looSta[i] looStaArr.push(this.statement(obj)) } return Object.assign( - {'for_indices': this.forIndices(forInd)}, - {'loop_statements': looStaArr} + { for_indices: this.forIndices(forInd) }, + { loop_statements: looStaArr } ) } @@ -992,13 +995,13 @@ function whileStatement (whiSta) { const con = whiSta.condition const looSta = whiSta.loop_statements const staArr = [] - for (var i = 0; i < looSta.length; i++) { - var obj = looSta[i] + for (let i = 0; i < looSta.length; i++) { + const obj = looSta[i] staArr.push(this.statement(obj)) } return Object.assign( - {'condition': con ? this.expression(con) : undefined}, - {'loop_statement': staArr} + { condition: con ? this.expression(con) : undefined }, + { loop_statement: staArr } ) } @@ -1010,18 +1013,18 @@ function whileStatement (whiSta) { function whenStatement (wheStas) { const wheSta = wheStas.when_elsewhen const wheStaArr = [] - for (var i = 0; i < wheSta.length; i++) { - var obj = wheSta[i] + for (let i = 0; i < wheSta.length; i++) { + const obj = wheSta[i] const con = obj.condition const the = obj.then const theArr = [] - for (var j = 0; j < the.length; j++) { - var ele = the[j] + for (let j = 0; j < the.length; j++) { + const ele = the[j] theArr.push(this.statement(ele)) } wheStaArr.push(Object.assign( - {'condition': con ? this.expression(con) : undefined}, - {'then': theArr} + { condition: con ? this.expression(con) : undefined }, + { then: theArr } )) } return wheStaArr @@ -1038,9 +1041,9 @@ function externalComposition (extCom) { const extAnn = extCom.external_annotation ? extCom.external_annotation.class_modification : null const annotation = extAnn ? this.classModification(extAnn) : undefined return Object.assign( - {'language_specification': lanSpe}, - {'external_function_call': extFunCal ? this.externalFunctionCall(extFunCal) : undefined}, - {'external_annotation': (annotation === '()') ? undefined : annotation} + { language_specification: lanSpe }, + { external_function_call: extFunCal ? this.externalFunctionCall(extFunCal) : undefined }, + { external_annotation: (annotation === '()') ? undefined : annotation } ) } @@ -1056,15 +1059,15 @@ function externalFunctionCall (extFunCal) { const exps = expLis ? expLis.expressions : undefined const expArr = [] if (exps) { - for (var i = 0; i < exps.length; i++) { - var ele = exps[i] + for (let i = 0; i < exps.length; i++) { + const ele = exps[i] expArr.push(this.expression(ele)) } } return Object.assign( - {'component_reference': comRef ? this.componentReference(comRef) : undefined}, - {'identifier': ident}, - {'expression_list': exps ? expArr : undefined} + { component_reference: comRef ? this.componentReference(comRef) : undefined }, + { identifier: ident }, + { expression_list: exps ? expArr : undefined } ) } @@ -1077,8 +1080,8 @@ function shortClassSpecifier (shoClaSpe) { const ident = shoClaSpe.identifier const val = shoClaSpe.short_class_specifier_value return Object.assign( - {'identifier': ident}, - {'value': val ? this.shortClassSpecifierValue(val) : undefined} + { identifier: ident }, + { value: val ? this.shortClassSpecifierValue(val) : undefined } ) } @@ -1099,24 +1102,24 @@ function shortClassSpecifierValue (val) { const enuArr = [] if (enuLis && (enuLis.enumeration_literal_list.length > 0)) { const enumLite = enuLis.enumeration_literal_list - for (var i = 0; i < enumLite.length; i++) { - var obj = enumLite[i] + for (let i = 0; i < enumLite.length; i++) { + const obj = enumLite[i] const ident = obj.identifier const desCri = obj.comment const desObj = desCri ? this.description(desCri) : undefined enuArr.push(Object.assign( - {'identifier': ident}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { identifier: ident }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } )) } } return Object.assign( - {'base_prefix': pre}, - {'name': name ? this.nameString(name) : undefined}, - {'array_subscripts': arrSub ? this.arraySubscripts(arrSub) : undefined}, - {'class_modification': claMod ? this.classModification(claMod) : undefined}, - {'description': !ut.isEmptyObject(desObjEx) ? desObjEx : undefined}, - {'enum_list': (enuArr.length > 0) ? enuArr : undefined} + { base_prefix: pre }, + { name: name ? this.nameString(name) : undefined }, + { array_subscripts: arrSub ? this.arraySubscripts(arrSub) : undefined }, + { class_modification: claMod ? this.classModification(claMod) : undefined }, + { description: !ut.isEmptyObject(desObjEx) ? desObjEx : undefined }, + { enum_list: (enuArr.length > 0) ? enuArr : undefined } ) } @@ -1128,20 +1131,20 @@ function shortClassSpecifierValue (val) { function derClassSpecifier (derClaSpe) { const ident = derClaSpe.identifier const val = derClaSpe.der_class_specifier_value - var typSpe, typIden, typDes, valObj + let typSpe, typIden, typDes, valObj if (val) { typSpe = val.type_specifier typIden = val.identifiers typDes = val.comment ? this.description(val.comment) : undefined valObj = Object.assign( - {'type_specifier': typSpe}, - {'identifier': typIden}, - {'description': !ut.isEmptyObject(typDes) ? typDes : undefined} + { type_specifier: typSpe }, + { identifier: typIden }, + { description: !ut.isEmptyObject(typDes) ? typDes : undefined } ) } return Object.assign( - {'identifier': ident}, - {'value': val ? valObj : undefined} + { identifier: ident }, + { value: val ? valObj : undefined } ) } @@ -1149,6 +1152,7 @@ function derClassSpecifier (derClaSpe) { * Get the string of simple expression * * @param simExp simple expression object + * @param outStr flag to indicate if it should output string */ function simpleExpression (simExp, outStr = false) { const logExp1 = this.logicalExpression(simExp.logical_expression1) @@ -1158,7 +1162,7 @@ function simpleExpression (simExp, outStr = false) { const logExp3 = simExp.logical_expression3 ? (':' + this.logicalExpression(simExp.logical_expression3)) : '' - var funCal, forLoo, logExp, ifExp + let funCal, forLoo, logExp, ifExp if (!(logExp2 || logExp3)) { const pri = this.checkPri(simExp.logical_expression1) if (pri) { @@ -1169,12 +1173,23 @@ function simpleExpression (simExp, outStr = false) { logExp = this.logicalExpressionObj(simExp.logical_expression1) } if ((funCal || forLoo || logExp || ifExp) && !outStr) { - return Object.assign( - {'function_call': funCal}, - {'for_loop': forLoo}, - {'logical_expression': logExp}, - {'if_expression': ifExp} - ) + if (funCal || forLoo || ifExp) { + return Object.assign( + { function_call: funCal }, + { for_loop: forLoo }, + { if_expression: ifExp } + ) + } + if (logExp && !(funCal || forLoo || ifExp)) { + const logOr = logExp.logical_or + if (logOr.length === 1 && logOr[0].logical_and.length === 1 && + logOr[0].logical_and[0].arithmetic_expressions.length === 1 && + !logOr[0].logical_and[0].not) { + return logOr[0].logical_and[0].arithmetic_expressions[0].name + } else { + return Object.assign({ logical_expression: logExp }) + } + } } else { return (logExp1 + logExp2 + logExp3) } @@ -1189,28 +1204,28 @@ function ifExpressionObj (pri) { const outExpLis = pri.output_expression_list if (!outExpLis) { return undefined } const expLis = outExpLis.output_expressions - var expArray = [] - for (var i = 0; i < expLis.length; i++) { - var ithExp = expLis[i] + const expArray = [] + for (let i = 0; i < expLis.length; i++) { + const ithExp = expLis[i] if (ithExp.simple_expression) { return undefined } - var ifExp = ithExp.if_expression - var ifEls = ifExp.if_elseif - var ifElsArray = [] - for (var j = 0; j < ifEls.length; j++) { - var jthEle = ifEls[j] - var condition = this.expressionString(jthEle.condition) - var then = this.expressionString(jthEle.then) + const ifExp = ithExp.if_expression + const ifEls = ifExp.if_elseif + const ifElsArray = [] + for (let j = 0; j < ifEls.length; j++) { + const jthEle = ifEls[j] + const condition = this.expressionString(jthEle.condition) + const then = this.expressionString(jthEle.then) ifElsArray.push(Object.assign( - {'condition': condition}, - {'then': then} + { condition }, + { then } )) } - var elsExp = ifExp.else_expression + const elsExp = ifExp.else_expression expArray.push(Object.assign( - {'if_elseif': ifElsArray}, - {'else': this.expressionString(elsExp)} + { if_elseif: ifElsArray }, + { else: this.expressionString(elsExp) } )) } return (expArray.length > 0 ? expArray : undefined) @@ -1227,7 +1242,7 @@ function forLoopObj (pri) { const forInd = funArgs.for_indices if (!forInd) { return undefined } const exp = this.funArgObj(funArg) - const forObj = Object.assign({'expression': exp}, this.forIndObj(forInd)) + const forObj = Object.assign({ expression: exp }, this.forIndObj(forInd)) return forObj } @@ -1238,23 +1253,23 @@ function forLoopObj (pri) { function logicalExpressionObj (logExp) { const termList = logExp.logical_term_list const orArray = [] - for (var i = 0; i < termList.length; i++) { - var ithTerm = termList[i] - var factorList = ithTerm.logical_factor_list + for (let i = 0; i < termList.length; i++) { + const ithTerm = termList[i] + const factorList = ithTerm.logical_factor_list const andArray = [] - for (var j = 0; j < factorList.length; j++) { - var jthFactor = factorList[j] - var jthFactorObj = this.logicalFactorObj(jthFactor) + for (let j = 0; j < factorList.length; j++) { + const jthFactor = factorList[j] + const jthFactorObj = this.logicalFactorObj(jthFactor) if (jthFactorObj) { andArray.push(jthFactorObj) } } if (andArray.length > 0) { - orArray.push(Object.assign({'logical_and': andArray})) + orArray.push(Object.assign({ logical_and: andArray })) } } if (orArray.length > 0) { - return Object.assign({'logical_or': orArray}) + return Object.assign({ logical_or: orArray }) } } @@ -1267,15 +1282,16 @@ function logicalFactorObj (fac) { const rel = fac.relation const relOp = rel.rel_op const ariExp1 = this.arithmeticExpression(rel.arithmetic_expression1) - if (!relOp) { return undefined } - const ariExp2 = this.arithmeticExpression(rel.arithmetic_expression2) const ariExpArray = [] - ariExpArray.push(Object.assign({'name': ariExp1})) - ariExpArray.push(Object.assign({'name': ariExp2})) + ariExpArray.push(Object.assign({ name: ariExp1 })) + if (relOp) { + const ariExp2 = this.arithmeticExpression(rel.arithmetic_expression2) + ariExpArray.push(Object.assign({ name: ariExp2 })) + } return Object.assign( - {'not': notOpe || undefined}, - {'arithmetic_expressions': ariExpArray}, - {'relation_operator': relOp} + { not: notOpe || undefined }, + { arithmetic_expressions: ariExpArray }, + { relation_operator: relOp || undefined } ) } @@ -1342,8 +1358,8 @@ function functionCallObj (pri) { return undefined } return Object.assign( - {'name': this.nameString(name)}, - {'arguments': this.funCalArgObj(funCalArg)} + { name: this.nameString(name) }, + { arguments: this.funCalArgObj(funCalArg) } ) } } @@ -1368,17 +1384,17 @@ function funArgsObj (argObj) { const funArgs = argObj.function_arguments const argArray = [] if (namedArg) { - argArray.push(Object.assign({'name': this.namedArgsString(namedArg)})) + argArray.push(Object.assign({ name: this.namedArgsString(namedArg) })) } else { if (funArgs) { - argArray.push(Object.assign({'name': this.funArgString(funArg)})) - argArray.push(Object.assign({'name': this.funArgsString(funArgs)})) + argArray.push(Object.assign({ name: this.funArgString(funArg) })) + argArray.push(Object.assign({ name: this.funArgsString(funArgs) })) } else if (forInd) { const exp = this.funArgObj(funArg) - const forObj = Object.assign({'expression': exp}, this.forIndObj(forInd)) + const forObj = Object.assign({ expression: exp }, this.forIndObj(forInd)) argArray.push(forObj) } else { - argArray.push(Object.assign({'name': this.funArgString(funArg)})) + argArray.push(Object.assign({ name: this.funArgString(funArg) })) } } return argArray @@ -1391,14 +1407,14 @@ function funArgsObj (argObj) { function forIndObj (forIndObject) { const ind = forIndObject.indices const indices = [] - for (var i = 0; i < ind.length; i++) { + for (let i = 0; i < ind.length; i++) { const ithInd = ind[i] const ident = ithInd.identifier const exp = ithInd.expression const expString = exp ? this.expressionString(exp, false) : undefined - indices.push(Object.assign({'name': ident}, {'range': expString})) + indices.push(Object.assign({ name: ident }, { range: expString })) } - return Object.assign({'for_loop': indices}) + return Object.assign({ for_loop: indices }) } /** Get the for function argument object @@ -1422,10 +1438,10 @@ function funArgObj (funArg) { function logicalExpression (logExp) { const termList = logExp.logical_term_list const termArray = [] - for (var i = 0; i < termList.length; i++) { + for (let i = 0; i < termList.length; i++) { const factorList = termList[i].logical_factor_list const factor = [] - for (var j = 0; j < factorList.length; j++) { + for (let j = 0; j < factorList.length; j++) { factor.push(this.logicalFactor(factorList[j])) } termArray.push(factor.join(' and ')) @@ -1467,7 +1483,7 @@ function relation (rel) { function arithmeticExpression (ariExp) { const termList = ariExp.arithmetic_term_list const termArray = [] - for (var i = 0; i < termList.length; i++) { + for (let i = 0; i < termList.length; i++) { const addOp = termList[i].add_op const term = this.termString(termList[i].term) const termEle = addOp ? (addOp + term) : term @@ -1484,10 +1500,10 @@ function arithmeticExpression (ariExp) { function termString (ter) { const factor = ter.factors const mulOps = ter.mul_ops - var temp + let temp if (mulOps) { temp = this.factorString(factor[0]) - for (var i = 0; i < mulOps.length; i++) { + for (let i = 0; i < mulOps.length; i++) { temp = temp + mulOps[i] + this.factorString(factor[i + 1]) } } @@ -1560,7 +1576,7 @@ function funCalPriString (funCalPri) { const name = funCalPri.function_name const der = funCalPri.der const initial = funCalPri.initial - var pre + let pre if (name) { pre = this.nameString(name) } else if (der) { @@ -1578,8 +1594,8 @@ function funCalPriString (funCalPri) { */ function nameString (name) { const nameList = name.name_parts - var nameString = '' - for (var i = 0; i < nameList.length; i++) { + let nameString = '' + for (let i = 0; i < nameList.length; i++) { const dotOp = nameList[i].dot_op const dot = dotOp ? '.' : '' const ident = nameList[i].identifier @@ -1605,8 +1621,8 @@ function funCalArgString (funCalArg) { */ function comRefString (comRef) { const comRefPar = comRef.component_reference_parts - var comString = '' - for (var i = 0; i < comRefPar.length; i++) { + let comString = '' + for (let i = 0; i < comRefPar.length; i++) { const ithCom = comRefPar[i] const dotOp = ithCom.dot_op ? '.' : '' const ident = ithCom.identifier @@ -1626,7 +1642,7 @@ function comRefString (comRef) { function arrSubString (arrSub) { const sub = arrSub.subscripts const subEle = [] - for (var i = 0; i < sub.length; i++) { + for (let i = 0; i < sub.length; i++) { const ithSub = sub[i] const exp = ithSub.expression const colOp = ithSub.colon_op @@ -1669,10 +1685,10 @@ function funArgString (funArgObj) { const namArgs = funArgObj.named_arguments const expStr = funArgObj.expression if (funName) { - var namedArgString = namArgs ? ('(' + this.namedArgsString(namArgs) + ')') : '()' + const namedArgString = namArgs ? ('(' + this.namedArgsString(namArgs) + ')') : '()' return 'function ' + this.nameString(funName) + namedArgString } else { - var funcArg = this.expressionString(expStr, true) + const funcArg = this.expressionString(expStr, true) return funcArg } } @@ -1683,12 +1699,12 @@ function funArgString (funArgObj) { * @param namArgs named_arguments object */ function namedArgsString (namArgs) { - var namArgsArr = this.namedArgsArray(namArgs) + const namArgsArr = this.namedArgsArray(namArgs) if (namArgsArr.length > 1) { - var namArr = [] - for (var i = 0; i < namArgsArr.length; i++) { - var ident = namArgsArr[i].identifier - var value = this.funArgString(namArgsArr[i].value) + const namArr = [] + for (let i = 0; i < namArgsArr.length; i++) { + const ident = namArgsArr[i].identifier + const value = this.funArgString(namArgsArr[i].value) namArr.push(ident + '=' + value) } return namArr.join(',') @@ -1703,11 +1719,11 @@ function namedArgsString (namArgs) { * @param namArgs named_arguments object */ function namedArgsArray (namArgs) { - var out = [] + const out = [] out.push(namArgs.named_argument) - var namArgsInt = namArgs.named_arguments + const namArgsInt = namArgs.named_arguments if (namArgsInt) { - var intArr = this.namedArgsArray(namArgsInt) + const intArr = this.namedArgsArray(namArgsInt) Array.prototype.push.apply(out, intArr) } return out @@ -1721,7 +1737,7 @@ function namedArgsArray (namArgs) { function outExpLisString (outExpLis) { const expList = outExpLis.output_expressions const arr = [] - for (var i = 0; i < expList.length; i++) { + for (let i = 0; i < expList.length; i++) { arr.push(this.expressionString(expList[i])) } return arr.join(',') @@ -1734,7 +1750,7 @@ function outExpLisString (outExpLis) { */ function expLisString (expLists) { const expString = [] - for (var i = 0; i < expLists.length; i++) { + for (let i = 0; i < expLists.length; i++) { const expList = expLists[i] expString.push(this.expressionListString(expList)) } @@ -1750,7 +1766,7 @@ function expressionListString (expList) { const ithListEle = expList.expressions const arr = [] if (ithListEle) { - for (var j = 0; j < ithListEle.length; j++) { + for (let j = 0; j < ithListEle.length; j++) { arr.push(this.expressionString(ithListEle[j])) } const ithListString = arr.join(',') @@ -1767,7 +1783,7 @@ function expressionListString (expList) { function forIndString (forInd) { const ind = forInd.indices const indEle = [] - for (var i = 0; i < ind.length; i++) { + for (let i = 0; i < ind.length; i++) { const ithInd = ind[i] const ident = ithInd.identifier const exp = ithInd.expression @@ -1785,7 +1801,7 @@ function forIndString (forInd) { function expressionString (exp, outStr = false) { const simExp = exp.simple_expression const ifExp = exp.if_expression - return simExp ? this.simpleExpression(simExp, outStr) : this.ifExpString(ifExp) + return simExp ? this.simpleExpression(simExp, true) : this.ifExpString(ifExp) } /** @@ -1796,9 +1812,9 @@ function expressionString (exp, outStr = false) { function ifExpString (ifExp) { const ifElse = ifExp.if_elseif const elsExp = ifExp.else_expression - var ifExpString = 'if ' + this.expressionString(ifElse[0].condition) + ' then ' + this.expressionString(ifElse[0].then) + let ifExpString = 'if ' + this.expressionString(ifElse[0].condition) + ' then ' + this.expressionString(ifElse[0].then) if (ifElse.length > 1) { - for (var i = 1; i < ifElse.length; i++) { + for (let i = 1; i < ifElse.length; i++) { const ithEle = ifElse[i] const elseifString = ' elseif ' + this.expressionString(ithEle.condition) + ' then ' + this.expressionString(ithEle.then) ifExpString = ifExpString + elseifString diff --git a/lib/modelicaToJSON.js b/lib/modelicaToJSON.js index f72d9769..f82b04c3 100644 --- a/lib/modelicaToJSON.js +++ b/lib/modelicaToJSON.js @@ -2,7 +2,7 @@ const pa = require('path') const pro = require('child_process') const fs = require('bluebird').promisifyAll(require('fs')) -var logger = require('winston') +const logger = require('winston') const ut = require('../lib/util.js') /** Parses the modelica file and returns a promise. @@ -19,7 +19,7 @@ function toJSON (modelicaFile) { throw new Error(msg) } if (!fs.existsSync(modelicaFile)) { - var msg = "Modelica file '" + modelicaFile + "' not found. You may need to set the MODELICAPATH environment variable." + const msg = "Modelica file '" + modelicaFile + "' not found. You may need to set the MODELICAPATH environment variable." logger.error(msg) throw new Error(msg) } @@ -28,7 +28,7 @@ function toJSON (modelicaFile) { // call synchronously const jr = pro.spawnSync('java', - ['-Xmx2048m', '-Xms512m', '-jar', parser, '--mo', modelicaFile], {maxBuffer: 1024 * 1024 * 100}) + ['-Xmx2048m', '-Xms512m', '-jar', parser, '--mo', modelicaFile], { maxBuffer: 1024 * 1024 * 100 }) if (jr.stderr.length > 0) { const msg = '*** Error when parsing ' + modelicaFile + ': "' + jr.stderr + '".' logger.error(msg) @@ -36,12 +36,12 @@ function toJSON (modelicaFile) { } else { try { logger.debug('Parsing output to json.') - var res = JSON.parse(jr.stdout) + const res = JSON.parse(jr.stdout) // Add the modelica file name, as this is needed to look up its instances if (!res) throw new Error('Parser returned null instead of json structure. Did you install Java properly?') Object.assign(res, - { 'modelicaFile': ut.relativePath(modelicaFile) }, - { 'fullMoFilePath': modelicaFile }) + { modelicaFile: ut.relativePath(modelicaFile) }, + { fullMoFilePath: modelicaFile }) return res } catch (error) { const em = error + '\n JSON structure is \n' + jr.stdout diff --git a/lib/parser.js b/lib/parser.js index 3fac4d9b..f82ddaf5 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -1,7 +1,7 @@ const jq = require('../lib/jsonquery.js') const mj = require('../lib/modelicaToJSON.js') const ut = require('../lib/util.js') -var logger = require('winston') +const logger = require('winston') const fs = require('bluebird').promisifyAll(require('fs')) const storedDefiniton = require('../json2mo/storedDefiniton') @@ -19,31 +19,31 @@ const storedDefiniton = require('../json2mo/storedDefiniton') */ function getJsons (moFiles, parseMode, outputFormat, directory, prettyPrint) { logger.debug('Entered parser.getJsons.') - var jsonData = [] - var outDir = directory + const jsonData = [] + let outDir = directory if (directory === 'current') { outDir = process.cwd() } if (outputFormat === 'raw-json') { moFiles.forEach(function (obj) { // find the output file path - var outputFileName = ut.getOutputFile(obj, 'raw-json', outDir) + const outputFileName = ut.getOutputFile(obj, 'raw-json', outDir) // find the modelica file checksum - var resChecksum = ut.getMoChecksum(obj) + const resChecksum = ut.getMoChecksum(obj) // check if the file should be parsed - var needParsed = ut.checkIfParse(outputFileName, resChecksum, obj) + const needParsed = ut.checkIfParse(outputFileName, resChecksum, obj) if (needParsed) { - var rawJson = getRawJson(obj, outputFormat) - Object.assign(rawJson, {'checksum': resChecksum}) - var out = (prettyPrint === 'true') ? JSON.stringify(rawJson, null, 2) : JSON.stringify(rawJson) + const rawJson = getRawJson(obj, outputFormat) + Object.assign(rawJson, { checksum: resChecksum }) + const out = (prettyPrint === 'true') ? JSON.stringify(rawJson, null, 2) : JSON.stringify(rawJson) ut.writeFile(outputFileName, out) } }) } else { const tempJsonDir = ut.createTempDir('json') - var parsedFile = [] - for (var i = 0; i < moFiles.length; i++) { - var fileList = getSimpleJson(moFiles[i], parseMode, tempJsonDir, parsedFile, outDir, prettyPrint) + const parsedFile = [] + for (let i = 0; i < moFiles.length; i++) { + const fileList = getSimpleJson(moFiles[i], parseMode, tempJsonDir, parsedFile, outDir, prettyPrint) parsedFile.push(fileList) } ut.copyFolderSync(tempJsonDir, outDir) @@ -61,7 +61,7 @@ function getJsons (moFiles, parseMode, outputFormat, directory, prettyPrint) { function getRawJson (moFile, outputFormat) { const rawJson = mj.toJSON(moFile) if (outputFormat === 'raw-json') { - delete rawJson['fullMoFilePath'] + delete rawJson.fullMoFilePath } return rawJson } @@ -77,29 +77,29 @@ function getRawJson (moFile, outputFormat) { * @param prettyPrint Flag to indicate if prettify JSON output */ function getSimpleJson (moFile, parseMode, tempDir, parsedFile, outDir, prettyPrint) { - var outputFileName = ut.getOutputFile(moFile, 'json', outDir) + const outputFileName = ut.getOutputFile(moFile, 'json', outDir) // find the modelica file checksum - var moChecksum = ut.getMoChecksum(moFile) + const moChecksum = ut.getMoChecksum(moFile) // check if the file should be parsed - var needParsed = ut.checkIfParse(outputFileName, moChecksum, moFile) + const needParsed = ut.checkIfParse(outputFileName, moChecksum, moFile) // if the moFile has been parsed and the original moFile has no change if (!needParsed || parsedFile.includes(moFile)) { return null } // get the raw-json output, this process will add relative and full modelica file path to the json output - var rawJson = getRawJson(moFile, 'json') - Object.assign(rawJson, {'checksum': moChecksum}) - var da = jq.simplifyModelicaJSON(rawJson, parseMode) + const rawJson = getRawJson(moFile, 'json') + Object.assign(rawJson, { checksum: moChecksum }) + const da = jq.simplifyModelicaJSON(rawJson, parseMode) // create temp directory to host the json output before adding the svg contents - var tempJsonPath = ut.getOutputFile(moFile, 'json', tempDir) + const tempJsonPath = ut.getOutputFile(moFile, 'json', tempDir) // write the simplified json output to file - var out = (prettyPrint === 'false') ? JSON.stringify(da) : JSON.stringify(da, null, 2) + const out = (prettyPrint === 'false') ? JSON.stringify(da) : JSON.stringify(da, null, 2) ut.writeFile(tempJsonPath, out) // add the full path to the list - var parsedPath = da.fullMoFilePath + const parsedPath = da.fullMoFilePath parsedFile.push(parsedPath) // get list of mo files instantiated by current mo file - var instantiateClass = getInstantiatedFile(da) + const instantiateClass = getInstantiatedFile(da) if (instantiateClass.length > 0) { instantiateClass.forEach(function (obj) { if (!parsedFile.includes(obj)) { @@ -118,9 +118,9 @@ function getSimpleJson (moFile, parseMode, tempDir, parsedFile, outDir, prettyPr function getInstantiatedFile (data) { const within = data.within const claDef = data.class_definition - var insCla = [] + let insCla = [] claDef.forEach(function (obj) { - var claLis = instantiatedClass(within, obj) + const claLis = instantiatedClass(within, obj) if (claLis) { Array.prototype.push.apply(insCla, claLis) } @@ -170,7 +170,7 @@ function instantiatedClass (within, claDef) { // Find all instantiated classes file path const pubInstancesFile = pubInstances ? instanceFilePath(pubInstances, within) : [] const proInstancesFile = proInstances ? instanceFilePath(proInstances, within) : [] - var instantitatedFiles = pubInstancesFile.concat(proInstancesFile) + let instantitatedFiles = pubInstancesFile.concat(proInstancesFile) // iteratively remove duplicate elements if (instantitatedFiles.length > 0) { instantitatedFiles = instantitatedFiles.filter(function (item, pos) { return instantitatedFiles.indexOf(item) === pos }) @@ -190,7 +190,7 @@ function instantiatedClass (within, claDef) { * @param within value of within object */ function instanceFilePath (claObj, within) { - var fullList = [] + let fullList = [] const impCla = claObj.import_instance const extCla = claObj.extends_instance const conCla = claObj.constrained_instance @@ -247,11 +247,11 @@ function searchInstances (eleLis) { } }) return Object.assign( - {'import_instance': impEle}, - {'extends_instance': extEle}, - {'constrained_instance': conEle}, - {'component_instance': comEle}, - {'instance_in_modification': claModEle} + { import_instance: impEle }, + { extends_instance: extEle }, + { constrained_instance: conEle }, + { component_instance: comEle }, + { instance_in_modification: claModEle } ) } @@ -319,18 +319,18 @@ function elementReplaceable (eleRep) { * @returns string content of modelica file */ function convertToModelica (jsonFile, outDir, rawJson = false) { - var fileContent = fs.readFileSync(jsonFile, 'utf8') + const fileContent = fs.readFileSync(jsonFile, 'utf8') - var jsonOutput + let jsonOutput if (rawJson) { jsonOutput = JSON.parse(fileContent)[0] } else { jsonOutput = JSON.parse(fileContent) } - var moOutput = storedDefiniton.parse(jsonOutput, rawJson) + const moOutput = storedDefiniton.parse(jsonOutput, rawJson) // find the output file path - var outputFileName = ut.getOutputFile(jsonFile, 'modelica', outDir) + const outputFileName = ut.getOutputFile(jsonFile, 'modelica', outDir) ut.writeFile(outputFileName, moOutput) return moOutput } diff --git a/lib/util.js b/lib/util.js index 61c284a8..70caf9c6 100644 --- a/lib/util.js +++ b/lib/util.js @@ -22,7 +22,7 @@ function getMODELICAPATH () { * @param outputFormat output format, 'json' */ function createTempDir (outputFormat) { - var tmpDir + let tmpDir try { tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), outputFormat)) } catch (e) { @@ -67,11 +67,11 @@ function removeDir (directoryPath) { * @return array of the full path of the modelica file or the package */ function getMoFiles (files) { - var moFiles = [] + let moFiles = [] const MODELICAPATH = getMODELICAPATH() if (files.endsWith('.mo')) { - var tempPath - for (var j = 0; j < MODELICAPATH.length; j++) { + let tempPath + for (let j = 0; j < MODELICAPATH.length; j++) { tempPath = path.join(MODELICAPATH[j], files) if (fse.existsSync(tempPath)) { moFiles.push(tempPath) @@ -83,9 +83,9 @@ function getMoFiles (files) { } } else { // it is a package of mo files - var tempFolder = files + let tempFolder = files if (!fse.existsSync(tempFolder)) { - for (var i = 0; i < MODELICAPATH.length; i++) { + for (let i = 0; i < MODELICAPATH.length; i++) { tempFolder = path.join(MODELICAPATH[i], files) if (fse.existsSync(tempFolder)) break } @@ -94,7 +94,7 @@ function getMoFiles (files) { // the package is not on the MODELICAPATH, so it is a user specified package tempFolder = files } - var fileList = getFiles(tempFolder) + const fileList = getFiles(tempFolder) moFiles = fileList.filter(function (obj) { return obj.endsWith('.mo') }) @@ -109,10 +109,11 @@ function getMoFiles (files) { */ function getFiles (dir, fileList) { fileList = fileList || [] - var files = fs.readdirSync(dir) - for (var i in files) { - if (!files.hasOwnProperty(i)) continue - var name = dir + path.sep + files[i] + const files = fs.readdirSync(dir) + for (const i in files) { + // if (!files.hasOwnProperty(i)) continue + if (!Object.prototype.hasOwnProperty.call(files, i)) continue + const name = dir + path.sep + files[i] if (fs.statSync(name).isDirectory()) { getFiles(name, fileList) } else { @@ -130,13 +131,13 @@ function getFiles (dir, fileList) { * @return relative file path to MODELICAPATH */ function relativePath (filePath) { - var paths = getMODELICAPATH() - var bases = [] + const paths = getMODELICAPATH() + const bases = [] paths.forEach(ele => { if (ele.length > 0) bases.push(ele) }) - var relPa = filePath - for (var i = 0; i < bases.length; i++) { + let relPa = filePath + for (let i = 0; i < bases.length; i++) { if (filePath.includes(bases[i])) { relPa = filePath.substring(filePath.indexOf(bases[i]) + bases[i].length + 1) } @@ -153,8 +154,8 @@ function relativePath (filePath) { */ function getOutputFile (inputFile, outputFormat, dir) { // get the modelica file path from the Json output, it is relative path - var relPat = relativePath(inputFile) - var outFile + const relPat = relativePath(inputFile) + let outFile if (outputFormat === 'json' || outputFormat === 'raw-json') { outFile = relPat.replace('.mo', '.json') } else if (outputFormat === 'html') { @@ -171,22 +172,22 @@ function getOutputFile (inputFile, outputFormat, dir) { function searchPath (claLis, within) { const MODELICAPATH = getMODELICAPATH() const filePath = [] - for (var i = 0; i < claLis.length; i++) { + for (let i = 0; i < claLis.length; i++) { const ithCla = claLis[i] const claRelPath = joinedPathes(ithCla.split('.')) - var fulPat = searchFullPath(claRelPath.reverse(), MODELICAPATH, within) + const fulPat = searchFullPath(claRelPath.reverse(), MODELICAPATH, within) if (fulPat) { filePath.push(fulPat) } } return filePath } - // Get array of potential paths +// Get array of potential paths function joinedPathes (eleArr) { const pathes = [] const joinedPat = [] const pathSep = path.sep - for (var i = 0; i < eleArr.length; i++) { + for (let i = 0; i < eleArr.length; i++) { pathes.push(eleArr[i]) joinedPat.push(pathes.join(pathSep)) } @@ -196,7 +197,7 @@ function joinedPathes (eleArr) { // Search the full path function searchFullPath (claRelPath, MODELICAPATH, within) { const withEle = within ? within.split('.') : null - var fullPath = pathSearch(claRelPath, MODELICAPATH, withEle, false) + let fullPath = pathSearch(claRelPath, MODELICAPATH, withEle, false) if (!fullPath) { fullPath = pathSearch(claRelPath, MODELICAPATH, withEle, true) } @@ -213,14 +214,14 @@ function searchFullPath (claRelPath, MODELICAPATH, within) { * @param checkPackage flag to check if should check package.mo file */ function pathSearch (claRelPath, MODELICAPATH, withEle, checkPackage) { - var fullPath - for (var i = 0; i < MODELICAPATH.length; i++) { - var moPath = MODELICAPATH[i] + let fullPath + for (let i = 0; i < MODELICAPATH.length; i++) { + const moPath = MODELICAPATH[i] const tempPathes = withEle ? joinWithinPath(moPath, withEle) : [moPath] - var tempPath - for (var j = 0; j < tempPathes.length; j++) { - for (var k = 0; k < claRelPath.length; k++) { - var relPath = !checkPackage ? (claRelPath[k] + '.mo') : claRelPath[k] + let tempPath + for (let j = 0; j < tempPathes.length; j++) { + for (let k = 0; k < claRelPath.length; k++) { + const relPath = !checkPackage ? (claRelPath[k] + '.mo') : claRelPath[k] tempPath = path.join(tempPathes[j], relPath) if (!checkPackage) { if (fse.existsSync(tempPath)) { @@ -309,11 +310,11 @@ function copyFolderSync (from, to) { // Check if the modelica file should be parsed function checkIfParse (outputFile, checksum, moFile) { - var parseMo = false + let parseMo = false if (!fs.existsSync(outputFile)) { parseMo = true } else { - var checksumInJson = getChecksumFromJson(outputFile) + const checksumInJson = getChecksumFromJson(outputFile) if (!checksumInJson || (checksumInJson !== checksum)) { if (checksumInJson !== checksum) { console.log('There is change in: "' + moFile + '", regenerating the json output.') @@ -330,18 +331,18 @@ function checkIfParse (outputFile, checksum, moFile) { // Get the checksum of the Modelica file function getMoChecksum (moFile) { const input = fs.readFileSync(moFile) - var hash = crypto.createHash('md5') + const hash = crypto.createHash('md5') hash.update(input) return hash.digest('hex') } // Get the checksum from the stored json file function getChecksumFromJson (jsPath) { - var jsonChecksum = null + let jsonChecksum = null try { - var fileContent = fs.readFileSync(jsPath, 'utf8') - var jsonOutput = JSON.parse(fileContent) - jsonChecksum = jsonOutput['checksum'] + const fileContent = fs.readFileSync(jsPath, 'utf8') + const jsonOutput = JSON.parse(fileContent) + jsonChecksum = jsonOutput.checksum if (jsonChecksum == null) { return null } @@ -353,20 +354,17 @@ function getChecksumFromJson (jsPath) { } // Validation of a json file against a schema -function jsonSchemaValidation (mode, userData, output = 'json', userSchema) { - if (output !== 'json') { +function jsonSchemaValidation (mode, userData, userSchema) { + const ajv = new Ajv({ allErrors: true, schemaId: '$id' }) + const schema = JSON.parse(fs.readFileSync(userSchema, 'utf8')) + const data = JSON.parse(fs.readFileSync(userData, 'utf8')) + const valid = ajv.validate(schema, data) + if (valid) { + console.log('Json file is valid') + return valid } else { - var ajv = new Ajv({ allErrors: true, schemaId: '$id' }) - var schema = JSON.parse(fs.readFileSync(userSchema, 'utf8')) - var data = JSON.parse(fs.readFileSync(userData, 'utf8')) - var valid = ajv.validate(schema, data) - if (valid) { - console.log('Json file is valid') - return valid - } else { - console.log('Json file not valid, see errors below in ', userData) - console.log(ajv.errorsText()) - } + console.log('Json file not valid, see errors below in ', userData) + console.log(ajv.errorsText()) } } @@ -378,15 +376,15 @@ function jsonSchemaValidation (mode, userData, output = 'json', userSchema) { * @return Result files with path string in an array */ function findFilesInDir (startPath, filter) { - var results = [] + let results = [] if (!fs.existsSync(startPath)) { console.log('no dir ', startPath) return } - var files = fs.readdirSync(startPath) - for (var i = 0; i < files.length; i++) { - var filename = path.join(startPath, files[i]) - var stat = fs.lstatSync(filename) + const files = fs.readdirSync(startPath) + for (let i = 0; i < files.length; i++) { + const filename = path.join(startPath, files[i]) + const stat = fs.lstatSync(filename) if (stat.isDirectory()) { results = results.concat(findFilesInDir(filename, filter)) // recurse } else if (filename.indexOf(filter) >= 0) { diff --git a/package.json b/package.json index 4a71500b..f0843e99 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "base64-img": "^1.0.1", "bluebird": "^3.5.1", "cheerio": "^1.0.0-rc.2", + "cross-env": "^7.0.3", "express": "^4.16.2", "find": "^0.2.8", "fs": "0.0.1-security", @@ -36,7 +37,7 @@ "devDependencies": { "chai": "^4.1.2", "mocha": "^9.1.3", - "standard": "^10.0.3", - "sinon": "^15.0.0" + "sinon": "^15.0.0", + "standard": "^17.0.0" } } diff --git a/test/reference/json/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json b/test/reference/json/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json index 12e9cde8..5e03d82d 100644 --- a/test/reference/json/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json +++ b/test/reference/json/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json @@ -1768,6 +1768,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo", "checksum": "ad2ef000ee93f6f1c9ec354dafeab300" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Constants.json b/test/reference/json/Buildings/Controls/OBC/CDL/Constants.json index 13142a8f..b5865a43 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Constants.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Constants.json @@ -398,6 +398,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Constants.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo", "checksum": "d18e385511e96322440f6f561441b22c" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Abs.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Abs.json index 7935e4bc..ba6f530f 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Abs.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Abs.json @@ -421,6 +421,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Abs.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Abs.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Abs.mo", "checksum": "f98a5141c48b61f2ea968f49837b5812" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Add.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Add.json index c47f6374..1cbf7d82 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Add.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Add.json @@ -411,6 +411,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Add.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Add.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Add.mo", "checksum": "8821d8832a6cb126087d4c2f6d4b6306" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Derivative.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Derivative.json index 6afae954..5d2abd6e 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Derivative.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Derivative.json @@ -777,6 +777,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Derivative.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo", "checksum": "09a6e1ca7dae22cfc4202a301eb3b638" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Greater.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Greater.json index 677d69ab..37b41417 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Greater.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Greater.json @@ -367,7 +367,24 @@ }, "condition_attribute": { "expression": { - "simple_expression": "not have_hysteresis" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "have_hysteresis" + } + ] + } + ] + } + ] + } + } } }, "description": { @@ -400,633 +417,637 @@ } }, { - "class_definition": { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "GreaterNoHysteresis", - "description_string": "Greater block without hysteresis", - "composition": { - "element_list": [ - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u1" - }, - "description": { - "description_string": "Input u1", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] + "class_definition": [ + { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "GreaterNoHysteresis", + "description_string": "Greater block without hysteresis", + "composition": { + "element_list": [ + { + "component_clause": { + "type_specifier": "Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "u1" + }, + "description": { + "description_string": "Input u1", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -20 + }, + { + "x": -100, + "y": 20 + } + ] + } } } } } - } - ] + ] + } } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u2" - }, - "description": { - "description_string": "Input u2", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -100 - }, - { - "x": -100, - "y": -60 - } - ] + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "u2" + }, + "description": { + "description_string": "Input u2", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -100 + }, + { + "x": -100, + "y": -60 + } + ] + } } } } } - } - ] + ] + } } - } - ] + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "y" + }, + "description": { + "description_string": "Output y", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 140, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } } - }, - { - "component_clause": { - "type_specifier": "Interfaces.BooleanOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Output y", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "y", + "rhs": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ { - "x": 140, - "y": 20 + "arithmetic_expressions": [ + { + "name": "u1" + }, + { + "name": "u2" + } + ], + "relation_operator": ">" } ] } - } + ] } } } - ] + } } - } - ] + ] + } } - } - ], - "element_sections": [ - { - "equation_section": { - "equation": [ - { - "assignment_equation": { - "lhs": "y", - "rhs": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ { - "name": "u1" + "x": -100, + "y": 100 }, { - "name": "u2" + "x": 100, + "y": -100 } ], - "relation_operator": ">" - } - ] - } - ] - } - } - } - } - } - ] - } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 + "borderPattern": "BorderPattern.Raised", + "lineColor": { + "r": 0, + "g": 0, + "b": 0 }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 + "fillColor": { + "r": 210, + "g": 210, + "b": 210 }, - { - "x": 150, - "y": 110 + "fillPattern": "FillPattern.Solid", + "lineThickness": 5 + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 150 + }, + { + "x": 150, + "y": 110 + } + ], + "textString": "\"%name\"", + "textColor": { + "r": 0, + "g": 0, + "b": 255 } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 } } - } - ] + ] + } } } - } - ] + ] + } } } } - } - ] + ] + } } } } - } + ] }, { - "class_definition": { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "GreaterWithHysteresis", - "description_string": "Greater block without hysteresis", - "composition": { - "element_list": [ - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "h", - "modification": { - "class_modification": [ + "class_definition": [ + { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "GreaterWithHysteresis", + "description_string": "Greater block without hysteresis", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "h", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ], + "equal": true, + "expression": { + "simple_expression": "0" + } + } + }, + "description": { + "description_string": "Hysteresis", + "annotation": [ { "element_modification_or_replaceable": { - "final": true, "element_modification": { - "name": "min", + "name": "Evaluate", "modification": { "equal": true, "expression": { - "simple_expression": "0" + "simple_expression": "true" } } } } } - ], - "equal": true, - "expression": { - "simple_expression": "0" - } + ] } - }, - "description": { - "description_string": "Hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "component_list": [ - { - "declaration": { - "identifier": "pre_y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "false" + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "pre_y_start", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } } - } - }, - "description": { - "description_string": "Value of pre(y) at initial time", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" + }, + "description": { + "description_string": "Value of pre(y) at initial time", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "tab", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Advanced\"" + } } } } } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u1" - }, - "description": { - "description_string": "Input u1", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } ] } } } } - } - ] + ] + } } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u2" - }, - "description": { - "description_string": "Input u2", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -100 - }, - { - "x": -100, - "y": -60 - } - ] + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "u1" + }, + "description": { + "description_string": "Input u1", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -20 + }, + { + "x": -100, + "y": 20 + } + ] + } } } } } - } - ] + ] + } } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.BooleanOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Output y", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "u2" + }, + "description": { + "description_string": "Input u2", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -100 + }, + { + "x": -100, + "y": -60 + } + ] + } } } } } - } - ] + ] + } } - } - ] - } - } - ], - "element_sections": [ - { - "equation_section": { - "initial": true, - "equation": [ - { - "function_call_equation": { - "function_name": "assert", - "function_call_args": { - "function_argument": { - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "y" + }, + "description": { + "description_string": "Output y", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ { - "arithmetic_expressions": [ - { - "name": "h" - }, - { - "name": "0" - } - ], - "relation_operator": ">=" + "x": 100, + "y": -20 + }, + { + "x": 140, + "y": 20 } ] } - ] + } } } } - }, - "function_arguments": { + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "initial": true, + "equation": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { "function_argument": { "expression": { - "simple_expression": "\"Hysteresis must not be negative\"" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "h" + }, + { + "name": "0" + } + ], + "relation_operator": ">=" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Hysteresis must not be negative\"" + } } } } } - } - }, - { - "assignment_equation": { - "lhs": { - "function_call": { - "name": "pre", - "arguments": [ - { - "name": "y" - } - ] + }, + { + "assignment_equation": { + "lhs": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "y" + } + ] + } + }, + "rhs": { + "simple_expression": "pre_y_start" } - }, - "rhs": { - "simple_expression": "pre_y_start" } } - } - ] - } - }, - { - "equation_section": { - "equation": [ - { - "assignment_equation": { - "lhs": "y", - "rhs": { - "simple_expression": "([object Object])" + ] + } + }, + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "y", + "rhs": { + "simple_expression": "(not pre(y) and u1 > u2 or pre(y) and u1 > u2 -h)" + } } } - } - ] + ] + } } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "borderPattern": "BorderPattern.Raised", + "lineColor": { + "r": 0, + "g": 0, + "b": 0 }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 + "fillColor": { + "r": 210, + "g": 210, + "b": 210 }, - { - "x": 150, - "y": 110 + "fillPattern": "FillPattern.Solid", + "lineThickness": 5 + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 150 + }, + { + "x": 150, + "y": 110 + } + ], + "textString": "\"%name\"", + "textColor": { + "r": 0, + "g": 0, + "b": 255 } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -64, - "y": 62 - }, - { - "x": 62, - "y": 92 + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -64, + "y": 62 + }, + { + "x": 62, + "y": 92 + } + ], + "textString": ",textString=", + "textColor": { + "r": 0, + "g": 0, + "b": 0 } - ], - "textString": ",textString=", - "textColor": { - "r": 0, - "g": 0, - "b": 0 } } - } - ] + ] + } } } - } - ] + ] + } } } } - } - ] + ] + } } } } - } + ] } ] }, @@ -1729,6 +1750,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Greater.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo", "checksum": "323c778e971495a461755b36e08d76d6" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json index 0f36d3e0..34bd3840 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json @@ -214,6 +214,14 @@ "logical_or": [ { "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "pre(y)" + } + ] + }, { "arithmetic_expressions": [ { @@ -229,6 +237,13 @@ }, { "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "pre(y)" + } + ] + }, { "arithmetic_expressions": [ { @@ -789,6 +804,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo", "checksum": "e3bb40d8e0a542b39b1310b7a889da12" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json index 701ae0e4..b4ca9f5e 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json @@ -579,6 +579,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo", "checksum": "f33b07e1ddd42d601725f9eede990735" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Limiter.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Limiter.json index 93d4b99c..c2c7c741 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Limiter.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Limiter.json @@ -175,7 +175,7 @@ "name": "homotopy", "arguments": [ { - "name": "actual=smooth(0,noEvent(if [object Object] then uMax else if [object Object] then uMin else u)),simplified=u" + "name": "actual=smooth(0,noEvent(if u > uMax then uMax else if u < uMin then uMin else u)),simplified=u" } ] } @@ -556,6 +556,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Limiter.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Limiter.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Limiter.mo", "checksum": "a9cbb98cfe8949e478e93ac296c2d928" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Min.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Min.json index 7d7f164a..332a43f9 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Min.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Min.json @@ -334,6 +334,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Min.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Min.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Min.mo", "checksum": "93166341093dbcde4c81c2ee516a295d" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json index 102bdb03..79a90b84 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json @@ -309,6 +309,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo", "checksum": "acfd19b67d5d6de2a573fc864d420d79" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PID.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PID.json index 487f0b18..f9dc8d7a 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PID.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PID.json @@ -1967,7 +1967,24 @@ }, "condition_attribute": { "expression": { - "simple_expression": "not with_D" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "with_D" + } + ] + } + ] + } + ] + } + } } }, "description": { @@ -2467,7 +2484,24 @@ }, "condition_attribute": { "expression": { - "simple_expression": "not with_I" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "with_I" + } + ] + } + ] + } + ] + } + } } }, "description": { @@ -4653,113 +4687,25 @@ { "name": "Text", "attribute": { - "extent": [ - { - "x": -32, - "y": -22 - }, - { - "x": 68, - "y": -62 - } - ], - "textString": "\"P\"", - "visible": "([object Object])", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" + "visible": "(controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.P)" } }, { "name": "Text", "attribute": { - "extent": [ - { - "x": -26, - "y": -22 - }, - { - "x": 74, - "y": -62 - } - ], - "textString": "\"PI\"", - "visible": "([object Object])", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" + "visible": "(controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI)" } }, { "name": "Text", "attribute": { - "extent": [ - { - "x": -16, - "y": -22 - }, - { - "x": 88, - "y": -62 - } - ], - "textString": "\"P D\"", - "visible": "([object Object])", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" + "visible": "(controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD)" } }, { "name": "Text", "attribute": { - "extent": [ - { - "x": -14, - "y": -22 - }, - { - "x": 86, - "y": -62 - } - ], - "textString": "\"PID\"", - "visible": "([object Object])", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" + "visible": "(controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID)" } }, { @@ -5130,6 +5076,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/PID.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo", "checksum": "9df8c5f870bd4830e859773213e59dcb" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json index a2bfbe4a..60f43ea1 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json @@ -2122,7 +2122,24 @@ }, "condition_attribute": { "expression": { - "simple_expression": "not with_D" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "with_D" + } + ] + } + ] + } + ] + } + } } }, "description": { @@ -2208,7 +2225,24 @@ }, "condition_attribute": { "expression": { - "simple_expression": "not with_I" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "with_I" + } + ] + } + ] + } + ] + } + } } }, "description": { @@ -4909,113 +4943,25 @@ { "name": "Text", "attribute": { - "extent": [ - { - "x": -32, - "y": -22 - }, - { - "x": 68, - "y": -62 - } - ], - "textString": "\"P\"", - "visible": "([object Object])", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" + "visible": "(controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.P)" } }, { "name": "Text", "attribute": { - "extent": [ - { - "x": -26, - "y": -22 - }, - { - "x": 74, - "y": -62 - } - ], - "textString": "\"PI\"", - "visible": "([object Object])", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" + "visible": "(controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PI)" } }, { "name": "Text", "attribute": { - "extent": [ - { - "x": -16, - "y": -22 - }, - { - "x": 88, - "y": -62 - } - ], - "textString": "\"P D\"", - "visible": "([object Object])", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" + "visible": "(controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PD)" } }, { "name": "Text", "attribute": { - "extent": [ - { - "x": -14, - "y": -22 - }, - { - "x": 86, - "y": -62 - } - ], - "textString": "\"PID\"", - "visible": "([object Object])", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" + "visible": "(controllerType == Buildings.Controls.OBC.CDL.Types.SimpleController.PID)" } }, { @@ -5386,6 +5332,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo", "checksum": "721ce1bb44de4a2a0151873a4208e70a" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json index 45cee6eb..713ba604 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json @@ -387,6 +387,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.mo", "checksum": "4c2b726f0e9256ef8a977d61e097dc94" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Subtract.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Subtract.json index f67eacc5..1fcd623c 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Subtract.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Subtract.json @@ -416,6 +416,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Subtract.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Subtract.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Subtract.mo", "checksum": "c58481fe88eb0dd9797c97b6f1ce6a35" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Switch.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Switch.json index 5f3ce91a..2bfa1ecc 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Switch.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Switch.json @@ -559,6 +559,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Switch.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Switch.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Switch.mo", "checksum": "7ec2e7f470f2e2c01cdad0ba590713ed" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Equal.json b/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Equal.json index c3774065..dd3253c9 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Equal.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Equal.json @@ -393,6 +393,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Integers/Equal.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo", "checksum": "6ed015e965db594da3ea7128c250435e" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json b/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json index 00076acc..aa8c9df6 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json @@ -353,6 +353,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo", "checksum": "b6ddb71adcf641c588fbbbac670d26fb" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json index e6aea6a2..134448a7 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.mo", "checksum": "60968b727525188ed9398920679cf1c0" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json index ec85ab96..54db6ea9 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.mo", "checksum": "c78a9b5c56f73ed93e3f9540de58da55" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json index e11983e7..f8912a97 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.mo", "checksum": "90e89432f618ecfdadb8b0a8f0519eef" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json index ecb5cabf..59b1bff7 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.mo", "checksum": "ede894db694a80d4be6d85192821bb84" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json index ed7eec5a..b4a175c7 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/RealInput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealInput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealInput.mo", "checksum": "a30132f1d21aa2e2de2510da83ef73e5" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json index 4956828b..956f68b1 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json @@ -229,6 +229,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/RealOutput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.mo", "checksum": "406cab1b75e3627433076597d6aebd71" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/package.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/package.json index 22425437..635cc950 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/package.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/package.json @@ -220,6 +220,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/package.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/package.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/package.mo", "checksum": "14a2fca3933efe182b89261ed74bfe93" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/And.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/And.json index 426c371f..6ff843c8 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/And.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/And.json @@ -129,7 +129,30 @@ "assignment_equation": { "lhs": "y", "rhs": { - "simple_expression": "u1 and u2" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "u1" + } + ] + }, + { + "arithmetic_expressions": [ + { + "name": "u2" + } + ] + } + ] + } + ] + } + } } } } @@ -376,6 +399,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/And.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo", "checksum": "abb4a9c072fed007645ee9127a8371e1" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Not.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Not.json index f8483468..3625445d 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Not.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Not.json @@ -92,7 +92,24 @@ "assignment_equation": { "lhs": "y", "rhs": { - "simple_expression": "not u" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "u" + } + ] + } + ] + } + ] + } + } } } } @@ -292,6 +309,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/Not.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo", "checksum": "7dbcd7ef6c82dd1ea995367b1c5e1e6a" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Or.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Or.json index 9ae5c612..2f4ee93e 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Or.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Or.json @@ -129,7 +129,34 @@ "assignment_equation": { "lhs": "y", "rhs": { - "simple_expression": "u1 or u2" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "u1" + } + ] + } + ] + }, + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "u2" + } + ] + } + ] + } + ] + } + } } } } @@ -376,6 +403,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/Or.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo", "checksum": "670ac5112525c56af6333d275885e875" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json index d25d7d4b..3fba35bc 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json @@ -376,6 +376,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo", "checksum": "821d92c8b1c3a28aee8ea6c2bf037c7f" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json index 13f897a2..67829dd8 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json @@ -334,7 +334,24 @@ "if_elseif": [ { "condition": { - "simple_expression": "not delayOnInit" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "delayOnInit" + } + ] + } + ] + } + ] + } + } }, "then": { "simple_expression": "t_past" @@ -363,7 +380,24 @@ "if_elseif": [ { "condition": { - "simple_expression": "not ([object Object])" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "(delayOnInit and delayTime > 0)" + } + ] + } + ] + } + ] + } + } }, "then": { "simple_expression": "u" @@ -381,7 +415,24 @@ }, { "condition": { - "simple_expression": "not u" + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "not": true, + "arithmetic_expressions": [ + { + "name": "u" + } + ] + } + ] + } + ] + } + } }, "then": [ { @@ -730,6 +781,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo", "checksum": "4d4cddbe92a5451b488ada4eac810f92" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json index 6c9c325f..46b50390 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json @@ -2513,6 +2513,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo", "checksum": "d3d500d5e52ce2d22a6b926b26115822" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json index cb1acf2b..21fb305c 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json @@ -1184,6 +1184,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo", "checksum": "3f59d58e38a2801b2f79b0bcb847b674" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Types/SimpleController.json b/test/reference/json/Buildings/Controls/OBC/CDL/Types/SimpleController.json index f6135b44..a0f9e72e 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Types/SimpleController.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Types/SimpleController.json @@ -94,6 +94,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Types/SimpleController.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Types/SimpleController.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Types/SimpleController.mo", "checksum": "364ff20803d823cd1fd1233fcbb7a478" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Utilities/Assert.json b/test/reference/json/Buildings/Controls/OBC/CDL/Utilities/Assert.json index 1ecaeae0..78713d7d 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Utilities/Assert.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Utilities/Assert.json @@ -334,6 +334,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Utilities/Assert.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo", "checksum": "bcd142f74409ef17549d475796277044" } \ No newline at end of file diff --git a/test/reference/json/Modelica/Icons.json b/test/reference/json/Modelica/Icons.json new file mode 100644 index 00000000..42e7ee52 --- /dev/null +++ b/test/reference/json/Modelica/Icons.json @@ -0,0 +1,7263 @@ +{ + "within": "Modelica", + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Icons", + "description_string": "Library of icons", + "composition": { + "element_list": [ + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Information", + "description_string": "Icon for general information packages", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -4.167, + "y": -15 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": 7.5, + "y": 56.5 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n
This icon indicates classes containing only documentation, intended for general description of, e.g., concepts and features of a package.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "extends_clause": { + "name": "Icons.Package" + } + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Contact", + "description_string": "Icon for contact information", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 70 + }, + { + "x": 100, + "y": -72 + } + ], + "fillColor": { + "r": 235, + "g": 235, + "b": 235 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -72 + }, + { + "x": 100, + "y": -72 + }, + { + "x": 0, + "y": 20 + }, + { + "x": -100, + "y": -72 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 22, + "y": 0 + }, + { + "x": 100, + "y": 70 + }, + { + "x": 100, + "y": -72 + }, + { + "x": 22, + "y": 0 + } + ], + "fillColor": { + "r": 235, + "g": 235, + "b": 235 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 70 + }, + { + "x": 100, + "y": 70 + }, + { + "x": 0, + "y": -20 + }, + { + "x": -100, + "y": 70 + } + ], + "fillColor": { + "r": 241, + "g": 241, + "b": 241 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon shall be used for the contact information of the library developers.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ReleaseNotes", + "description_string": "Icon for release notes in documentation", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": -100 + }, + { + "x": -80, + "y": 100 + }, + { + "x": 0, + "y": 100 + }, + { + "x": 0, + "y": 20 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 80, + "y": -100 + }, + { + "x": -80, + "y": -100 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 0, + "y": 100 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 0, + "y": 20 + }, + { + "x": 0, + "y": 100 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 2, + "y": -12 + }, + { + "x": 50, + "y": -12 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -56, + "y": 2 + }, + { + "x": -28, + "y": -26 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 2, + "y": -60 + }, + { + "x": 50, + "y": -60 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -56, + "y": -46 + }, + { + "x": -28, + "y": -74 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates release notes and the revision history of a library.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "References", + "description_string": "Icon for external references", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -80 + }, + { + "x": -100, + "y": 60 + }, + { + "x": -80, + "y": 54 + }, + { + "x": -80, + "y": 80 + }, + { + "x": -40, + "y": 58 + }, + { + "x": -40, + "y": 100 + }, + { + "x": -10, + "y": 60 + }, + { + "x": 90, + "y": 60 + }, + { + "x": 100, + "y": 40 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -20, + "y": -100 + }, + { + "x": -100, + "y": -80 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + }, + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -20, + "y": -100 + }, + { + "x": -10, + "y": -80 + }, + { + "x": 90, + "y": -80 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -20, + "y": -100 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 90, + "y": -80 + }, + { + "x": 90, + "y": 60 + }, + { + "x": 100, + "y": 40 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 90, + "y": 60 + }, + { + "x": -10, + "y": 60 + }, + { + "x": -10, + "y": -80 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -10, + "y": 60 + }, + { + "x": -40, + "y": 100 + }, + { + "x": -40, + "y": -40 + }, + { + "x": -10, + "y": -80 + }, + { + "x": -10, + "y": 60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -20, + "y": -88 + }, + { + "x": -80, + "y": -60 + }, + { + "x": -80, + "y": 80 + }, + { + "x": -40, + "y": 58 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -20, + "y": -100 + }, + { + "x": -100, + "y": -80 + }, + { + "x": -100, + "y": 60 + }, + { + "x": -80, + "y": 54 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": 30 + }, + { + "x": 72, + "y": 30 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -10 + }, + { + "x": 70, + "y": -10 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -50 + }, + { + "x": 70, + "y": -50 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates a documentation class containing references to external documentation and literature.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "ExamplesPackage", + "description_string": "Icon for packages containing runnable examples", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -58, + "y": 46 + }, + { + "x": 42, + "y": -14 + }, + { + "x": -58, + "y": -74 + }, + { + "x": -58, + "y": 46 + } + ], + "origin": { + "x": 8, + "y": 14 + }, + "lineColor": { + "r": 78, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 78, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates a package that contains executable examples.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial model", + "class_specifier": { + "long_class_specifier": { + "identifier": "Example", + "description_string": "Icon for runnable examples", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -36, + "y": 60 + }, + { + "x": 64, + "y": 0 + }, + { + "x": -36, + "y": -60 + }, + { + "x": -36, + "y": 60 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates an example. The play button suggests that the example can be executed.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Package", + "description_string": "Icon for standard packages", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nStandard package icon.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "BasesPackage", + "description_string": "Icon for packages containing base classes", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -30, + "y": -30 + }, + { + "x": 30, + "y": 30 + } + ], + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon shall be used for a package/library that contains base models and classes, respectively.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "VariantsPackage", + "description_string": "Icon for package containing variants", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": -80 + }, + { + "x": -20, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 76, + "g": 76, + "b": 76 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": -80 + }, + { + "x": 60, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": 0 + }, + { + "x": -20, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon shall be used for a package/library that contains several variants of one component.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "InterfacesPackage", + "description_string": "Icon for packages containing interfaces", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -10, + "y": 70 + }, + { + "x": 10, + "y": 70 + }, + { + "x": 40, + "y": 20 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 80, + "y": -20 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 10, + "y": -70 + }, + { + "x": -10, + "y": -70 + } + ], + "origin": { + "x": 20, + "y": 0 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 20 + }, + { + "x": -60, + "y": 20 + }, + { + "x": -30, + "y": 70 + }, + { + "x": -10, + "y": 70 + }, + { + "x": -10, + "y": -70 + }, + { + "x": -30, + "y": -70 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -100, + "y": -20 + } + ], + "fillColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates packages containing interfaces.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "SourcesPackage", + "description_string": "Icon for packages containing sources", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -23.333, + "y": 30 + }, + { + "x": 46.667, + "y": 0 + }, + { + "x": -23.333, + "y": -30 + } + ], + "origin": { + "x": 23.3333, + "y": 0 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -70, + "y": -4.5 + }, + { + "x": 0, + "y": 4.5 + } + ], + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates a package which contains sources.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "SensorsPackage", + "description_string": "Icon for packages containing sensors", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "startAngle": 20, + "endAngle": 160, + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 60 + }, + { + "x": 0, + "y": 90 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -7, + "y": 0 + }, + { + "x": -3, + "y": 85 + }, + { + "x": 0, + "y": 90 + }, + { + "x": 3, + "y": 85 + }, + { + "x": 7, + "y": 0 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "rotation": -35, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates a package containing sensors.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "UtilitiesPackage", + "description_string": "Icon for utility packages", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15, + "y": 93.333 + }, + { + "x": -15, + "y": 68.333 + }, + { + "x": 0, + "y": 58.333 + }, + { + "x": 15, + "y": 68.333 + }, + { + "x": 15, + "y": 93.333 + }, + { + "x": 20, + "y": 93.333 + }, + { + "x": 25, + "y": 83.333 + }, + { + "x": 25, + "y": 58.333 + }, + { + "x": 10, + "y": 43.333 + }, + { + "x": 10, + "y": -41.667 + }, + { + "x": 25, + "y": -56.667 + }, + { + "x": 25, + "y": -76.667 + }, + { + "x": 10, + "y": -91.667 + }, + { + "x": 0, + "y": -91.667 + }, + { + "x": 0, + "y": -81.667 + }, + { + "x": 5, + "y": -81.667 + }, + { + "x": 15, + "y": -71.667 + }, + { + "x": 15, + "y": -61.667 + }, + { + "x": 5, + "y": -51.667 + }, + { + "x": -5, + "y": -51.667 + }, + { + "x": -15, + "y": -61.667 + }, + { + "x": -15, + "y": -71.667 + }, + { + "x": -5, + "y": -81.667 + }, + { + "x": 0, + "y": -81.667 + }, + { + "x": 0, + "y": -91.667 + }, + { + "x": -10, + "y": -91.667 + }, + { + "x": -25, + "y": -76.667 + }, + { + "x": -25, + "y": -56.667 + }, + { + "x": -10, + "y": -41.667 + }, + { + "x": -10, + "y": 43.333 + }, + { + "x": -25, + "y": 58.333 + }, + { + "x": -25, + "y": 83.333 + }, + { + "x": -20, + "y": 93.333 + } + ], + "origin": { + "x": 1.3835, + "y": -4.1418 + }, + "rotation": 45, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15, + "y": 87.273 + }, + { + "x": 15, + "y": 87.273 + }, + { + "x": 20, + "y": 82.273 + }, + { + "x": 20, + "y": 27.273 + }, + { + "x": 10, + "y": 17.273 + }, + { + "x": 10, + "y": 7.273 + }, + { + "x": 20, + "y": 2.273 + }, + { + "x": 20, + "y": -2.727 + }, + { + "x": 5, + "y": -2.727 + }, + { + "x": 5, + "y": -77.727 + }, + { + "x": 10, + "y": -87.727 + }, + { + "x": 5, + "y": -112.727 + }, + { + "x": -5, + "y": -112.727 + }, + { + "x": -10, + "y": -87.727 + }, + { + "x": -5, + "y": -77.727 + }, + { + "x": -5, + "y": -2.727 + }, + { + "x": -20, + "y": -2.727 + }, + { + "x": -20, + "y": 2.273 + }, + { + "x": -10, + "y": 7.273 + }, + { + "x": -10, + "y": 17.273 + }, + { + "x": -20, + "y": 27.273 + }, + { + "x": -20, + "y": 82.273 + } + ], + "origin": { + "x": 10.1018, + "y": 5.218 + }, + "rotation": -45, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates a package containing utility classes.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypesPackage", + "description_string": "Icon for packages containing type definitions", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 12.167, + "y": 65 + }, + { + "x": 14.167, + "y": 93 + }, + { + "x": 36.167, + "y": 89 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": 12.167, + "y": 65 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -12.167, + "y": -23 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 49.2597, + "y": 22.3327 + }, + { + "x": 31.2597, + "y": 24.3327 + }, + { + "x": 7.2597, + "y": 18.3327 + }, + { + "x": -26.7403, + "y": 10.3327 + }, + { + "x": -46.7403, + "y": 14.3327 + }, + { + "x": -48.7403, + "y": 6.3327 + }, + { + "x": -32.7403, + "y": 0.3327 + }, + { + "x": -6.7403, + "y": 4.3327 + }, + { + "x": 33.2597, + "y": 14.3327 + }, + { + "x": 49.2597, + "y": 14.3327 + }, + { + "x": 49.2597, + "y": 22.3327 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": 2.7403, + "y": 1.6673 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "FunctionsPackage", + "description_string": "Icon for packages containing functions", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "textString": "\"f\"", + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "IconsPackage", + "description_string": "Icon for packages containing icons", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -8.167, + "y": -17 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": -0.5, + "y": 56.5 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "InternalPackage", + "description_string": "Icon for an internal package (indicating that the package should not be directly utilized by user)", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ], + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -55, + "y": 55 + }, + { + "x": 55, + "y": -55 + } + ], + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -60, + "y": 14 + }, + { + "x": 60, + "y": -14 + } + ], + "rotation": 45, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\n\nThis icon shall be used for a package that contains internal classes not to be\ndirectly utilized by a user.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "MaterialPropertiesPackage", + "description_string": "Icon for package containing property classes", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -60, + "y": -60 + }, + { + "x": 60, + "y": 60 + } + ], + "lineColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "fillColor": { + "r": 204, + "g": 204, + "b": 204 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Sphere" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates a package that contains properties
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "RecordsPackage", + "description_string": "Icon for package containing records", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": -60 + }, + { + "x": 80, + "y": 60 + } + ], + "radius": 25, + "origin": { + "x": 0, + "y": -20 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 0 + }, + { + "x": 80, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 0 + }, + { + "x": 80, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 45 + }, + { + "x": 0, + "y": -75 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates a package that contains records
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "MaterialProperty", + "description_string": "Icon for property classes", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "fillColor": { + "r": 204, + "g": 204, + "b": 204 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Sphere" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates a property class.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "RotationalSensor", + "description_string": "Icon representing a round measurement device", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -70, + "y": -70 + }, + { + "x": 70, + "y": 70 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 70 + }, + { + "x": 0, + "y": 40 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 22.9, + "y": 32.8 + }, + { + "x": 40.2, + "y": 57.3 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -22.9, + "y": 32.8 + }, + { + "x": -40.2, + "y": 57.3 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 37.6, + "y": 13.7 + }, + { + "x": 65.8, + "y": 23.9 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -37.6, + "y": 13.7 + }, + { + "x": -65.8, + "y": 23.9 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12, + "y": -12 + }, + { + "x": 12, + "y": 12 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -5, + "y": 0 + }, + { + "x": -2, + "y": 60 + }, + { + "x": 0, + "y": 65 + }, + { + "x": 2, + "y": 60 + }, + { + "x": 5, + "y": 0 + } + ], + "rotation": -17.5, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -7, + "y": -7 + }, + { + "x": 7, + "y": 7 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon is designed for a rotational sensor model.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "TranslationalSensor", + "description_string": "Icon representing a linear measurement device", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -70, + "y": -60 + }, + { + "x": 70, + "y": 20 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 0, + "y": -40 + }, + { + "x": -10, + "y": -16 + }, + { + "x": 10, + "y": -16 + }, + { + "x": 0, + "y": -40 + } + ], + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": -16 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -70, + "y": 0 + }, + { + "x": 0, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -50, + "y": -40 + }, + { + "x": -50, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -30, + "y": -40 + }, + { + "x": -30, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -10, + "y": -40 + }, + { + "x": -10, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -40 + }, + { + "x": 10, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 30, + "y": -40 + }, + { + "x": 30, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 50, + "y": -40 + }, + { + "x": 50, + "y": -60 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon is designed for a translational sensor model.\n
\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial function", + "class_specifier": { + "long_class_specifier": { + "identifier": "Function", + "description_string": "Icon for functions", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 105 + }, + { + "x": 150, + "y": 145 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 108, + "g": 88, + "b": 49 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "textString": "\"f\"", + "lineColor": { + "r": 108, + "g": 88, + "b": 49 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicates Modelica functions.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial record", + "class_specifier": { + "long_class_specifier": { + "identifier": "Record", + "description_string": "Icon for records", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 60 + }, + { + "x": 150, + "y": 100 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -75 + }, + { + "x": 100, + "y": 75 + } + ], + "radius": 25, + "origin": { + "x": 0, + "y": -25 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 75 + }, + { + "x": 0, + "y": -75 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon is indicates a record.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "TypeComplex", + "value": { + "name": "Complex", + "description": { + "description_string": "Obsolete class kept only for backwards compatibility (use Complex instead)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"C\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nObsolete class, only kept for backwards compatibility.\nThe type classes TypeReal, TypeInteger etc. have been introduced to associate an icon to the\nbuilt-in base classes Real, Integer etc. Instead for Complex, an icon is already introduced in its\ndefinition (which is not possible for the built-in classes). Therefore, TypeComplex is just an alias\nto Complex and is therefore superfluous.\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete operator record - use Complex instead\"" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypeReal", + "description_string": "Icon for Real types", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Real" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"R\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon is designed for a Real type.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypeInteger", + "description_string": "Icon for Integer types", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Integer" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"I\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon is designed for an Integer type.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypeBoolean", + "description_string": "Icon for Boolean types", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Boolean" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"B\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon is designed for a Boolean type.\n
\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypeString", + "description_string": "Icon for String types", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "String" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"S\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon is designed for a String type.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "expandable connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "SignalBus", + "description_string": "Icon for signal bus", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false", + "initialScale": 0.2 + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -2 + }, + { + "x": 20, + "y": 2 + } + ], + "lineColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "lineThickness": 0.5 + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": 50 + }, + { + "x": 80, + "y": 50 + }, + { + "x": 100, + "y": 30 + }, + { + "x": 80, + "y": -40 + }, + { + "x": 60, + "y": -50 + }, + { + "x": -60, + "y": -50 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -100, + "y": 30 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -65, + "y": 15 + }, + { + "x": -55, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -5, + "y": 15 + }, + { + "x": 5, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 55, + "y": 15 + }, + { + "x": 65, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -35, + "y": -25 + }, + { + "x": -25, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 25, + "y": -25 + }, + { + "x": 35, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false", + "initialScale": 0.2 + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -40, + "y": 25 + }, + { + "x": 40, + "y": 25 + }, + { + "x": 50, + "y": 15 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 30, + "y": -25 + }, + { + "x": -30, + "y": -25 + }, + { + "x": -40, + "y": -20 + }, + { + "x": -50, + "y": 15 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -32.5, + "y": 7.5 + }, + { + "x": -27.5, + "y": 12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -2.5, + "y": 12.5 + }, + { + "x": 2.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 27.5, + "y": 12.5 + }, + { + "x": 32.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -17.5, + "y": -7.5 + }, + { + "x": -12.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 12.5, + "y": -7.5 + }, + { + "x": 17.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 70 + }, + { + "x": 150, + "y": 40 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon is designed for a signal bus connector.\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "expandable connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "SignalSubBus", + "description_string": "Icon for signal sub-bus", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -16, + "y": 2 + }, + { + "x": 16, + "y": 2 + } + ], + "color": { + "r": 255, + "g": 204, + "b": 51 + }, + "thickness": 0.5 + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 0 + }, + { + "x": 8, + "y": 8 + } + ], + "lineColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "lineThickness": 0.5 + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": 50 + }, + { + "x": 80, + "y": 50 + }, + { + "x": 100, + "y": 30 + }, + { + "x": 80, + "y": -40 + }, + { + "x": 60, + "y": -50 + }, + { + "x": -60, + "y": -50 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -100, + "y": 30 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -55, + "y": 15 + }, + { + "x": -45, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 45, + "y": 15 + }, + { + "x": 55, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -5, + "y": -25 + }, + { + "x": 5, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": 0 + }, + { + "x": 20, + "y": 4 + } + ], + "lineColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -40, + "y": 25 + }, + { + "x": 40, + "y": 25 + }, + { + "x": 50, + "y": 15 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 30, + "y": -25 + }, + { + "x": -30, + "y": -25 + }, + { + "x": -40, + "y": -20 + }, + { + "x": -50, + "y": 15 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -22.5, + "y": 7.5 + }, + { + "x": -17.5, + "y": 12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 17.5, + "y": 12.5 + }, + { + "x": 22.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -2.5, + "y": -7.5 + }, + { + "x": 2.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 70 + }, + { + "x": 150, + "y": 40 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon is designed for a sub-bus in a signal connector.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "UnderConstruction", + "description_string": "Icon for classes that are still under construction", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -100 + }, + { + "x": 0, + "y": 80 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -100, + "y": -100 + } + ], + "lineColor": { + "r": 255, + "g": 0, + "b": 0 + }, + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nLibrary developers can use this icon to indicate that the respective model is under construction.
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ObsoleteModel", + "description_string": "Icon for classes that are obsolete and will be removed in later versions", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -102, + "y": 102 + }, + { + "x": 102, + "y": -102 + } + ], + "lineColor": { + "r": 255, + "g": 0, + "b": 0 + }, + "pattern": "LinePattern.Dash", + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis partial class is intended to provide a default icon\nfor an obsolete model that will be removed from the\ncorresponding library in a future release.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Library", + "description_string": "This icon will be removed in future Modelica versions, use Package instead", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon of a package will be removed in future versions of the library.
\nThis icon will be removed in future versions of the Modelica Standard Library. Instead the icon Package shall be used.
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package - use Modelica.Icons.Package instead\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Library2", + "description_string": "This icon will be removed in future Modelica versions, use Package instead", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon of a package will be removed in future versions of the library.
\nThis icon will be removed in future versions of the Modelica Standard Library. Instead the icon Package shall be used.
\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package - use Modelica.Icons.Package instead\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "GearIcon", + "description_string": "This icon will be removed in future Modelica versions", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -90, + "y": -10 + }, + { + "x": -60, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -60, + "y": 10 + }, + { + "x": -60, + "y": 20 + }, + { + "x": -40, + "y": 40 + }, + { + "x": -40, + "y": -40 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -60, + "y": 10 + } + ], + "fillColor": { + "r": 192, + "g": 192, + "b": 192 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -40, + "y": -60 + }, + { + "x": 40, + "y": 60 + } + ], + "radius": 10, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 60, + "y": 20 + }, + { + "x": 40, + "y": 40 + }, + { + "x": 40, + "y": -40 + }, + { + "x": 60, + "y": -20 + }, + { + "x": 60, + "y": 20 + } + ], + "fillColor": { + "r": 192, + "g": 192, + "b": 192 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 60, + "y": -10 + }, + { + "x": 90, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -60, + "y": -90 + }, + { + "x": -50, + "y": -90 + }, + { + "x": -20, + "y": -30 + }, + { + "x": 20, + "y": -30 + }, + { + "x": 48, + "y": -90 + }, + { + "x": 60, + "y": -90 + }, + { + "x": 60, + "y": -100 + }, + { + "x": -60, + "y": -100 + }, + { + "x": -60, + "y": -90 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon of a gearbox will be removed in future versions of the library. Please use one of the icons of Mechanics.Rotational.Icons instead.\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class - use Modelica.Mechanics.Rotational.Icons instead\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "MotorIcon", + "description_string": "This icon will be removed in future Modelica versions.", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -50 + }, + { + "x": 30, + "y": 50 + } + ], + "radius": 10, + "lineColor": { + "r": 82, + "g": 0, + "b": 2 + }, + "fillColor": { + "r": 252, + "g": 37, + "b": 57 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -90 + }, + { + "x": -90, + "y": -90 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -10, + "y": -20 + }, + { + "x": 20, + "y": -90 + }, + { + "x": 30, + "y": -90 + }, + { + "x": 30, + "y": -100 + }, + { + "x": -100, + "y": -100 + }, + { + "x": -100, + "y": -90 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 30, + "y": -10 + }, + { + "x": 90, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis icon of an electrical motor model will be removed in future versions of the library. Please use a locally defined icon in your user defined libraries and applications.\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Info", + "description_string": "This icon will be removed in future Modelica versions.", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -4.167, + "y": -15 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": 7.5, + "y": 56.5 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon indicate classes containing only documentation, intended for general description of e.g., concepts and features of a package.
\nThis icon will be removed in future versions of the Modelica Standard Library. Instead the icon Information shall be used.
\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class - use Modelica.Icons.Information instead\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -8.167, + "y": -17 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": -0.5, + "y": 56.5 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis package contains definitions for the graphical layout of components which may be used in different libraries. The icons can be utilized by inheriting them in the desired class using "extends" or by directly copying the "icon" layer.
\n\n\nCopyright © 1998-2019, Modelica Association and contributors\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "modelicaFile": "Modelica/Icons.mo", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "checksum": "4ae2d96649622e3bb48c8ef317657524" +} \ No newline at end of file diff --git a/test/reference/json/Modelica/SIunits.json b/test/reference/json/Modelica/SIunits.json new file mode 100644 index 00000000..731fb356 --- /dev/null +++ b/test/reference/json/Modelica/SIunits.json @@ -0,0 +1,29739 @@ +{ + "within": "Modelica", + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "SIunits", + "description_string": "Library of type and unit definitions based on SI units according to ISO 31-1992", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "UsersGuide", + "description_string": "User's Guide of SIunits Library", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + }, + { + "class_definition": [ + { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "HowToUseSIunits", + "description_string": "How to use SIunits", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nWhen implementing a Modelica model, every variable needs to\nbe declared. Physical variables should be declared with a unit.\nThe basic approach in Modelica is that the unit attribute of\na variable is the unit in which the equations are written,\nfor example:\n
\n\nmodel MassOnGround\n parameter Real m(quantity=\\\"Mass\\\", unit=\\\"kg\\\") \\\"Mass\\\";\n parameter Real f(quantity=\\\"Force\\\", unit=\\\"N\\\") \\\"Driving force\\\";\n Real s(unit=\\\"m\\\") \\\"Position of mass\\\";\n Real v(unit=\\\"m/s\\\") \\\"Velocity of mass\\\";\n equation\n der(s) = v;\n m*der(v) = f;\n end MassOnGround;\n\n\n
\nThis means that the equations in the equation section are only correct\nfor the specified units. A different issue is the user interface, i.e.,\nin which unit the variable is presented to the user in graphical\nuser interfaces, both for input (e.g., parameter menu), as well as\nfor output (e.g., in the plot window). Preferably, the Modelica tool\nshould provide a list of units from which the user can select, e.g.,\n\\\"m\\\", \\\"cm\\\", \\\"km\\\", \\\"inch\\\" for quantity \\\"Length\\\". When storing the value in\nthe model as a Modelica modifier, it has to be converted to the unit defined\nin the declaration. Additionally, the unit used in the graphical\nuser interface has to be stored. In order to have a standardized way\nof doing this, Modelica provides the following three attributes\nfor a variable of type Real:\n
\n\n\nNote, a unit, such as \\\"N.m\\\", is not sufficient to define uniquely the\nphysical quantity, since, e.g., \\\"N.m\\\" might be either \\\"torque\\\" or\n\\\"energy\\\". The \\\"quantity\\\" attribute might therefore be used by a tool\nto select the corresponding menu from which the user can select\na unit for the corresponding variable.\n
\n\n\nFor example, after providing a value for \\\"m\\\" and \\\"f\\\" in a parameter\nmenu of an instance of MassOnGround, a tool might generate the following code:\n
\n\n\n MassOnGround myObject(m(displayUnit=\\\"g\\\")=2, f=3);\n\n\n
\nThe meaning is that in the equations a value of \\\"2\\\" is used\nand that in the graphical user interface a value of \\\"2000\\\" should be used,\ntogether with the unit \\\"g\\\" from the unit set \\\"Mass\\\" (= the quantity name).\nNote, according to the Modelica specification\na tool might ignore the \\\"displayUnit\\\" attribute.\n
\n\n\nIn order to help the Modelica model developer, the Modelica.SIunits\nlibrary provides about 450 predefined type names,\ntogether with values for the attributes quantity, unit and sometimes\ndisplayUnit and min. The unit is always selected as SI-unit according to the\nISO standard. The type and the quantity names are the\nquantity names used in the ISO standard. \\\"quantity\\\" and \\\"unit\\\" are defined\nas \\\"final\\\" in order that they cannot be modified. Attributes \\\"displayUnit\\\"\nand \\\"min\\\" can, however, be changed in a model via a modification. The example above,\nmight therefore be alternatively also defined as:\n
\n\nmodel MassOnGround\n parameter Modelica.SIunits.Mass m \\\"Mass\\\";\n parameter Modelica.SIunits.Force f \\\"Driving force\\\";\n ...\n end MassOnGround;\n\n\n
\nor in a short hand notation as\n
\n\n\n model MassOnGround\n import SI = Modelica.SIunits;\n parameter SI.Mass m \\\"Mass\\\";\n parameter SI.Force f \\\"Driving force\\\";\n ...\n end MassOnGround;\n\n\n
\nFor some often\nused Non SI-units (like hour), some additional type definitions are\npresent as Modelica.SIunits.Conversions.NonSIunits. If this is not sufficient,\nthe user has to define its own types or use the attributes directly\nin the declaration as in the example at the beginning.\n
\n\n\nComplex units are also included in Modelica.SIunits. A complex unit is declared as:\n
\n\n model QuasiStationaryMachine\n parameter Modelica.SIunits.ComplexPower SNominal = Complex(10000,4400)\n \\\"Nominal complex power\\\";\n ...\n end QuasiStationaryMachine;\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Conventions", + "description_string": "Conventions", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n
The following conventions are used in package SIunits:
\n\n Chapter 1: Space and Time\n Chapter 2: Periodic and Related Phenomena\n Chapter 3: Mechanics\n Chapter 4: Heat\n Chapter 5: Electricity and Magnetism\n Chapter 6: Light and Related Electro-Magnetic Radiations\n Chapter 7: Acoustics\n Chapter 8: Physical Chemistry\n Chapter 9: Atomic and Nuclear Physics\n Chapter 10: Nuclear Reactions and Ionizing Radiations\n Chapter 11: (not defined in ISO 31-1992)\n Chapter 12: Characteristic Numbers\n Chapter 13: Solid State Physics\n\n
This package is based on the following references\n
\n\n\nMartin Otter
\nDeutsches Zentrum für Luft- und Raumfahrt e.V. (DLR)
\nInstitut für Systemdynamik und Regelungstechnik (DLR-SR)
\nForschungszentrum Oberpfaffenhofen
\nD-82234 Wessling
\nGermany
\nemail: Martin.Otter@dlr.de\n
\nAstrid Jaschinski, Hubertus Tummescheit and Christian Schweiger\ncontributed to the implementation of this package.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nLibrary SIunits is a free Modelica package providing\npredefined types, such as Mass,\nLength, Time, based on the international standard\non units.
\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Icons", + "description_string": "Icons for SIunits", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.IconsPackage" + } + }, + { + "class_definition": [ + { + "class_prefixes": "partial function", + "class_specifier": { + "long_class_specifier": { + "identifier": "Conversion", + "description_string": "Base icon for conversion functions", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "lineColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -90, + "y": 0 + }, + { + "x": 30, + "y": 0 + } + ], + "color": { + "r": 191, + "g": 0, + "b": 0 + } + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 90, + "y": 0 + }, + { + "x": 30, + "y": 20 + }, + { + "x": 30, + "y": -20 + }, + { + "x": 90, + "y": 0 + } + ], + "lineColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -115, + "y": 155 + }, + { + "x": 115, + "y": 105 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Conversions", + "description_string": "Conversion functions to/from non SI units and type definitions of non SI units", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "NonSIunits", + "description_string": "Type definitions of non SI units", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temperature_degC", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"degC\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute temperature in degree Celsius (for relative temperature use SIunits.TemperatureDifference)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temperature_degF", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"degF\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute temperature in degree Fahrenheit (for relative temperature use SIunits.TemperatureDifference)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temperature_degRk", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"degRk\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute temperature in degree Rankine (for relative temperature use SIunits.TemperatureDifference)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Angle_deg", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Angle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"deg\"" + } + } + } + } + } + ], + "description": { + "description_string": "Angle in degree" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularVelocity_rpm", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularVelocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rev/min\"" + } + } + } + } + } + ], + "description": { + "description_string": "Angular velocity in revolutions per minute. Alias unit names that are outside of the SI system: rpm, r/min, rev/min" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Velocity_kmh", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"km/h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Velocity in kilometres per hour" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Time_day", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"d\"" + } + } + } + } + } + ], + "description": { + "description_string": "Time in days" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Time_hour", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Time in hours" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Time_minute", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"min\"" + } + } + } + } + } + ], + "description": { + "description_string": "Time in minutes" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Volume_litre", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Volume\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"l\"" + } + } + } + } + } + ], + "description": { + "description_string": "Volume in litres" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricCharge_Ah", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A.h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Electric charge in Ampere hours" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Energy_Wh", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W.h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Energy in Watt hours" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Energy_kWh", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kW.h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Energy in kilo watt hours" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Pressure_bar", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pressure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"bar\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute pressure in bar" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassFlowRate_gps", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"g/s\"" + } + } + } + } + } + ], + "description": { + "description_string": "Mass flow rate in gram per second" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FirstOrderTemperaturCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FirstOrderTemperatureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm/degC\"" + } + } + } + } + } + ], + "description": { + "description_string": "Obsolete type, use LinearTemperatureCoefficientResistance instead!", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type - use Modelica.SIunits.LinearTemperatureCoefficientResistance instead\"" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SecondOrderTemperaturCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SecondOrderTemperatureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm/degC2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Obsolete type, use QuadraticTemperatureCoefficientResistance instead!", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type - use Modelica.SIunits.QuadraticTemperatureCoefficientResistance instead\"" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Area_cm", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"cm2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Area in cm" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PerArea_cm", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PerArea\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/cm2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Per Area in cm" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Area_cmPerVoltageSecond", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AreaPerVoltageSecond\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"cm2/(V.s)\"" + } + } + } + } + } + ], + "description": { + "description_string": "Area in cm per voltage second" + } + } + } + } + } + ] + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis package provides predefined types, such as Angle_deg (angle in\ndegree), AngularVelocity_rpm (angular velocity in revolutions per\nminute) or Temperature_degF (temperature in degree Fahrenheit),\nwhich are in common use but are not part of the international standard on\nunits according to ISO 31-1992 \\\"General principles concerning quantities,\nunits and symbols\\\" and ISO 1000-1992 \\\"SI units and recommendations for\nthe use of their multiples and of certain other units\\\".
\nIf possible, the types in this package should not be used. Use instead\ntypes of package Modelica.SIunits. For more information on units, see also\nthe book of Francois Cardarelli Scientific Unit Conversion - A\nPractical Guide to Metrication (Springer 1997).
\nSome units, such as Temperature_degC/Temp_C are both defined in\nModelica.SIunits and in Modelica.Conversions.NonSIunits. The reason is that these\ndefinitions have been placed erroneously in Modelica.SIunits although they\nare not SIunits. For backward compatibility, these type definitions are\nstill kept in Modelica.SIunits.
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -105, + "y": -86.8518 + }, + { + "x": 75, + "y": -16.8518 + } + ], + "textString": "\"[km/h]\"", + "origin": { + "x": 15, + "y": 51.8518 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_unit1", + "description_string": "Change the unit of a Real number to unit=\\\"1\\\"", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "r" + }, + "description": { + "description_string": "Real number" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "result", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + }, + "description": { + "description_string": "Real number r with unit=\\\"1\\\"" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": "r" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\n\nSIunits.Conversions.to_unit1(r);\n
\nThe function call \\\"Conversions.to_unit1(r)
\\\" returns r with unit=\\\"1\\\".\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": 86 + }, + { + "x": 32, + "y": 50 + } + ], + "textString": "\"any\"", + "horizontalAlignment": "TextAlignment.Left" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -36, + "y": -52 + }, + { + "x": 86, + "y": -88 + } + ], + "textString": "\"1\"", + "horizontalAlignment": "TextAlignment.Right" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_degC", + "description_string": "Convert from Kelvin to degCelsius", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Temperature_degC", + "component_list": [ + { + "declaration": { + "identifier": "Celsius" + }, + "description": { + "description_string": "Celsius value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Celsius" + } + ], + "value": { + "simple_expression": "Kelvin +Modelica.Constants.T_zero" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"K\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"degC\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_degC", + "description_string": "Convert from degCelsius to Kelvin", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Temperature_degC", + "component_list": [ + { + "declaration": { + "identifier": "Celsius" + }, + "description": { + "description_string": "Celsius value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Kelvin" + } + ], + "value": { + "simple_expression": "Celsius -Modelica.Constants.T_zero" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"degC\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"K\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_degF", + "description_string": "Convert from Kelvin to degFahrenheit", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Temperature_degF", + "component_list": [ + { + "declaration": { + "identifier": "Fahrenheit" + }, + "description": { + "description_string": "Fahrenheit value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Fahrenheit" + } + ], + "value": { + "simple_expression": "(Kelvin +Modelica.Constants.T_zero)*(9/5) +32" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"K\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"degF\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_degF", + "description_string": "Convert from degFahrenheit to Kelvin", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Temperature_degF", + "component_list": [ + { + "declaration": { + "identifier": "Fahrenheit" + }, + "description": { + "description_string": "Fahrenheit value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Kelvin" + } + ], + "value": { + "simple_expression": "(Fahrenheit -32)*(5/9) -Modelica.Constants.T_zero" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"degF\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"K\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"degF\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_degRk", + "description_string": "Convert from Kelvin to degRankine", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Temperature_degRk", + "component_list": [ + { + "declaration": { + "identifier": "Rankine" + }, + "description": { + "description_string": "Rankine value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Rankine" + } + ], + "value": { + "simple_expression": "(9/5)*Kelvin" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"K\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -32 + }, + { + "x": -18, + "y": -100 + } + ], + "textString": "\"degRk\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_degRk", + "description_string": "Convert from degRankine to Kelvin", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Temperature_degRk", + "component_list": [ + { + "declaration": { + "identifier": "Rankine" + }, + "description": { + "description_string": "Rankine value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Kelvin" + } + ], + "value": { + "simple_expression": "(5/9)*Rankine" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -8, + "y": 100 + }, + { + "x": -100, + "y": 42 + } + ], + "textString": "\"degRk\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"K\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_deg", + "description_string": "Convert from radian to degree", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Angle", + "component_list": [ + { + "declaration": { + "identifier": "radian" + }, + "description": { + "description_string": "radian value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Angle_deg", + "component_list": [ + { + "declaration": { + "identifier": "degree" + }, + "description": { + "description_string": "degree value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "degree" + } + ], + "value": { + "simple_expression": "(180/Modelica.Constants.pi)*radian" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 10, + "y": 100 + }, + { + "x": -100, + "y": 46 + } + ], + "textString": "\"rad\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -44 + }, + { + "x": -10, + "y": -100 + } + ], + "textString": "\"deg\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_deg", + "description_string": "Convert from degree to radian", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Angle_deg", + "component_list": [ + { + "declaration": { + "identifier": "degree" + }, + "description": { + "description_string": "degree value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Angle", + "component_list": [ + { + "declaration": { + "identifier": "radian" + }, + "description": { + "description_string": "radian value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "radian" + } + ], + "value": { + "simple_expression": "(Modelica.Constants.pi/180)*degree" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 4, + "y": 100 + }, + { + "x": -102, + "y": 46 + } + ], + "textString": "\"deg\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -32 + }, + { + "x": -18, + "y": -100 + } + ], + "textString": "\"rad\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_rpm", + "description_string": "Convert from radian per second to revolutions per minute", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "AngularVelocity", + "component_list": [ + { + "declaration": { + "identifier": "rs" + }, + "description": { + "description_string": "radian per second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.AngularVelocity_rpm", + "component_list": [ + { + "declaration": { + "identifier": "rpm" + }, + "description": { + "description_string": "revolutions per minute value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "rpm" + } + ], + "value": { + "simple_expression": "(30/Modelica.Constants.pi)*rs" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 30, + "y": 100 + }, + { + "x": -100, + "y": 50 + } + ], + "textString": "\"rad/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -52 + }, + { + "x": -40, + "y": -98 + } + ], + "textString": "\"rev/min\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_rpm", + "description_string": "Convert from revolutions per minute to radian per second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.AngularVelocity_rpm", + "component_list": [ + { + "declaration": { + "identifier": "rpm" + }, + "description": { + "description_string": "revolutions per minute value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "AngularVelocity", + "component_list": [ + { + "declaration": { + "identifier": "rs" + }, + "description": { + "description_string": "radian per second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "rs" + } + ], + "value": { + "simple_expression": "(Modelica.Constants.pi/30)*rpm" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 14, + "y": 100 + }, + { + "x": -102, + "y": 56 + } + ], + "textString": "\"rev/min\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": -32, + "y": -102 + } + ], + "textString": "\"rad/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_kmh", + "description_string": "Convert from metre per second to kilometre per hour", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Velocity", + "component_list": [ + { + "declaration": { + "identifier": "ms" + }, + "description": { + "description_string": "metre per second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Velocity_kmh", + "component_list": [ + { + "declaration": { + "identifier": "kmh" + }, + "description": { + "description_string": "kilometre per hour value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "kmh" + } + ], + "value": { + "simple_expression": "3.6*ms" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 8, + "y": 100 + }, + { + "x": -100, + "y": 58 + } + ], + "textString": "\"m/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": -16, + "y": -100 + } + ], + "textString": "\"km/h\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_kmh", + "description_string": "Convert from kilometre per hour to metre per second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Velocity_kmh", + "component_list": [ + { + "declaration": { + "identifier": "kmh" + }, + "description": { + "description_string": "kilometre per hour value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Velocity", + "component_list": [ + { + "declaration": { + "identifier": "ms" + }, + "description": { + "description_string": "metre per second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "ms" + } + ], + "value": { + "simple_expression": "kmh/3.6" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 10, + "y": 100 + }, + { + "x": -100, + "y": 56 + } + ], + "textString": "\"km/h\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": -20, + "y": -100 + } + ], + "textString": "\"m/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_day", + "description_string": "Convert from second to day", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Time_day", + "component_list": [ + { + "declaration": { + "identifier": "day" + }, + "description": { + "description_string": "day value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "day" + } + ], + "value": { + "simple_expression": "s/86400" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -6, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -48 + }, + { + "x": -10, + "y": -98 + } + ], + "textString": "\"day\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_day", + "description_string": "Convert from day to second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Time_day", + "component_list": [ + { + "declaration": { + "identifier": "day" + }, + "description": { + "description_string": "day value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "s" + } + ], + "value": { + "simple_expression": "86400*day" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 10, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"day\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -54 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_hour", + "description_string": "Convert from second to hour", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Time_hour", + "component_list": [ + { + "declaration": { + "identifier": "hour" + }, + "description": { + "description_string": "hour value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "hour" + } + ], + "value": { + "simple_expression": "s/3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 12, + "y": 100 + }, + { + "x": -100, + "y": 50 + } + ], + "textString": "\"s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": -20, + "y": -100 + } + ], + "textString": "\"hour\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_hour", + "description_string": "Convert from hour to second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Time_hour", + "component_list": [ + { + "declaration": { + "identifier": "hour" + }, + "description": { + "description_string": "hour value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "s" + } + ], + "value": { + "simple_expression": "3600*hour" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 12, + "y": 100 + }, + { + "x": -100, + "y": 58 + } + ], + "textString": "\"hour\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": 16, + "y": -100 + } + ], + "textString": "\"s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_minute", + "description_string": "Convert from second to minute", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Time_minute", + "component_list": [ + { + "declaration": { + "identifier": "minute" + }, + "description": { + "description_string": "minute value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "minute" + } + ], + "value": { + "simple_expression": "s/60" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -26, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -54 + }, + { + "x": -20, + "y": -100 + } + ], + "textString": "\"min\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_minute", + "description_string": "Convert from minute to second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Time_minute", + "component_list": [ + { + "declaration": { + "identifier": "minute" + }, + "description": { + "description_string": "minute value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "s" + } + ], + "value": { + "simple_expression": "60*minute" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 26, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"min\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -46 + }, + { + "x": 0, + "y": -100 + } + ], + "textString": "\"s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_litre", + "description_string": "Convert from cubic metre to litre", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Volume", + "component_list": [ + { + "declaration": { + "identifier": "m3" + }, + "description": { + "description_string": "cubic metre value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Volume_litre", + "component_list": [ + { + "declaration": { + "identifier": "litre" + }, + "description": { + "description_string": "litre value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "litre" + } + ], + "value": { + "simple_expression": "1000*m3" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": 0, + "y": -100 + } + ], + "textString": "\"litre\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 6, + "y": 100 + }, + { + "x": -100, + "y": 56 + } + ], + "textString": "\"m3\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_litre", + "description_string": "Convert from litre to cubic metre", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Volume_litre", + "component_list": [ + { + "declaration": { + "identifier": "litre" + }, + "description": { + "description_string": "litre value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Volume", + "component_list": [ + { + "declaration": { + "identifier": "m3" + }, + "description": { + "description_string": "cubic metre value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "m3" + } + ], + "value": { + "simple_expression": "litre/1000" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -4, + "y": 100 + }, + { + "x": -100, + "y": 62 + } + ], + "textString": "\"litre\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": -6, + "y": -100 + } + ], + "textString": "\"m3\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_Ah", + "description_string": "Convert from Ampere hours to Coulomb", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Modelica.SIunits.Conversions.NonSIunits.ElectricCharge_Ah", + "component_list": [ + { + "declaration": { + "identifier": "AmpereHour" + }, + "description": { + "description_string": "Ampere hours" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Modelica.SIunits.ElectricCharge", + "component_list": [ + { + "declaration": { + "identifier": "Coulomb" + }, + "description": { + "description_string": "Coulomb" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Coulomb" + } + ], + "value": { + "simple_expression": "AmpereHour*3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -2, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"Ah\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -46 + }, + { + "x": 0, + "y": -100 + } + ], + "textString": "\"C\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_Ah", + "description_string": "Convert from Coulomb to Ampere hours", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Modelica.SIunits.ElectricCharge", + "component_list": [ + { + "declaration": { + "identifier": "Coulomb" + }, + "description": { + "description_string": "Coulomb" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Modelica.SIunits.Conversions.NonSIunits.ElectricCharge_Ah", + "component_list": [ + { + "declaration": { + "identifier": "AmpereHour" + }, + "description": { + "description_string": "Ampere hours" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "AmpereHour" + } + ], + "value": { + "simple_expression": "Coulomb/3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -18, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"C\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -48 + }, + { + "x": 2, + "y": -100 + } + ], + "textString": "\"Ah\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_Wh", + "description_string": "Convert from Watt hour to Joule", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Energy_Wh", + "component_list": [ + { + "declaration": { + "identifier": "WattHour" + }, + "description": { + "description_string": "Watt hour" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Modelica.SIunits.Energy", + "component_list": [ + { + "declaration": { + "identifier": "Joule" + }, + "description": { + "description_string": "Joule" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Joule" + } + ], + "value": { + "simple_expression": "WattHour*3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 54 + } + ], + "textString": "\"Wh\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -38 + }, + { + "x": 4, + "y": -100 + } + ], + "textString": "\"J\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_Wh", + "description_string": "Convert from Joule to Watt hour", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Modelica.SIunits.Energy", + "component_list": [ + { + "declaration": { + "identifier": "Joule" + }, + "description": { + "description_string": "Joule" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Energy_Wh", + "component_list": [ + { + "declaration": { + "identifier": "WattHour" + }, + "description": { + "description_string": "Watt hour" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "WattHour" + } + ], + "value": { + "simple_expression": "Joule/3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -30, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"J\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -46 + }, + { + "x": -14, + "y": -100 + } + ], + "textString": "\"Wh\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_kWh", + "description_string": "Convert from Joule to kilo Watt hour", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Energy", + "component_list": [ + { + "declaration": { + "identifier": "J" + }, + "description": { + "description_string": "Joule value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Energy_kWh", + "component_list": [ + { + "declaration": { + "identifier": "kWh" + }, + "description": { + "description_string": "kWh value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "kWh" + } + ], + "value": { + "simple_expression": "J/3600000" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 54 + } + ], + "textString": "\"J\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": -10, + "y": -100 + } + ], + "textString": "\"kWh\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_kWh", + "description_string": "Convert from kilo Watt hour to Joule", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Energy_kWh", + "component_list": [ + { + "declaration": { + "identifier": "kWh" + }, + "description": { + "description_string": "kWh value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Energy", + "component_list": [ + { + "declaration": { + "identifier": "J" + }, + "description": { + "description_string": "Joule value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "J" + } + ], + "value": { + "simple_expression": "3600000*kWh" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 12, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"kWh\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -44 + }, + { + "x": 12, + "y": -100 + } + ], + "textString": "\"J\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_bar", + "description_string": "Convert from Pascal to bar", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Pressure", + "component_list": [ + { + "declaration": { + "identifier": "Pa" + }, + "description": { + "description_string": "Pascal value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Pressure_bar", + "component_list": [ + { + "declaration": { + "identifier": "bar" + }, + "description": { + "description_string": "bar value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "bar" + } + ], + "value": { + "simple_expression": "Pa/100000" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -12, + "y": 100 + }, + { + "x": -100, + "y": 56 + } + ], + "textString": "\"Pa\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 98, + "y": -52 + }, + { + "x": -4, + "y": -100 + } + ], + "textString": "\"bar\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_bar", + "description_string": "Convert from bar to Pascal", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Pressure_bar", + "component_list": [ + { + "declaration": { + "identifier": "bar" + }, + "description": { + "description_string": "bar value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Pressure", + "component_list": [ + { + "declaration": { + "identifier": "Pa" + }, + "description": { + "description_string": "Pascal value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Pa" + } + ], + "value": { + "simple_expression": "100000*bar" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": 12, + "y": -100 + } + ], + "textString": "\"Pa\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 2, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"bar\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_gps", + "description_string": "Convert from kilogram per second to gram per second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "MassFlowRate", + "component_list": [ + { + "declaration": { + "identifier": "kgps" + }, + "description": { + "description_string": "kg/s value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.MassFlowRate_gps", + "component_list": [ + { + "declaration": { + "identifier": "gps" + }, + "description": { + "description_string": "g/s value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "gps" + } + ], + "value": { + "simple_expression": "1000*kgps" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -12, + "y": 100 + }, + { + "x": -100, + "y": 60 + } + ], + "textString": "\"kg/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -46 + }, + { + "x": -6, + "y": -100 + } + ], + "textString": "\"g/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_gps", + "description_string": "Convert from gram per second to kilogram per second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.MassFlowRate_gps", + "component_list": [ + { + "declaration": { + "identifier": "gps" + }, + "description": { + "description_string": "g/s value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "MassFlowRate", + "component_list": [ + { + "declaration": { + "identifier": "kgps" + }, + "description": { + "description_string": "kg/s value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "kgps" + } + ], + "value": { + "simple_expression": "gps/1000" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -8, + "y": 100 + }, + { + "x": -100, + "y": 54 + } + ], + "textString": "\"g/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -44 + }, + { + "x": -10, + "y": -100 + } + ], + "textString": "\"kg/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_Hz", + "description_string": "Convert from Hz to rad/s", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "SIunits.Frequency", + "component_list": [ + { + "declaration": { + "identifier": "f" + }, + "description": { + "description_string": "frequency" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "SIunits.AngularVelocity", + "component_list": [ + { + "declaration": { + "identifier": "w" + }, + "description": { + "description_string": "angular velocity" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "w" + } + ], + "value": { + "simple_expression": "2*Modelica.Constants.pi*f" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 2, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"Hz\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": 12, + "y": -100 + } + ], + "textString": "\"1/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_Hz", + "description_string": "Convert from rad/s to Hz", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "SIunits.AngularVelocity", + "component_list": [ + { + "declaration": { + "identifier": "w" + }, + "description": { + "description_string": "angular velocity" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "SIunits.Frequency", + "component_list": [ + { + "declaration": { + "identifier": "f" + }, + "description": { + "description_string": "frequency" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "f" + } + ], + "value": { + "simple_expression": "w/(2*Modelica.Constants.pi)" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -52 + }, + { + "x": -2, + "y": -100 + } + ], + "textString": "\"Hz\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -12, + "y": 100 + }, + { + "x": -100, + "y": 56 + } + ], + "textString": "\"1/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_cm2", + "description_string": "Convert from square metre to square centimetre", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Area", + "component_list": [ + { + "declaration": { + "identifier": "m2" + }, + "description": { + "description_string": "square metre value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Area_cm", + "component_list": [ + { + "declaration": { + "identifier": "cm2" + }, + "description": { + "description_string": "square centimetre value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "cm2" + } + ], + "value": { + "simple_expression": "10000*m2" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 58 + } + ], + "textString": "\"m/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": -18, + "y": -100 + } + ], + "textString": "\"cm2\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_cm2", + "description_string": "Convert from square centimetre to square metre", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Area_cm", + "component_list": [ + { + "declaration": { + "identifier": "cm2" + }, + "description": { + "description_string": "square centimetre value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Area", + "component_list": [ + { + "declaration": { + "identifier": "m2" + }, + "description": { + "description_string": "square metre value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "m2" + } + ], + "value": { + "simple_expression": "0.0001*cm2" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 2, + "y": 100 + }, + { + "x": -100, + "y": 58 + } + ], + "textString": "\"cm2\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": -16, + "y": -98 + } + ], + "textString": "\"m/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "partial function", + "class_specifier": { + "long_class_specifier": { + "identifier": "ConversionIcon", + "description_string": "This icon will be removed in future Modelica versions.", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "lineColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -90, + "y": 0 + }, + { + "x": 30, + "y": 0 + } + ], + "color": { + "r": 191, + "g": 0, + "b": 0 + } + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 90, + "y": 0 + }, + { + "x": 30, + "y": 20 + }, + { + "x": 30, + "y": -20 + }, + { + "x": 90, + "y": 0 + } + ], + "lineColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -115, + "y": 155 + }, + { + "x": 115, + "y": 105 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\n Modelica.SIunits.Velocity v = {3,2,1};\n Real direction[3](unit=\\\"1\\\") = to_unit1(v); // Automatically vectorized call of to_unit1\n
\nThis icon of a conversion symbol will be removed in future versions of the library. Instead the icon Modelica.SIunits.Icons.Conversion shall be used.\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete function - use Modelica.SIunits.Icons.Conversion instead\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis package provides conversion functions from the non SI Units\ndefined in package Modelica.SIunits.Conversions.NonSIunits to the\ncorresponding SI Units defined in package Modelica.SIunits and vice\nversa. It is recommended to use these functions in the following\nway (note, that all functions have one Real input and one Real output\nargument):
\n\n import SI = Modelica.SIunits;\n import Modelica.SIunits.Conversions.*;\n ...\n parameter SI.Temperature T = from_degC(25); // convert 25 degree Celsius to Kelvin\n parameter SI.Angle phi = from_deg(180); // convert 180 degree to radian\n parameter SI.AngularVelocity w = from_rpm(3600); // convert 3600 revolutions per minutes\n // to radian per seconds\n\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Angle", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Angle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"deg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SolidAngle", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SolidAngle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"sr\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Length", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PathLength", + "value": { + "name": "Length" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Position", + "value": { + "name": "Length" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Distance", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Breadth", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Height", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Thickness", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Radius", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Diameter", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Area", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Volume", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Volume\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Time", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Duration", + "value": { + "name": "Time" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularVelocity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularVelocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularAcceleration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularAcceleration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad/s2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Velocity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Acceleration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Acceleration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Period", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Frequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Frequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Hz\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Wavelength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wavelength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Wavelenght", + "value": { + "name": "Wavelength" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "WaveNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"WaveNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CircularWaveNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CircularWaveNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AmplitudeLevelDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AmplitudeLevelDifference\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PowerLevelDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PowerLevelDifference\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DampingCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DampingCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LogarithmicDecrement", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LogarithmicDecrement\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/S\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PhaseCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PhaseCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PropagationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PropagationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Damping", + "value": { + "name": "DampingCoefficient" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Mass", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Density", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Density\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m3\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"g/cm3\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificVolume", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificVolume\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/kg\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SurfaceDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SurfaceDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m2\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Momentum", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Momentum\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg.m/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Impulse", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Impulse\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularMomentum", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularMomentum\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg.m2/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularImpulse", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularImpulse\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m.s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MomentOfInertia", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MomentOfInertia\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg.m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Inertia", + "value": { + "name": "MomentOfInertia" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Force", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Force\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TranslationalSpringConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TranslationalSpringConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TranslationalDampingConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TranslationalDampingConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.s/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Weight", + "value": { + "name": "Force" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Torque", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Torque\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricalTorqueConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricalTorqueConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m/A\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MomentOfForce", + "value": { + "name": "Torque" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ImpulseFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ImpulseFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularImpulseFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularImpulseFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RotationalSpringConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RotationalSpringConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m/rad\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RotationalDampingConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RotationalDampingConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m.s/rad\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Pressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pressure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"bar\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AbsolutePressure", + "value": { + "name": "Pressure", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nominal", + "modification": { + "equal": true, + "expression": { + "simple_expression": "100000" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PressureDifference", + "value": { + "name": "Pressure" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BulkModulus", + "value": { + "name": "AbsolutePressure" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Stress", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NormalStress", + "value": { + "name": "Stress" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ShearStress", + "value": { + "name": "Stress" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Strain", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Strain\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearStrain", + "value": { + "name": "Strain" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ShearStrain", + "value": { + "name": "Strain" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VolumeStrain", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VolumeStrain\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PoissonNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PoissonNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ModulusOfElasticity", + "value": { + "name": "Stress" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ShearModulus", + "value": { + "name": "Stress" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SecondMomentOfArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SecondMomentOfArea\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m4\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SecondPolarMomentOfArea", + "value": { + "name": "SecondMomentOfArea" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SectionModulus", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SectionModulus\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CoefficientOfFriction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CoefficientOfFriction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DynamicViscosity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DynamicViscosity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa.s\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "KinematicViscosity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"KinematicViscosity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/s\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SurfaceTension", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SurfaceTension\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Work", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Work\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Energy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PotentialEnergy", + "value": { + "name": "Energy" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "KineticEnergy", + "value": { + "name": "Energy" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Power", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyFlowRate", + "value": { + "name": "Power" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnthalpyFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnthalpyFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Efficiency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Efficiency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VolumeFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VolumeFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MomentumFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MomentumFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularMomentumFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularMomentumFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermodynamicTemperature", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"K\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "start", + "modification": { + "equal": true, + "expression": { + "simple_expression": "288.15" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nominal", + "modification": { + "equal": true, + "expression": { + "simple_expression": "300" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"degC\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute temperature (use type TemperatureDifference for relative temperatures)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temp_K", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TemperatureDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"K\"" + } + } + } + } + } + ], + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temp_C", + "value": { + "name": "SIunits.Conversions.NonSIunits.Temperature_degC" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TemperatureSlope", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TemperatureSlope\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"K/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearTemperatureCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearTemperatureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "QuadraticTemperatureCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"QuadraticTemperatureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearExpansionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearExpansionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CubicExpansionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CubicExpansionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativePressureCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativePressureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PressureCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PressureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Compressibility", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Compressibility\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/Pa\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IsothermalCompressibility", + "value": { + "name": "Compressibility" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IsentropicCompressibility", + "value": { + "name": "Compressibility" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Heat", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HeatFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HeatFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HeatFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DensityOfHeatFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DensityOfHeatFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalConductivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalConductivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/(m.K)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CoefficientOfHeatTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CoefficientOfHeatTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/(m2.K)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SurfaceCoefficientOfHeatTransfer", + "value": { + "name": "CoefficientOfHeatTransfer" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalInsulance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalInsulance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2.K/W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalResistance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalResistance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"K/W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalConductance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalConductance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalDiffusivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalDiffusivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HeatCapacity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HeatCapacity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHeatCapacity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificHeatCapacity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(kg.K)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHeatCapacityAtConstantPressure", + "value": { + "name": "SpecificHeatCapacity" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHeatCapacityAtConstantVolume", + "value": { + "name": "SpecificHeatCapacity" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHeatCapacityAtSaturation", + "value": { + "name": "SpecificHeatCapacity" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RatioOfSpecificHeatCapacities", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RatioOfSpecificHeatCapacities\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IsentropicExponent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"IsentropicExponent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Entropy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Entropy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EntropyFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EntropyFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(K.s)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificEntropy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificEntropy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(kg.K)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "InternalEnergy", + "value": { + "name": "Heat" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Enthalpy", + "value": { + "name": "Heat" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HelmholtzFreeEnergy", + "value": { + "name": "Heat" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GibbsFreeEnergy", + "value": { + "name": "Heat" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificEnergy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificInternalEnergy", + "value": { + "name": "SpecificEnergy" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificEnthalpy", + "value": { + "name": "SpecificEnergy" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHelmholtzFreeEnergy", + "value": { + "name": "SpecificEnergy" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificGibbsFreeEnergy", + "value": { + "name": "SpecificEnergy" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassieuFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassieuFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PlanckFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PlanckFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerDensityByEnthalpy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg.s2/m5\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerDensityByPressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s2/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerDensityByTemperature", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/(m3.K)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerEnthalpyByPressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m.s2/kg2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerEnergyByDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m3/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerEnergyByPressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m.s2/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerPressureByDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa.m3/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerPressureByTemperature", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricCurrent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricCurrent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Current", + "value": { + "name": "ElectricCurrent" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurrentSlope", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CurrentSlope\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricCharge", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Charge", + "value": { + "name": "ElectricCharge" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VolumeDensityOfCharge", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VolumeDensityOfCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/m3\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SurfaceDensityOfCharge", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SurfaceDensityOfCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/m2\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricFieldStrength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricFieldStrength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricPotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Voltage", + "value": { + "name": "ElectricPotential" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PotentialDifference", + "value": { + "name": "ElectricPotential" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectromotiveForce", + "value": { + "name": "ElectricPotential" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VoltageSecond", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VoltageSecond\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V.s\"" + } + } + } + } + } + ], + "description": { + "description_string": "Voltage second" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VoltageSlope", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VoltageSlope\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricFluxDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricFluxDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Capacitance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Capacitance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"F\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CapacitancePerArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CapacitancePerArea\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"F/m2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Capacitance per area" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Permittivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Permittivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"F/m\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PermittivityOfVacuum", + "value": { + "name": "Permittivity" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativePermittivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativePermittivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricSusceptibility", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricSusceptibility\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricPolarization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricPolarization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Electrization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Electrization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricDipoleMoment", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricDipoleMoment\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C.m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurrentDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CurrentDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearCurrentDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearCurrentDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticFieldStrength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticFieldStrength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticPotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticPotentialDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagnetomotiveForce", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagnetomotiveForce\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurrentLinkage", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CurrentLinkage\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticFluxDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticFluxDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"T\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wb\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticVectorPotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticVectorPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wb/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Inductance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Inductance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"H\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SelfInductance", + "value": { + "name": "Inductance", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MutualInductance", + "value": { + "name": "Inductance" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CouplingCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CouplingCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LeakageCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LeakageCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Permeability", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Permeability\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"H/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PermeabilityOfVacuum", + "value": { + "name": "Permeability" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativePermeability", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativePermeability\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticSusceptibility", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticSusceptibility\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectromagneticMoment", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectromagneticMoment\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A.m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticDipoleMoment", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticDipoleMoment\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wb.m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Magnetization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Magnetization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticPolarization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticPolarization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"T\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectromagneticEnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PoyntingVector", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PoyntingVector\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Resistance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Resistance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Resistivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Resistivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm.m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Conductivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Conductivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"S/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Reluctance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Reluctance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"H-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Permeance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Permeance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"H\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PhaseDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Angle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"deg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Impedance", + "value": { + "name": "Resistance" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ModulusOfImpedance", + "value": { + "name": "Resistance" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Reactance", + "value": { + "name": "Resistance" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "QualityFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"QualityFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LossAngle", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Angle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"deg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Conductance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Conductance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"S\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Admittance", + "value": { + "name": "Conductance" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ModulusOfAdmittance", + "value": { + "name": "Conductance" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Susceptance", + "value": { + "name": "Conductance" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "InstantaneousPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivePower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ApparentPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V.A\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReactivePower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"var\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PowerFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PowerFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearTemperatureCoefficientResistance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearTemperatureCoefficientResistance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm/K\"" + } + } + } + } + } + ], + "description": { + "description_string": "First Order Temperature Coefficient" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "QuadraticTemperatureCoefficientResistance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"QuadraticTemperatureCoefficientResistance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm/K2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Second Order Temperature Coefficient" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Transconductance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Transconductance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/V2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "InversePotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"InversePotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/V\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricalForceConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricalForceConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N/A\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantEnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralRadiantEnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralRadiantEnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m4\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantEnergyFluenceRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RadiantEnergyFluenceRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantIntensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RadiantIntensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/sr\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Radiance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Radiance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/(sr.m2)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantExtiance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RadiantExtiance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Irradiance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Irradiance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Emissivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Emissivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralEmissivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralEmissivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DirectionalSpectralEmissivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DirectionalSpectralEmissivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousIntensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousIntensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"cd\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "QuantityOfLight", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"QuantityOfLight\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm.s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Luminance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Luminance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"cd/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousExitance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousExitance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Illuminance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Illuminance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lx\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LightExposure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LightExposure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lx.s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousEfficacy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousEfficacy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm/W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralLuminousEfficacy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralLuminousEfficacy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm/W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousEfficiency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousEfficiency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralLuminousEfficiency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralLuminousEfficiency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CIESpectralTristimulusValues", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CIESpectralTristimulusValues\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ChromaticityCoordinates", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CromaticityCoordinates\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralAbsorptionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralAbsorptionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralReflectionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralReflectionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralTransmissionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralTransmissionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralRadianceFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralRadianceFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearAttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearAbsorptionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearAbsorptionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarAbsorptionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarAbsorptionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/mol\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RefractiveIndex", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RefractiveIndex\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StaticPressure", + "value": { + "name": "AbsolutePressure" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundPressure", + "value": { + "name": "StaticPressure" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundParticleDisplacement", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundParticleVelocity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundParticleAcceleration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Acceleration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VelocityOfSound", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundEnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundIntensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SoundIntensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AcousticImpedance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AcousticImpedance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa.s/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificAcousticImpedance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificAcousticImpedance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa.s/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MechanicalImpedance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MechanicalImpedance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.s/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundPressureLevel", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SoundPressureLevel\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundPowerLevel", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SoundPowerLevel\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DissipationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DissipationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReflectionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ReflectionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TransmissionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TransmissionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AcousticAbsorptionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AcousticAbsorptionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundReductionIndex", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SoundReductionIndex\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EquivalentAbsorptionArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReverberationTime", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LoudnessLevel", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LoudnessLevel\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"phon\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Loudness", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Loudness\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"sone\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LoundnessLevel", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LoundnessLevel\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"phon\"" + } + } + } + } + } + ], + "description": { + "description_string": "Obsolete type, use LoudnessLevel instead!", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type - use Modelica.SIunits.LoudnessLevel instead\"" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Loundness", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Loundness\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"sone\"" + } + } + } + } + } + ], + "description": { + "description_string": "Obsolete type, use Loudness instead!", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type - use Modelica.SIunits.Loudness instead\"" + } + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeAtomicMass", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeAtomicMass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeMolecularMass", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeMolecularMass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NumberOfMolecules", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NumberOfMolecules\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AmountOfSubstance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AmountOfSubstance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarMass", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarMass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/mol\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarVolume", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarVolume\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/mol\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarEnergy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/mol\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nominal", + "modification": { + "equal": true, + "expression": { + "simple_expression": "20000" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarInternalEnergy", + "value": { + "name": "MolarEnergy" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarHeatCapacity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarHeatCapacity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(mol.K)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarEntropy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarEntropy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(mol.K)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarEnthalpy", + "value": { + "name": "MolarEnergy" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NumberDensityOfMolecules", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NumberDensityOfMolecules\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolecularConcentration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolecularConcentration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassConcentration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassConcentration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "max", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Concentration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Concentration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VolumeFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VolumeFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MoleFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MoleFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "max", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ChemicalPotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ChemicalPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/mol\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AbsoluteActivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AbsoluteActivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PartialPressure", + "value": { + "name": "AbsolutePressure" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Fugacity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Fugacity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StandardAbsoluteActivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StandardAbsoluteActivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivityCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ActivityCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivityOfSolute", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ActivityOfSolute\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivityCoefficientOfSolute", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ActivityCoefficientOfSolute\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StandardAbsoluteActivityOfSolute", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StandardAbsoluteActivityOfSolute\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivityOfSolvent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ActivityOfSolvent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "OsmoticCoefficientOfSolvent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"OsmoticCoefficientOfSolvent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StandardAbsoluteActivityOfSolvent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StandardAbsoluteActivityOfSolvent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "OsmoticPressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pressure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"bar\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StoichiometricNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StoichiometricNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Affinity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Affinity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/mol\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassOfMolecule", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricDipoleMomentOfMolecule", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricDipoleMomentOfMolecule\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C.m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricPolarizabilityOfAMolecule", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricPolarizabilityOfAMolecule\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C.m2/V\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MicrocanonicalPartitionFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MicrocanonicalPartitionFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CanonicalPartitionFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CanonicalPartitionFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GrandCanonicalPartitionFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GrandCanonicalPartitionFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolecularPartitionFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolecularPartitionFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StatisticalWeight", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StatisticalWeight\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanFreePath", + "value": { + "name": "Length" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DiffusionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DiffusionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalDiffusionRatio", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalDiffusionRatio\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalDiffusionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalDiffusionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalDiffusionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalDiffusionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElementaryCharge", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElementaryCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ChargeNumberOfIon", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ChargeNumberOfIon\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FaradayConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FaradayConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/mol\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IonicStrength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"IonicStrength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DegreeOfDissociation", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DegreeOfDissociation\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectrolyticConductivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectrolyticConductivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"S/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarConductivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarConductivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"S.m2/mol\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TransportNumberOfIonic", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TransportNumberOfIonic\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ProtonNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ProtonNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NucleonNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NucleonNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AtomicMassConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassOfElectron", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassOfProton", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassOfNeutron", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HartreeEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticMomentOfParticle", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticMomentOfParticle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A.m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BohrMagneton", + "value": { + "name": "MagneticMomentOfParticle" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NuclearMagneton", + "value": { + "name": "MagneticMomentOfParticle" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GyromagneticCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GyromagneticCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A.m2/(J.s)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GFactorOfAtom", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GFactorOfAtom\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GFactorOfNucleus", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GFactorOfNucleus\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LarmorAngularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NuclearPrecessionAngularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CyclotronAngularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NuclearQuadrupoleMoment", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NuclearQuadrupoleMoment\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NuclearRadius", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectronRadius", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComptonWavelength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassExcess", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassDefect", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeMassExcess", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeMassExcess\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeMassDefect", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeMassDefect\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PackingFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PackingFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BindingFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"BindingFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanLife", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LevelWidth", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LevelWidth\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Activity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Activity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Bq\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificActivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificActivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Bq/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DecayConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DecayConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HalfLife", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AlphaDisintegrationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MaximumBetaParticleEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BetaDisintegrationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReactionEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ResonanceEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/sr\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralAngularCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralAngularCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/(sr.J)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MacroscopicCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MacroscopicCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalMacroscopicCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalMacroscopicCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ParticleFluence", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ParticleFluence\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ParticleFluenceRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ParticleFluenceRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1.m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyFluence", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyFluence\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyFluenceRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyFluenceRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurrentDensityOfParticles", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CurrentDensityOfParticles\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-2.s-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassAttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassAttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarAttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarAttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/mol\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AtomicAttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AtomicAttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HalfThickness", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalLinearStoppingPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalLinearStoppingPower\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalAtomicStoppingPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalAtomicStoppingPower\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalMassStoppingPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalMassStoppingPower\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m2/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanLinearRange", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanMassRange", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MeanMassRange\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearIonization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearIonization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalIonization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalIonization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Mobility", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mobility\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/(V.s)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IonNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"IonNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RecombinationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RecombinationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronSpeed", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronFluenceRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronFluenceRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1.m-2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalNeutronSourceDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalNeutronSourceDesity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1.m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SlowingDownDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SlowingDownDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1.m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ResonanceEscapeProbability", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ResonanceEscapeProbability\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Lethargy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Lethargy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SlowingDownArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DiffusionArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MigrationArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SlowingDownLength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SLength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DiffusionLength", + "value": { + "name": "Length" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MigrationLength", + "value": { + "name": "Length" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronYieldPerFission", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronYieldPerFission\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronYieldPerAbsorption", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronYieldPerAbsorption\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FastFissionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FastFissionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalUtilizationFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalUtilizationFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NonLeakageProbability", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NonLeakageProbability\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Reactivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Reactivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReactorTimeConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyImparted", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanEnergyImparted", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificEnergyImparted", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificEnergy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AbsorbedDose", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AbsorbedDose\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DoseEquivalent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DoseEquivalent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Sv\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AbsorbedDoseRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AbsorbedDoseRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearEnergyTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearEnergyTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Kerma", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Kerma\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "KermaRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"KermaRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassEnergyTransferCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassEnergyTransferCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Exposure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Exposure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/kg\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ExposureRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ExposureRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/(kg.s)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReynoldsNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ReynoldsNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EulerNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EulerNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FroudeNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FroudeNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GrashofNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GrashofNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "WeberNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"WeberNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MachNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MachNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "KnudsenNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"KnudsenNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StrouhalNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StrouhalNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FourierNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FourierNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PecletNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PecletNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RayleighNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RayleighNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NusseltNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NusseltNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BiotNumber", + "value": { + "name": "NusseltNumber" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StantonNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StantonNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FourierNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FourierNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PecletNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PecletNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GrashofNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GrashofNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NusseltNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NusseltNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StantonNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StantonNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PrandtlNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PrandtlNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SchmidtNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SchmidtNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LewisNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LewisNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticReynoldsNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticReynoldsNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AlfvenNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AlfvenNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HartmannNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HartmannNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CowlingNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CowlingNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BraggAngle", + "value": { + "name": "Angle" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "OrderOfReflexion", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"OrderOfReflexion\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ShortRangeOrderParameter", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RangeOrderParameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LongRangeOrderParameter", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RangeOrderParameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DebyeWallerFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DebyeWallerFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CircularWavenumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CircularWavenumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FermiCircularWavenumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FermiCircularWavenumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DebyeCircularWavenumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DebyeCircularWavenumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DebyeCircularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DebyeTemperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralConcentration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralConcentration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s/m3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GrueneisenParameter", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GrueneisenParameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MadelungConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MadelungConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DensityOfStates", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DensityOfStates\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J-1/m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ResidualResistivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ResidualResistivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm.m\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LorenzCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LorenzCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V2/K2\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HallCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HallCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/C\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermoelectromotiveForce", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermoelectromotiveForce\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SeebeckCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SeebeckCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PeltierCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PeltierCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThomsonCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThomsonCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/K\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RichardsonConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RichardsonConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/(m2.K2)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FermiEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GapEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DonorIonizationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AcceptorIonizationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FermiTemperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectronNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectronNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HoleNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HoleNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IntrinsicNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"IntrinsicNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DonorNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DonorNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AcceptorNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AcceptorNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EffectiveMass", + "value": { + "name": "Mass" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MobilityRatio", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MobilityRatio\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelaxationTime", + "value": { + "name": "Time" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CarrierLifeTime", + "value": { + "name": "Time" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ExchangeIntegral", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurieTemperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeelTemperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LondonPenetrationDepth", + "value": { + "name": "Length" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CoherenceLength", + "value": { + "name": "Length" + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LandauGinzburgParameter", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LandauGinzburgParameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FluxiodQuantum", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FluxiodQuantum\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wb\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TimeAging", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/Modelica.SIunits.Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/s\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ChargeAging", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/Modelica.SIunits.ElectricCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/(A.s)\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PerUnit", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DimensionlessRatio", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexCurrent", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Current", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex current" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Current", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex current" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical current" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexCurrentSlope", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.CurrentSlope", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex current slope" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.CurrentSlope", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex current slope" + } + } + } + } + } + ], + "description": { + "description_string": "Complex current slope" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexCurrentDensity", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.CurrentDensity", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex current density" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.CurrentDensity", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex current density" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical current density" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexElectricPotential", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricPotential", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Imaginary part of complex electric potential" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricPotential", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Real part of complex electrical potential" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric potential" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexPotentialDifference", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.PotentialDifference", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex potential difference" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.PotentialDifference", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex potential difference" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric potential difference" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexVoltage", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Voltage", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Imaginary part of complex voltage" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Voltage", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Real part of complex voltage" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical voltage" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexVoltageSlope", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.VoltageSlope", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex voltage slope" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.VoltageSlope", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex voltage slope" + } + } + } + } + } + ], + "description": { + "description_string": "Complex voltage slope" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexElectricFieldStrength", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFieldStrength", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex electric field strength" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFieldStrength", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex electric field strength" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric field strength" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexElectricFluxDensity", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFluxDensity", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex electric flux density" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFluxDensity", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex electric flux density" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric flux density" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexElectricFlux", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFlux", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex electric flux" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFlux", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex electric flux" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric flux" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticFieldStrength", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFieldStrength", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic field strength" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFieldStrength", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic field strength" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic field strength" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticPotential", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticPotential", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic potential" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticPotential", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic potential" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic potential" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticPotentialDifference", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticPotentialDifference", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic potential difference" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticPotentialDifference", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic potential difference" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic potential difference" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagnetomotiveForce", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagnetomotiveForce", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetomotive force" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagnetomotiveForce", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetomotive force" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetomotive force" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticFluxDensity", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFluxDensity", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic flux density" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFluxDensity", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic flux density" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic flux density" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticFlux", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFlux", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic flux" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFlux", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic flux" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic flux" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexReluctance", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Reluctance", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex reluctance" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Reluctance", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex reluctance" + } + } + } + } + } + ], + "description": { + "description_string": "Complex reluctance", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n
\nSince magnetic material properties like reluctance and permeance often are anisotropic resp. salient,\na special operator instead of multiplication (compare: tensor vs. vector) is required.\nModelica.Magnetic.FundamentalWave uses a\nspecial record Salient\nwhich is only valid in the rotor-fixed coordinate system.\n
\n\nNote: To avoid confusion, no magnetic material properties should be defined as Complex units.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexImpedance", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Resistance", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex impedance (resistance)" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Reactance", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex impedance (reactance)" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical impedance" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexAdmittance", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Conductance", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex admittance (conductance)" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Susceptance", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex admittance (susceptance)" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical admittance" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexPower", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "ActivePower", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex power (active power)" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "ReactivePower", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex power (reactive power)" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical power" + } + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexPerUnit", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "PerUnit", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex per unit quantity" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "PerUnit", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex per unit quantity" + } + } + } + } + } + ], + "description": { + "description_string": "Complex per unit" + } + } + } + } + } + ] + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": -40 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -55, + "y": 50 + }, + { + "x": -52.5, + "y": 62.5 + }, + { + "x": -65, + "y": 60 + }, + { + "x": -65, + "y": 65 + }, + { + "x": -35, + "y": 77.5 + }, + { + "x": -32.5, + "y": 60 + }, + { + "x": -50, + "y": 0 + }, + { + "x": -50, + "y": 0 + }, + { + "x": -30, + "y": 15 + }, + { + "x": -20, + "y": 27.5 + }, + { + "x": -32.5, + "y": 27.5 + }, + { + "x": -32.5, + "y": 27.5 + }, + { + "x": -32.5, + "y": 32.5 + }, + { + "x": -32.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 27.5 + }, + { + "x": 2.5, + "y": 27.5 + }, + { + "x": -7.5, + "y": 27.5 + }, + { + "x": -30, + "y": 7.5 + }, + { + "x": -30, + "y": 7.5 + }, + { + "x": -25, + "y": -25 + }, + { + "x": -17.5, + "y": -28.75 + }, + { + "x": -10, + "y": -25 + }, + { + "x": -5, + "y": -26.25 + }, + { + "x": -5, + "y": -32.5 + }, + { + "x": -16.25, + "y": -41.25 + }, + { + "x": -31.25, + "y": -43.75 + }, + { + "x": -40, + "y": -33.75 + }, + { + "x": -45, + "y": -5 + }, + { + "x": -45, + "y": -5 + }, + { + "x": -52.5, + "y": -10 + }, + { + "x": -52.5, + "y": -10 + }, + { + "x": -60, + "y": -40 + }, + { + "x": -60, + "y": -40 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 87.5, + "y": 30 + }, + { + "x": 62.5, + "y": 30 + }, + { + "x": 62.5, + "y": 30 + }, + { + "x": 55, + "y": 33.75 + }, + { + "x": 36.25, + "y": 35 + }, + { + "x": 16.25, + "y": 25 + }, + { + "x": 7.5, + "y": 6.25 + }, + { + "x": 11.25, + "y": -7.5 + }, + { + "x": 22.5, + "y": -12.5 + }, + { + "x": 22.5, + "y": -12.5 + }, + { + "x": 6.25, + "y": -22.5 + }, + { + "x": 6.25, + "y": -35 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 45, + "y": -48.75 + }, + { + "x": 47.5, + "y": -61.25 + }, + { + "x": 32.5, + "y": -70 + }, + { + "x": 12.5, + "y": -65 + }, + { + "x": 7.5, + "y": -51.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 6.25, + "y": -41.25 + }, + { + "x": -6.25, + "y": -50 + }, + { + "x": -3.75, + "y": -68.75 + }, + { + "x": 30, + "y": -76.25 + }, + { + "x": 65, + "y": -62.5 + }, + { + "x": 63.75, + "y": -35 + }, + { + "x": 27.5, + "y": -26.25 + }, + { + "x": 22.5, + "y": -20 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 27.5, + "y": -2.5 + }, + { + "x": 28.75, + "y": 11.25 + }, + { + "x": 36.25, + "y": 27.5 + }, + { + "x": 47.5, + "y": 30 + }, + { + "x": 53.75, + "y": 22.5 + }, + { + "x": 51.25, + "y": 8.75 + }, + { + "x": 45, + "y": -6.25 + }, + { + "x": 35, + "y": -11.25 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 43.75, + "y": -16.25 + }, + { + "x": 65, + "y": -6.25 + }, + { + "x": 72.5, + "y": 10 + }, + { + "x": 70, + "y": 20 + }, + { + "x": 70, + "y": 20 + }, + { + "x": 80, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis package provides predefined types, such as Mass,\nAngle, Time, based on the international standard\non units, e.g.,\n
\n\ntype Angle = Real(final quantity = \\\"Angle\\\",\n final unit = \\\"rad\\\",\n displayUnit = \\\"deg\\\");\n\n\n
\nSome of the types are derived SI units that are utilized in package Modelica\n(such as ComplexCurrent, which is a complex number where both the real and imaginary\npart have the SI unit Ampere).\n
\n\n\nFurthermore, conversion functions from non SI-units to SI-units and vice versa\nare provided in subpackage\nConversions.\n
\n\n\nFor an introduction how units are used in the Modelica standard library\nwith package SIunits, have a look at:\nHow to use SIunits.\n
\n\n\nCopyright © 1998-2019, Modelica Association and contributors\n
\n\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "revisions", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nIn this section, an overview of the most important features\nof this library is given.\n
\n\nA StateGraph is an enhanced finite state machine.\nIt is based on the JGrafchart method and\ntakes advantage of Modelica features for\nthe \\\"action\\\" language. JGrafchart is a further development of\nGrafcet to include elements of StateCharts that are not present\nin Grafcet/Sequential Function Charts. Therefore, the StateGraph\nlibrary has a similar modeling power as StateCharts but avoids\nsome deficiencies of StateCharts.\n
\n\nThe basic elements of StateGraphs are steps and transitions:\n
\n\n\n\n
\n\n\nSteps represent the possible states a StateGraph can have.\nIf a step is active the Boolean variable active of\nthe step is true. If it is deactivated,\nactive = false. At the initial time, all \\\"usual\\\"\nsteps are deactivated. The InitialStep objects are steps\nthat are activated at the initial time. They are characterized\nby a double box (see figure above).\n
\n\nTransitions are used to change the state of a StateGraph.\nWhen the step connected to the input of a transition is active,\nthe step connected to the output of this transition is deactivated\nand the transition condition becomes true, then the\ntransition fires. This means that the step connected to the input to the\ntransition is deactivated and the step connected to the output\nof the transition is activated.\n
\n\nThe transition condition is defined via the parameter menu\nof the transition object. Clicking on object \\\"transition1\\\" in\nthe above figure, results in the following menu:\n
\n\n\n\n
\n\n\nIn the input field \\\"condition\\\", any type of time varying\nBoolean expression can be given (in Modelica notation, this is\na modification of the time varying variable condition).\nWhenever this condition is true, the transition can fire.\nAdditionally, it is possible to activate a timer, via\nenableTimer (see menu above) and provide a\nwaitTime. In this case the firing of the transition\nis delayed according to the provided waitTime. The transition\ncondition and the waitTime are displayed in the transition icon.\n
\n\nIn the above example, the simulation starts at initialStep.\nAfter 1 second, transition1 fires and step1 becomes\nactive. After another second transition2 fires and\ninitialStep becomes again active. After a further\nsecond step1 becomes again active, and so on.\n
\n\nIn JGrafcharts, Grafcet and Sequential Function Charts, the\nnetwork of steps and transitions is drawn from top to bottom.\nIn StateGraphs, no particular direction is defined, since\nsteps and transitions are blocks with input and output connectors\nthat can be arbitrarily placed and connected. Usually, it is\nmost practical to define the network from left to right,\nas in the example above, since then it is easy to read the\nlabels on the icons.\n
\n\nWith the block TransitionWithSignal, the firing condition\ncan be provided as Boolean input signal, instead as entry in the\nmenu of the transition. An example is given in the next\nfigure:\n
\n\n\n\n
\n\n\nComponent \\\"step\\\" is an instance of \\\"StepWithSignal\\\" that is\na usual step where the active flag is available as Boolean\noutput signal. To this output, component \\\"Timer\\\" from\nlibrary \\\"Modelica.Blocks.Logical\\\" is connected. It measures the\ntime from the time instant where the Boolean input (i.e., the\nactive flag of the step) became true up to the current\ntime instant. The timer is connected to a comparison\ncomponent. The output is true, once the timer reaches\n1 second. This signal is used as condition input of the\ntransition. As a result, \\\"transition2\\\" fires, once step\n\\\"step\\\" has been active for 1 second.\nOf course, any other\nModelica block with a Boolean output signal can be\nconnected to the condition input of such a transition block\nas well.\n
\n\nConditions of a transition can either be computed by\na network of logical blocks from the Logical library as\nin the figure above, or via the \\\"SetBoolean\\\" component\nany type of logical expression can be defined in textual\nform, as shown in the next figure:\n
\n\n\n\n
\n\n\nWith the block \\\"SetBoolean\\\", a time varying expression\ncan be provided as modification to the output signal y\n(see block with icon text \\\"timer.y > 1\\\" in the figure above).\nThe output signal can be in turn connected to the condition\ninput of a TransitionWithSignal block.\n
\n\nThe \\\"SetBoolean\\\" block can also be used to\ncompute a Boolean signal depending on the active step.\nIn the figure above, the output of the block with the\nicon text \\\"step.active\\\" is\ntrue, when \\\"step\\\" is active, otherwise it is false\n(note, the icon text of \\\"SetBoolean\\\" displays the modification\nof the output signal \\\"y\\\").\nThis signal can then be used to compute desired actions\nin the physical systems model. For example, if a valve\nshall be open, when the StateGraph is in \\\"step1\\\" or\nin \\\"step4\\\", a \\\"SetBoolean\\\" block may be connected to the\nvalve model using the following condition:\n
\n\n valve = step1.active or step2.active\n\n
\nVia the Modelica operators edge(..) and change(..),\nconditions depending on rising and falling edges of\nBoolean expressions can be used when needed.\n
\n\nIn JGrafcharts, Grafcet, Sequential Function Charts and StateCharts,\nactions are formulated within a step. Such actions are\ndistinguished as entry, normal, exit and\nabort actions. For example, a valve might be opened by\nan entry action of a step and might be closed by an exit\naction of the same step. In StateGraphs, this is (fortunately)\nnot possible\ndue to Modelica's \\\"single assignment rule\\\" that requires that every\nvariable is defined by exactly one equation. Instead, the\napproach explained above is used. For example, via the\n\\\"SetBoolean\\\" component, the valve variable is set to true\nwhen the StateGraph is in particular steps.\n
\n\nThis feature of a StateGraph is very useful, since it allows\na Modelica translator to guarantee that a given StateGraph\nhas always deterministic behaviour without conflicts.\nIn the other methodologies this is much more cumbersome. For example,\nif two steps are executed in parallel and both step actions\nmodify the same variable, the result is either non-deterministic\nor non-obvious rules have to be defined which action\ntakes priority. In a StateGraph, such a situation is detected by\nthe translator resulting in an error, since there are two equations\nto compute one variable. Additional benefits of the StateGraph\napproach are:\n
\n\nTo emphasize this important difference between these methodologies,\nconsider the case that a state machine has the following\nhierarchy:\n
\n\n stateMachine.superstate1.superstate2.step1\n\n
\nWithin \\\"step1\\\" a StateChart would, e.g., access variable\n\\\"stateMachine.openValve\\\", say as \\\"entry action: openValve = true\\\".\nThis typical usage has the severe drawback that it is not possible\nto use the hierarchical state \\\"superstate1\\\" as component in another\ncontext, because \\\"step1\\\" references a particular name outside of this\ncomponent.\n
\n\nIn a StateGraph, there would be typically a \\\"SetBoolean\\\" component\nin the \\\"stateMachine\\\" component stating:\n
\n\n openValve = superstate1.superstate2.step1.active;\n\n
\nAs a result, the \\\"superstate1\\\" component can be used in\nanother context, because it does not depend on the environment\nwhere it is used.\n
\n\nThe execution model of a StateGraph follows from its\nModelica implementation: Given the states of all steps, i.e.,\nwhether a step is active or not active, the equations of all\nsteps, transitions, transition conditions, actions etc. are\nsorted resulting in an execution sequence to compute\nessentially the new values of the steps. If conflicts occur,\ne.g., if there are more equations as variables, of if there\nare algebraic loops between Boolean variables, an exception\nis raised. Once all equations have been processed, the\nactive variable of all steps are updated to the newly\ncalculated values. Afterwards, the equations are again\nevaluated. The iteration stops, once no step changes\nits state anymore, i.e., once no transition fires anymore.\nThen, simulation continuous until a new event is triggered,\n(when a relation changes its value).\n
\n\nWith the Modelica \\\"sampled(..)\\\" operator, a StateGraph might also\nbe executed within a discrete controller that is called\nat regular time instants. In a future version of the StateGraph\nlibrary, this might be more directly supported.\n
\n\nParallel activities can be defined by\ncomponent Parallel and alternative activities\ncan be defined by component Alternative.\nAn example for both components is given in the next figure.\n
\n\n\n\n
\n\n\nHere, the branch from \\\"step2\\\" to \\\"step5\\\" is executed in parallel\nto \\\"step1\\\". A transition connected to the output of a parallel\nbranch component can only fire if the final steps\nin all parallel branches are active simultaneously.\nThe figure above is a screen-shot from the animation of the\nStateGraph: Whenever a step is active or a transition can fire,\nthe corresponding component is marked in green color.\n
\n\nThe three branches within \\\"step2\\\" to \\\"step5\\\" are\nexecuted alternatively, depending which transition condition\nof \\\"transition3\\\", \\\"transition4\\\", \\\"transition4a\\\" fires first.\nSince all three transitions fire after 1 second, they are all\ncandidates for the active branch. If two or more transitions\nwould fire at the same time instant, a priority selection\nis made: The alternative and parallel components have a\nvector of connectors. Every branch has to be connected to\nexactly one entry of the connector vector. The entry with\nthe lowest number has the highest priority.\n
\n\nParallel, Alternative and Step components have vectors of\nconnectors. The dimensions of these vectors are set in the\ncorresponding parameter menu. E.g. in a \\\"Parallel\\\" component:\n
\n\n\n\n
\n\n\nCurrently in Dymola the following menu pops up, when a branch\nis connected to a vector of components in order to define\nthe vector index to which the component shall be connected:\n
\n\n\n\n
\n\n\nA StateGraph can be hierarchically structured by using a CompositeStep.\nThis is a component that inherits from PartialCompositeStep.\nAn example is given in the next figure (from Examples.ControlledTanks):\n
\n\n\n\n
\n\n\nThe CompositeStep component contains a local StateGraph that is\nentered by one or more input transitions and that is left\nby one or more output transitions. Also, other needed signals\nmay enter a CompositeStep. The CompositeStep has similar properties\nas a \\\"usual\\\" step: The CompositeStep is active once at least\none step within the CompositeStep is active. Variable active\ndefines the state of the CompositeStep.\n
\n\nAdditionally, a CompositeStep has a suspend port. Whenever the\ntransition connected to this port fires, the CompositeStep is left\nat once. When leaving the CompositeStep via the suspend port, the internal\nstate of the CompositeStep is saved, i.e., the active flags of all\nsteps within the CompositeStep. The CompositeStep might be entered via\nits resume port. In this case the internal state from the\nsuspend transition is reconstructed and the CompositeStep continues\nthe execution that it had before the suspend transition fired\n(this corresponds to the history ports of StateCharts or JGrafcharts).\n
\n\nA CompositeStep may contain other CompositeSteps. At every level,\na CompositeStep and all of its content can be left via its suspend ports\n(actually, there\nis a vector of suspend connectors, i.e., a CompositeStep might\nbe aborted due to different transitions).\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "FirstExample", + "description_string": "A first example", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nA first example will be given here (not yet done).\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ApplicationExample", + "description_string": "An application example", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nIn this section a more realistic, still simple, application example\nis given, to demonstrate various features of the StateGraph library.\nThis example shows the control of a two tank system from the master thesis\nof Isolde Dressler\n(see literature).\n
\n\nIn the following figure the top level of the model is shown.\nThis model is available as StateGraph.Examples.ControlledTanks.\n
\n\n\n\n
\n\n\nIn the right part of the figure, two tanks are shown. At the top part,\na large fluid source is present from which fluid can be filled in\ntank1 when valve1 is open. Tank1 can be emptied via\nvalve2 that is located in the bottom of tank2 and\nfills a second tank2 which in turn is emptied via\nvalve3. The actual levels of the tanks are measured\nand are provided as signals level1 and level2\nto the tankController.\n
\n\nThe tankController is controlled by three buttons,\nstart, stop and shut (for shutdown)\nthat are mutually exclusive. This means that whenever one button is\npressed (i.e., its state is true) then the other two\nbuttons are not pressed (i.e., their states are false).\nWhen button start is pressed, the \\\"normal\\\" operation\nto fill and to empty the two tanks is processed:\n
\n\nThe above \\\"normal\\\" process can be influenced by the following\nbuttons:\n
\n\nThe implementation of the tankController is shown in\nthe next figure:\n
\n\n\n\n
\n\n\nWhen the \\\"start\\\" button is pressed, the stateGraph is\nwithin the CompositeStep \\\"makeProduct\\\". During normal\noperation this CompositeStep is only left, once tank2 is empty.\nAfterwards, the CompositeStep is at once re-entered.\n
\n\nWhen the \\\"stop\\\" button is pressed, the \\\"makeProduct\\\"\nCompositeStep is at once terminated via the \\\"suspend\\\" port\nand the stateGraph waits in step \\\"s2\\\" for further\ncommands. When the \\\"start\\\" button is pressed, the CompositeStep\nis re-entered via its resume port and the \\\"normal\\\"\noperation continues at the state where it was aborted by the\nsuspend transition. If the \\\"shut\\\" button is pressed,\nthe stateGraph waits in the \\\"emptyTanks\\\" step, until\nboth tanks are empty and then waits at the initial step\n\\\"s1\\\" for further input.\n
\n\nThe opening and closing of valves is not directly\ndefined in the stateGraph. Instead via the \\\"setValveX\\\"\ncomponents, the Boolean state of the valves are computed.\nFor example, the output y of \\\"setValve2\\\" is computed as:\n
\n\n y = makeProduct.fillTank2.active or emptyTanks.active\n\n
\ni.e., valve2 is open, when step \\\"makeProduct.fillTank2 or when\nstep \\\"emptyTanks\\\" is active. Otherwise, valve2 is closed.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ComparisonWithStateGraph2", + "description_string": "Comparison with StateGraph2", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThere is a much improved library available called \\\"Modelica_StateGraph2\\\".\nIf this library is not yet distributed with your Modelica tool, you can download\nit from https://github.com/modelica/Modelica_StateGraph2.\nFind below a comparison with respect to Modelica.StateGraph.\nIt is not yet clear whether Modelica_StateGraph2 will be included in a\nfuture version of the Modelica package. Another option is to provide\nbuilt-in support for state machines in a future Modelica language version\nwhich would allow an even more powerful treatment of state machines in Modelica.\n
\n\n\nThe Modelica_StateGraph2 library (called StateGraph2 below)\nis based on the experience with the current\nModelica.StateGraph library (called StateGraph1 below) and is\na significantly further development of StateGraph1. Furthermore, it is heavily\nbased on the article (Malmheden et. al. 2008), see Literature below,\nbut uses a different implementation\ntechnique as described in this article. The StateGraph2\nlibrary has the following improvements with respect to the StateGraph1\nlibrary:\n
\n\n\nThe Modelica_StateGraph2 library is described in detail in\n(Otter et. al. 2009, see below) and is additionally\nbased on the following references:\n
\n\n\nImplemented a first version that is provided to other people.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Literature", + "description_string": "Literature", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.References" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThe StateGraph library is based on the following references:\n
\n\nMartin Otter
\nDeutsches Zentrum für Luft- und Raumfahrt e.V. (DLR)
\nInstitut für Systemdynamik und Regelungstechnik (DLR-SR)
\nForschungszentrum Oberpfaffenhofen
\nD-82234 Wessling
\nGermany
\nemail: Martin.Otter@dlr.de\n
\nLibrary StateGraph is a free Modelica package providing\ncomponents to model discrete event and reactive\nsystems in a convenient\nway. This package contains the User's Guide for\nthe library and has the following content:\n
\n\nThis is an example to demonstrate in which way parallel activities\ncan be modelled by a StateGraph. When transition1 fires\n(after 1 second), two branches are executed in parallel.\nAfter 6 seconds the two branches are synchronized in order to arrive\nat step6.\n
\n\nBefore simulating the model, try to figure out whether which branch\nof the alternative sequence is executed. Note, that alternatives\nhave priorities according to the port index (alternative.split[1]\nhas a higher priority to fire as alternative.split[2]).\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "15" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -200, + "y": -200 + }, + { + "x": 200, + "y": 200 + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "ShowCompositeStep", + "description_string": "Example to demonstrate parallel activities described by a StateGraph", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "Utilities.CompositeStep", + "component_list": [ + { + "declaration": { + "identifier": "compositeStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": 5 + }, + { + "x": 20, + "y": 35 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "step0" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -89, + "y": -10 + }, + { + "x": -69, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -59, + "y": -10 + }, + { + "x": -39, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -4, + "y": -30 + }, + { + "x": 16, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 45, + "y": -10 + }, + { + "x": 65, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step6" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 71, + "y": -10 + }, + { + "x": 91, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "TransitionWithSignal", + "component_list": [ + { + "declaration": { + "identifier": "transition7" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 10, + "y": -70 + }, + { + "x": -10, + "y": -50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Parallel", + "component_list": [ + { + "declaration": { + "identifier": "Parallel1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -30, + "y": -40 + }, + { + "x": 36, + "y": 40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanExpression", + "component_list": [ + { + "declaration": { + "identifier": "setCondition", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "time" + }, + { + "name": "7" + } + ], + "relation_operator": ">=" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -40, + "y": -90 + }, + { + "x": -10, + "y": -70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": 50 + }, + { + "x": -70, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step0" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -68.5, + "y": 0 + }, + { + "x": -53, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step0" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -1.5, + "y": -60 + }, + { + "x": -98, + "y": -60 + }, + { + "x": -98, + "y": 0 + }, + { + "x": -90, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 91.5, + "y": 0 + }, + { + "x": 96, + "y": 0 + }, + { + "x": 96, + "y": -60 + }, + { + "x": 4, + "y": -60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 56.5, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -47.5, + "y": 0 + }, + { + "x": -30.99, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 36.66, + "y": 0 + }, + { + "x": 51, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -11, + "y": 20 + }, + { + "x": -22.575, + "y": 20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 20.5, + "y": 20 + }, + { + "x": 28.575, + "y": 20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -5, + "y": -20 + }, + { + "x": -10, + "y": -20 + }, + { + "x": -10, + "y": -20 + }, + { + "x": -14, + "y": -20 + }, + { + "x": -14, + "y": -20 + }, + { + "x": -22.575, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 16.5, + "y": -20 + }, + { + "x": 28.575, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "setCondition" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "condition" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -8.5, + "y": -80 + }, + { + "x": 0, + "y": -80 + }, + { + "x": 0, + "y": -72 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis is the same example as \\\"ExecutionPaths\\\". The only difference\nis that the alternative paths are included in a \\\"CompositeStep\\\".\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "15" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "ShowExceptions", + "description_string": "Example to demonstrate how a hierarchically structured StateGraph can suspend and resume actions on different levels", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "Utilities.CompositeStep1", + "component_list": [ + { + "declaration": { + "identifier": "compositeStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -20, + "y": 25 + }, + { + "x": 10, + "y": 55 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "initialStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -80, + "y": 30 + }, + { + "x": -60, + "y": 50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -50, + "y": 30 + }, + { + "x": -30, + "y": 50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 20, + "y": 30 + }, + { + "x": 40, + "y": 50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition3", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -55, + "y": -30 + }, + { + "x": -35, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -24, + "y": -30 + }, + { + "x": -4, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition4", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 10, + "y": -30 + }, + { + "x": 30, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": -80 + }, + { + "x": -70, + "y": -60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -38.5, + "y": 40 + }, + { + "x": -21, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -59.5, + "y": 40 + }, + { + "x": -44, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": 40 + }, + { + "x": 26, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 31.5, + "y": 40 + }, + { + "x": 46, + "y": 40 + }, + { + "x": 46, + "y": 80 + }, + { + "x": -90, + "y": 80 + }, + { + "x": -90, + "y": 40 + }, + { + "x": -81, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "suspend", + "array_subscripts": [] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -12.5, + "y": 24.5 + }, + { + "x": -12.5, + "y": 10 + }, + { + "x": -60, + "y": 10 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -49, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -43.5, + "y": -20 + }, + { + "x": -25, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -3.5, + "y": -20 + }, + { + "x": 16, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "resume", + "array_subscripts": [] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 21.5, + "y": -20 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 40, + "y": 10 + }, + { + "x": 2.5, + "y": 10 + }, + { + "x": 2.5, + "y": 24 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nCompositeStep \\\"compositeStep\\\" is a hierarchical StateGraph consisting of\ntwo other subgraphs. Whenever component \\\"compositeStep\\\" is suspended,\nall steps with in \\\"compositeStep\\\" are deactivated. By entering \\\"compositeStep\\\"\nvia its \\\"resume\\\" port, all steps within \\\"compositeStep\\\" are activated\naccording to their setting before leaving the \\\"compositeStep\\\" via its\n\\\"suspend\\\" port.\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "20" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "ControlledTanks", + "description_string": "Demonstrating the controller of a tank filling/emptying system", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "Utilities.TankController", + "component_list": [ + { + "declaration": { + "identifier": "tankController" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -50, + "y": -20 + }, + { + "x": -10, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Temporary.RadioButton", + "component_list": [ + { + "declaration": { + "identifier": "start", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "reset", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{stop.on,shut.on}" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "buttonTimeTable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{1,13,15,19}" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": 20 + }, + { + "x": -70, + "y": 40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Temporary.RadioButton", + "component_list": [ + { + "declaration": { + "identifier": "stop", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "reset", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{start.on,shut.on}" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "buttonTimeTable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{13,15,19,21}" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": -10 + }, + { + "x": -70, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Temporary.RadioButton", + "component_list": [ + { + "declaration": { + "identifier": "shut", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "reset", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{start.on,stop.on}" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "buttonTimeTable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{21,100}" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": -40 + }, + { + "x": -70, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.Tank", + "component_list": [ + { + "declaration": { + "identifier": "tank1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 10, + "y": 20 + }, + { + "x": 60, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.Tank", + "component_list": [ + { + "declaration": { + "identifier": "tank2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 34, + "y": -60 + }, + { + "x": 84, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.valve", + "component_list": [ + { + "declaration": { + "identifier": "valve1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 22.5, + "y": 72 + }, + "extent": [ + { + "x": -5.5, + "y": -5.5 + }, + { + "x": 5.5, + "y": 5.5 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.Source", + "component_list": [ + { + "declaration": { + "identifier": "source" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 12.5, + "y": 80.5 + }, + { + "x": 32.5, + "y": 100.5 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.valve", + "component_list": [ + { + "declaration": { + "identifier": "valve2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 46.5, + "y": 13 + }, + "extent": [ + { + "x": -7, + "y": -8 + }, + { + "x": 7, + "y": 8 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.valve", + "component_list": [ + { + "declaration": { + "identifier": "valve3" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 73.5, + "y": -77 + }, + "extent": [ + { + "x": -7, + "y": -8 + }, + { + "x": 7, + "y": 8 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": 75 + }, + { + "x": -70, + "y": 95 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 50, + "y": 33.75 + }, + { + "x": 50, + "y": 26.875 + }, + { + "x": 46.5, + "y": 26.875 + }, + { + "x": 46.5, + "y": 16.5 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 46.5, + "y": -18.75 + }, + { + "x": 46.5, + "y": 9.5 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 74, + "y": -46.25 + }, + { + "x": 74, + "y": -73.5 + }, + { + "x": 73.5, + "y": -73.5 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 22.5, + "y": 61.25 + }, + { + "x": 22.5, + "y": 69.25 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "shut" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "on" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "shut" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -69, + "y": -30 + }, + { + "x": -62, + "y": -30 + }, + { + "x": -62, + "y": -12 + }, + { + "x": -52, + "y": -12 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "stop" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "on" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "stop" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -69, + "y": 0 + }, + { + "x": -52, + "y": 0 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "start" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "on" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "start" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -69, + "y": 30 + }, + { + "x": -60, + "y": 30 + }, + { + "x": -60, + "y": 12 + }, + { + "x": -52, + "y": 12 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "levelSensor" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "level1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 17.25, + "y": 40 + }, + { + "x": -30, + "y": 40 + }, + { + "x": -30, + "y": 60 + }, + { + "x": -97, + "y": 60 + }, + { + "x": -97, + "y": -50 + }, + { + "x": -42, + "y": -50 + }, + { + "x": -42, + "y": -22 + } + ], + "color": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "levelSensor" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "level2" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 41.25, + "y": -40 + }, + { + "x": -18, + "y": -40 + }, + { + "x": -18, + "y": -22 + } + ], + "color": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valve1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valveControl" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -9, + "y": 12 + }, + { + "x": 10, + "y": 12 + }, + { + "x": 10, + "y": 72 + }, + { + "x": 18.1, + "y": 72 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valve2" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valveControl" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -9, + "y": 0 + }, + { + "x": 30, + "y": 0 + }, + { + "x": 30, + "y": 13 + }, + { + "x": 40.1, + "y": 13 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valve3" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valveControl" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -9, + "y": -12 + }, + { + "x": 23, + "y": -12 + }, + { + "x": 23, + "y": -77 + }, + { + "x": 67.1, + "y": -77 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "source" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 22.5, + "y": 85.5 + }, + { + "x": 22.5, + "y": 74.75 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "100" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nWith this example the controller of a tank filling/emptying system\nis demonstrated. This example is from Dressler (2004),\nsee Literature.\nThe basic operation is to fill and empty the two tanks:\n
\n\nThe above \\\"normal\\\" process can be influenced by three\nbuttons:\n
\n\nOn the highest level of a StateGraph, an instance of StateGraphRoot\nhas to be present.\n
\n\nThe StateGraphRoot object is needed, since all Step objects have\nan \\\"outer\\\" reference to communicate with the \\\"nearest\\\" CompositeStep\n(which inherits from PartialCompositeStep), especially to abort\na CompositeStep via the \\\"suspend\\\" port. Even if no \\\"CompositeStep\\\" is present,\non highest level a corresponding \\\"inner\\\" definition is needed\nand is provided by the StateGraphRoot object.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Temporary", + "description_string": "Components that will be provided by other libraries in the future", + "composition": { + "element_list": [ + { + "class_definition": [ + { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SetRealParameter", + "value": { + "name": "Real", + "description": { + "description_string": "Define Real parameter (GUI not yet satisfactory)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type due to experimental design\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog" + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentName", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"name\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentPrefixes", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"parameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 40 + }, + { + "x": 100, + "y": -40 + } + ], + "borderPattern": "BorderPattern.Raised", + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 90 + }, + { + "x": 150, + "y": 50 + } + ], + "textString": ",textString=" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -96, + "y": 15 + }, + { + "x": 96, + "y": -15 + } + ], + "textString": "\"%value\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis is an experimental component to define a\nReal parameter\nin the diagram layer. The idea is to drag the icon from the\npackage browser into the diagram layer. Then a window pops\nup in which the properties of this parameter can be defined\n(such as the default value). The name and default value of the\nparameter are displayed in the icon of this component. Whenever\nclicking on it, the dialog to change parameter settings pops-up.\n
\n\nIn Dymola, the described property is not fully available.\nCurrently, when dragging this component in the diagram layer,\na dialog pops up in which the properties of the parameter\ncan be defined. However, afterwards, the parameter is not\nvisible in the diagram layer. Making it visible requires to\ngo into the text layer and add an annotation with the\ncomponent size, resulting for example in:\n
\n\n parameter StateGraph.Temporary.SetRealParameter name = 2\n annotation(Placement(transformation(extent={{-10,-10},{10,10}})));\n\n
\nThis change makes the parameter icon visible in the\ndiagram layer. However, clicking on this icon has no\neffect. Changing parameter properties, such as the default\nvalue, still requires to go in to the text layer.\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "anyTrue", + "description_string": "Returns true, if at least on element of the Boolean input vector is true", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Function" + } + }, + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "b", + "array_subscripts": [] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "result" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": "false" + } + } + }, + { + "for_statement": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:size(b,1)" + } + } + ], + "loop_statements": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "result" + } + ] + } + ] + }, + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "b[i]" + } + ] + } + ] + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete function - use Modelica.Math.BooleanVectors.anyTrue instead\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "allTrue", + "description_string": "Returns true, if all elements of the Boolean input vector are true", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Function" + } + }, + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "b", + "array_subscripts": [] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "result" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": "true" + } + } + }, + { + "for_statement": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:size(b,1)" + } + } + ], + "loop_statements": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "result" + } + ] + }, + { + "arithmetic_expressions": [ + { + "name": "b[i]" + } + ] + } + ] + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete function - use Modelica.Math.BooleanVectors.allTrue instead\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "RadioButton", + "description_string": "Button that sets its output to true when pressed and is reset when an element of 'reset' becomes true", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Modelica.SIunits.Time", + "component_list": [ + { + "declaration": { + "identifier": "buttonTimeTable", + "array_subscripts": [], + "modification": { + "equal": true, + "expression": { + "simple_expression": "{0}" + } + } + }, + "description": { + "description_string": "Time instants where button is pressed and released" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "reset", + "array_subscripts": [], + "modification": { + "equal": true, + "expression": { + "simple_expression": "{false}" + } + } + }, + "description": { + "description_string": "Reset button to false, if an element of reset becomes true", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "group", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time varying expressions\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "on" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -10 + }, + { + "x": 120, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "protected_element_list": [ + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanTable", + "component_list": [ + { + "declaration": { + "identifier": "table", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "table", + "modification": { + "equal": true, + "expression": { + "simple_expression": "buttonTimeTable" + } + } + } + } + } + ] + } + } + } + ] + } + } + ] + }, + { + "equation_section": { + "initial": true, + "equation": [ + { + "assignment_equation": { + "lhs": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "reset" + } + ] + } + }, + "rhs": { + "simple_expression": { + "function_call": { + "name": "fill", + "arguments": [ + { + "name": "false" + }, + { + "name": "size(reset,1)" + } + ] + } + } + } + } + } + ] + } + }, + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "on" + } + ], + "value": { + "simple_expression": "table.y" + } + } + }, + { + "when_statement": [ + { + "condition": { + "simple_expression": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "reset" + } + ] + } + } + }, + "then": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "on" + } + ], + "value": { + "simple_expression": "false" + } + } + } + ] + } + ] + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete model due to experimental design, that will be moved to Modelica.Blocks.Interaction in future\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 192, + "g": 192, + "b": null + }, + "fillPattern": "FillPattern.Solid", + "lineThickness": 0.5 + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -80, + "y": -40 + }, + { + "x": 80, + "y": 40 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "interaction", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{OnMouseDownSetBoolean(on,true)}" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "NumericValue", + "description_string": "Show value of Real input signal dynamically", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "precision", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ], + "equal": true, + "expression": { + "simple_expression": "3" + } + } + }, + "description": { + "description_string": "Number of significant digits to be shown" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "hideConnector", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + }, + "description": { + "description_string": "= true, if connector is not shown in the dynamic object diagram" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "Value" + }, + "description": { + "description_string": "Real value to be shown in icon", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "hideConnector" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -20 + }, + { + "x": -100, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete model - use Modelica.Blocks.Interaction.Show.RealValue instead\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 100, + "y": 50 + }, + { + "x": -100, + "y": -50 + } + ], + "borderPattern": "BorderPattern.Raised", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + }, + "fillColor": { + "r": 236, + "g": 233, + "b": 216 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -46 + }, + { + "x": 90, + "y": 34 + } + ], + "textString": "DynamicSelect(\" \",String(Value", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + { + "class_definition": [ + { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "IndicatorLamp", + "description_string": "Dynamically show Boolean input signal (false/true = white/green color)", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanInput", + "component_list": [ + { + "declaration": { + "identifier": "u" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -20 + }, + { + "x": -100, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete model - use Modelica.Blocks.Interaction.Show.BooleanValue instead\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "fillColor": { + "r": 235, + "g": 235, + "b": null + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Sphere" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 150 + }, + { + "x": 150, + "y": 110 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package due to experimental design\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nThis library is just temporarily present. The components of\nthis library will be present in the future in the Modelica\nstandard library (with the new block connectors) and in the\nInteraction library .\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\nNote, there is a much improved version of this library called\n\\\"Modelica_StateGraph2\\\". If this library is not yet distributed with your\nModelica tool, you can download it from\nhttps://github.com/modelica/Modelica_StateGraph2.\nIn the\nUsers Guide\na detailed comparison is given. It is highly recommended to use Modelica_StateGraph2 instead\nof Modelica.StateGraph.\n
\n\n\nLibrary StateGraph is a free Modelica package providing\ncomponents to model discrete event and reactive\nsystems in a convenient\nway. It is based on the JGrafchart method and\ntakes advantage of Modelica features for\nthe \\\"action\\\" language. JGrafchart is a further development of\nGrafcet to include elements of StateCharts that are not present\nin Grafcet/Sequential Function Charts. Therefore, the StateGraph\nlibrary has a similar modeling power as StateCharts but avoids\nsome deficiencies of StateCharts.\n
\n\nFor an introduction, have especially a look at:\n
\n\nA typical model generated with this library is shown\nin the next figure where on the left hand side a two-tank\nsystem with a tank controller and on the right hand side the\ntop-level part of the tank controller as a StateGraph is shown:\n
\n\n\n\n\n\n
\n\n\nThe unique feature of the StateGraph library with respect to JGrafcharts,\nGrafcet, Sequential Function Charts, and StateCharts, is Modelica's\n\\\"single assignment rule\\\" that requires that every variable is defined\nby exactly one equation. This leads to a different \\\"action\\\" definition\nas in these formalisms. The advantage is that the translator can either\ndetermine a useful evaluation sequence by equation sorting or\nreports an error if this is not possible, e.g., because a model\nwould lead to a non-determinism or to a dead-lock. As a side effect,\nthis leads also to simpler and more easier to understand models and\nglobal variables are no longer needed (whereas in JGrafcharts,\nGrafcet, Sequential Function Charts and StateCharts global variables\nare nearly always needed).\n
\n\n\nCopyright © 1998-2019, Modelica Association and contributors\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": -70, + "y": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": 70, + "y": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 50 + }, + { + "x": 0, + "y": -50 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -3.3333, + "y": 10 + }, + { + "x": 16.667, + "y": 0 + }, + { + "x": -3.3333, + "y": -10 + } + ], + "origin": { + "x": -16.6667, + "y": 0 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 15, + "y": 0 + }, + { + "x": -15, + "y": 0 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -3.3333, + "y": 10 + }, + { + "x": 16.667, + "y": 0 + }, + { + "x": -3.3333, + "y": -10 + } + ], + "origin": { + "x": 33.3333, + "y": 0 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 15, + "y": 0 + }, + { + "x": -15, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "modelicaFile": "Modelica/StateGraph.mo", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "checksum": "575f29809697b2aba92edcfe09693c2f" +} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Block1.json b/test/reference/json/test/FromModelica/Block1.json index 6892fc10..41d851fa 100644 --- a/test/reference/json/test/FromModelica/Block1.json +++ b/test/reference/json/test/FromModelica/Block1.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Block1","description_string":"A block that instantiates nothing"}}}],"modelicaFile":"test/FromModelica/Block1.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Block1.mo","checksum":"0ac032b3cd1dc28b1ce78d31c2b74fc8"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Block1","description_string":"A block that instantiates nothing"}}}],"modelicaFile":"test/FromModelica/Block1.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Block1.mo","checksum":"0ac032b3cd1dc28b1ce78d31c2b74fc8"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/BlockInputOutput.json b/test/reference/json/test/FromModelica/BlockInputOutput.json index d6c117f9..ec401cbb 100644 --- a/test/reference/json/test/FromModelica/BlockInputOutput.json +++ b/test/reference/json/test/FromModelica/BlockInputOutput.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"BlockInputOutput","description_string":"A block with an input and an output signal","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/BlockInputOutput.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockInputOutput.mo","checksum":"6b3a426c9d74156de11eca45268af019"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"BlockInputOutput","description_string":"A block with an input and an output signal","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/BlockInputOutput.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockInputOutput.mo","checksum":"6b3a426c9d74156de11eca45268af019"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/BlockWithBlock1.json b/test/reference/json/test/FromModelica/BlockWithBlock1.json index 331e299f..5ac58076 100644 --- a/test/reference/json/test/FromModelica/BlockWithBlock1.json +++ b/test/reference/json/test/FromModelica/BlockWithBlock1.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"BlockWithBlock1","description_string":"A block that instantiates another public and protected block","composition":{"element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPro"},"description":{"description_string":"A protected block"}}]}}]}]}}}}],"modelicaFile":"test/FromModelica/BlockWithBlock1.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockWithBlock1.mo","checksum":"ff65a62871564710f765eb9ca9dd4b06"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"BlockWithBlock1","description_string":"A block that instantiates another public and protected block","composition":{"element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPro"},"description":{"description_string":"A protected block"}}]}}]}]}}}}],"modelicaFile":"test/FromModelica/BlockWithBlock1.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockWithBlock1.mo","checksum":"ff65a62871564710f765eb9ca9dd4b06"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ConditionalBlock.json b/test/reference/json/test/FromModelica/ConditionalBlock.json index 5a9e6c1f..2c4a4cff 100644 --- a/test/reference/json/test/FromModelica/ConditionalBlock.json +++ b/test/reference/json/test/FromModelica/ConditionalBlock.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ConditionalBlock","description_string":"A block with a flag for disabling instances","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/ConditionalBlock.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ConditionalBlock.mo","checksum":"ee394cf3dfa2083239e2f8d009c2cd51"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ConditionalBlock","description_string":"A block with a flag for disabling instances","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":{"logical_expression":{"logical_or":[{"logical_and":[{"not":true,"arithmetic_expressions":[{"name":"enaBlo"}]}]}]}}}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/ConditionalBlock.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ConditionalBlock.mo","checksum":"ee394cf3dfa2083239e2f8d009c2cd51"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/CustomPWithLimiter.json b/test/reference/json/test/FromModelica/CustomPWithLimiter.json index 0770f291..748bf05a 100644 --- a/test/reference/json/test/FromModelica/CustomPWithLimiter.json +++ b/test/reference/json/test/FromModelica/CustomPWithLimiter.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"CustomPWithLimiter","description_string":"Custom implementation of a P controller with variable output limiter","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"yMax"},"description":{"description_string":"Maximum value of output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"e"},"description":{"description_string":"Control error","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Control signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Min","component_list":[{"declaration":{"identifier":"minValue"},"description":{"description_string":"Outputs the minimum of its inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-10},{"x":40,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"yMax"}],"to":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":40},{"x":-120,"y":40},{"x":-20,"y":40},{"x":-20,"y":6},{"x":18,"y":6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"e"}],"to":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-92,"y":-40},{"x":-62,"y":-40}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-39,"y":-40},{"x":-20,"y":-40},{"x":-20,"y":-6},{"x":18,"y":-6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":41,"y":0},{"x":110,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nBlock that outputs y = min(yMax, k*e)
,\nwhere\nyMax
and e
are real-valued input signals and\nk
is a parameter.\n
\nBlock that outputs y = min(yMax, k*e)
,\nwhere\nyMax
and e
are real-valued input signals and\nk
is a parameter.\n
\nThis is the info section.\n
\n\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"preserveAspectRatio":"true"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Text","attribute":{"extent":[{"x":-90,"y":80},{"x":-46,"y":54}],"textString":"\"true\"","lineColor":{"r":0,"g":0,"b":null}}},{"name":"Text","attribute":{"extent":[{"x":-150,"y":150},{"x":150,"y":110}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/DynamicTextColor.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/DynamicTextColor.mo","checksum":"2b2ee39f32acc385c42dd85bb20449ef"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"DynamicTextColor","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.Boolean","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"preserveAspectRatio":"true"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Text","attribute":{"extent":[{"x":-90,"y":80},{"x":-46,"y":54}],"textString":"\"true\"","lineColor":{"r":0,"g":0,"b":null}}},{"name":"Text","attribute":{"extent":[{"x":-150,"y":150},{"x":150,"y":110}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/DynamicTextColor.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/DynamicTextColor.mo","checksum":"2b2ee39f32acc385c42dd85bb20449ef"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/EmptyEquation.json b/test/reference/json/test/FromModelica/EmptyEquation.json index 3b303a31..54efb958 100644 --- a/test/reference/json/test/FromModelica/EmptyEquation.json +++ b/test/reference/json/test/FromModelica/EmptyEquation.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"EmptyEquation","description_string":"A block that instantiates nothing","composition":{"element_sections":[{"equation_section":{"equation":[]}}]}}}}],"modelicaFile":"test/FromModelica/EmptyEquation.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/EmptyEquation.mo","checksum":"c59d73edc2ea3867f7a1a3dfa344844c"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"EmptyEquation","description_string":"A block that instantiates nothing","composition":{"element_sections":[{"equation_section":{"equation":[]}}]}}}}],"modelicaFile":"test/FromModelica/EmptyEquation.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/EmptyEquation.mo","checksum":"c59d73edc2ea3867f7a1a3dfa344844c"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Enable.json b/test/reference/json/test/FromModelica/Enable.json index d90c1917..167f2905 100644 --- a/test/reference/json/test/FromModelica/Enable.json +++ b/test/reference/json/test/FromModelica/Enable.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Enable","description_string":"Multi zone VAV AHU economizer enable/disable switch","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"use_enthalpy","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Set to true to evaluate outdoor air (OA) enthalpy in addition to temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Conditional\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"delTOutHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Delta between the temperature hysteresis high and low limit","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"delEntHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"1000"}}},"description":{"description_string":"Delta between the enthalpy hysteresis high and low limits","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"use_enthalpy"}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"retDamFulOpeTim","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"180"}}},"description":{"description_string":"Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control\n at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"disDel","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"15"}}},"description":{"description_string":"Short time delay before closing the OA damper at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Outdoor air temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":232},{"x":-260,"y":272}]},"iconTransformation":{"extent":[{"x":-140,"y":110},{"x":-100,"y":150}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"hOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":152},{"x":-260,"y":192}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"OA temperature high limit cutoff. For differential dry bulb temperature condition use return air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":192},{"x":-260,"y":232}]},"iconTransformation":{"extent":[{"x":-140,"y":90},{"x":-100,"y":130}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"hOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"OA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":112},{"x":-260,"y":152}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uOutDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-98},{"x":-260,"y":-58}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-58},{"x":-260,"y":-18}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-178},{"x":-260,"y":-138}]},"iconTransformation":{"extent":[{"x":-140,"y":-130},{"x":-100,"y":-90}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-218},{"x":-260,"y":-178}]},"iconTransformation":{"extent":[{"x":-140,"y":-150},{"x":-100,"y":-110}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDamPhy_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Physical maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-138},{"x":-260,"y":-98}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":62},{"x":-260,"y":102}]},"iconTransformation":{"extent":[{"x":-140,"y":10},{"x":-100,"y":50}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"uFreProSta"},"description":{"description_string":"Freeze protection stage status signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":22},{"x":-260,"y":62}]},"iconTransformation":{"extent":[{"x":-140,"y":-10},{"x":-100,"y":30}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":22},{"x":280,"y":62}]},"iconTransformation":{"extent":[{"x":100,"y":80},{"x":140,"y":120}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-98},{"x":280,"y":-58}]},"iconTransformation":{"extent":[{"x":100,"y":-120},{"x":140,"y":-80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-38},{"x":280,"y":2}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueFalseHold","component_list":[{"declaration":{"identifier":"truFalHol","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"trueHoldDuration","modification":{"equal":true,"expression":{"simple_expression":"600"}}}}}]}},"description":{"description_string":"Economizer should not be enabled or disabled within 10 minutes of change","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":182},{"x":40,"y":202}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"andEnaDis"},"description":{"description_string":"Check freeze protection stage and zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":12},{"x":80,"y":32}]}}}}}]}}]}}],"element_sections":[{"protected_element_list":[{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"TOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis high limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"TOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig -delTOutHis"}}},"description":{"description_string":"Hysteresis low limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"hOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis block high limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"hOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig -delEntHis"}}},"description":{"description_string":"Hysteresis block low limit cutoff"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","component_list":[{"declaration":{"identifier":"sub2"},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Add block determines difference between hOut and hOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":140},{"x":-180,"y":160}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","component_list":[{"declaration":{"identifier":"sub1"},"description":{"description_string":"Add block determines difference between TOut and TOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":220},{"x":-180,"y":240}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","component_list":[{"declaration":{"identifier":"hysOutTem","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig"}}}}}]}},"description":{"description_string":"Outdoor air temperature hysteresis for both fixed and differential dry bulb temperature cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":220},{"x":-140,"y":240}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","component_list":[{"declaration":{"identifier":"hysOutEnt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy hysteresis for both fixed and differential enthalpy cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":140},{"x":-140,"y":160}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"outDamSwitch"},"description":{"description_string":"Set maximum OA damper position to minimum at disable (after a given time delay)","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":82,"y":-78},{"x":102,"y":-58}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"retDamSwitch"},"description":{"description_string":"Set minimum RA damper position to maximum at disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-176},{"x":0,"y":-156}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"maxRetDamSwitch"},"description":{"description_string":"Keep maximum RA damper position at physical maximum for a short time period after disable signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-136},{"x":80,"y":-116}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"minRetDamSwitch"},"description":{"description_string":"Keep minimum RA damper position at physical maximum for a short time period after disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-178},{"x":80,"y":-158}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","component_list":[{"declaration":{"identifier":"not2"},"description":{"description_string":"Logical not that starts the timer at disable signal ","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-58},{"x":-40,"y":-38}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and2"},"description":{"description_string":"Logical and","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":160,"y":-100},{"x":180,"y":-80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and1"},"description":{"description_string":"Check supply fan status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":80},{"x":40,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and3"},"description":{"description_string":"Check if delay time has been passed after economizer being disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":40,"y":-54},{"x":60,"y":-34}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Equal","component_list":[{"declaration":{"identifier":"intEqu"},"description":{"description_string":"Logical block to check if the freeze protection is deactivated","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-78,"y":32},{"x":-58,"y":52}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_list":[{"declaration":{"identifier":"delOutDamOsc","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"disDel"}}}}}]}},"description":{"description_string":"Small delay before closing the outdoor air damper to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-58},{"x":0,"y":-38}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_list":[{"declaration":{"identifier":"delRetDam","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"retDamFulOpeTim"}}}}}]}},"description":{"description_string":"Keep return damper open to its physical maximum for a short period of time before closing the outdoor air damper and resuming the maximum return air damper position, per G36 Part N7","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-108},{"x":0,"y":-88}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","component_list":[{"declaration":{"identifier":"not1"},"description":{"description_string":"Logical not","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-108},{"x":40,"y":-88}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Sources.Constant","component_list":[{"declaration":{"identifier":"conInt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0"}}}}}]}},"description":{"description_string":"Integer constant, stage 0","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-118,"y":12},{"x":-98,"y":32}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","component_list":[{"declaration":{"identifier":"entSubst1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not use_enthalpy"}},"description":{"description_string":"Deactivates outdoor air enthalpy condition if there is no enthalpy sensor","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":180},{"x":-140,"y":200}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Or","component_list":[{"declaration":{"identifier":"or2"},"description":{"description_string":"Check if either the temperature or the enthalpy condition is satisfied","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":182},{"x":-40,"y":202}]}}}}}]}}]}}]},{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"TOut"}],"to":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":252},{"x":-240,"y":252},{"x":-240,"y":236},{"x":-202,"y":236}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"TOutCut"}],"to":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":212},{"x":-240,"y":212},{"x":-240,"y":224},{"x":-202,"y":224}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"hysOutTem"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-178,"y":230},{"x":-162,"y":230}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hOut"}],"to":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":172},{"x":-240,"y":172},{"x":-240,"y":156},{"x":-202,"y":156}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hOutCut"}],"to":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":132},{"x":-240,"y":132},{"x":-240,"y":144},{"x":-202,"y":144}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"hysOutEnt"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-178,"y":150},{"x":-162,"y":150}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uOutDam_min"}],"to":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-78},{"x":10,"y":-78},{"x":10,"y":-60},{"x":80,"y":-60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uOutDam_max"}],"to":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-38},{"x":-220,"y":-38},{"x":-220,"y":-76},{"x":80,"y":-76}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDamPhy_max"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-118},{"x":58,"y":-118}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_max"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-158},{"x":-158,"y":-158},{"x":-158,"y":-134},{"x":58,"y":-134}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":22},{"x":92,"y":22},{"x":92,"y":-8},{"x":-80,"y":-8},{"x":-80,"y":-48},{"x":-62,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yRetDam_max"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":-126},{"x":200,"y":-126},{"x":200,"y":-18},{"x":260,"y":-18}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":182,"y":-90},{"x":190,"y":-90},{"x":190,"y":-148},{"x":40,"y":-148},{"x":40,"y":-126},{"x":58,"y":-126}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":182,"y":-90},{"x":190,"y":-90},{"x":190,"y":-148},{"x":40,"y":-148},{"x":40,"y":-168},{"x":58,"y":-168}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-166},{"x":-22,"y":-166}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_max"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-158},{"x":-22,"y":-158}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_min"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-198},{"x":-152,"y":-198},{"x":-152,"y":-174},{"x":-22,"y":-174}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":2,"y":-166},{"x":20,"y":-166},{"x":20,"y":-176},{"x":58,"y":-176}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDamPhy_max"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-118},{"x":20,"y":-118},{"x":20,"y":-160},{"x":58,"y":-160}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"truFalHol"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":192},{"x":50,"y":192},{"x":50,"y":112},{"x":10,"y":112},{"x":10,"y":90},{"x":18,"y":90}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":90},{"x":50,"y":90},{"x":50,"y":22},{"x":58,"y":22}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1SupFan"}],"to":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":82},{"x":18,"y":82}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":80,"y":-68},{"x":70,"y":-68},{"x":70,"y":-44},{"x":62,"y":-44}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-22},{"x":28,"y":-22},{"x":28,"y":-44},{"x":38,"y":-44}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":158,"y":-90},{"x":126,"y":-90},{"x":126,"y":-22},{"x":-30,"y":-22},{"x":-30,"y":-48},{"x":-38,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"delOutDamOsc"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":38,"y":-52},{"x":20,"y":-52},{"x":20,"y":-48},{"x":2,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"delOutDamOsc"},{"dot_op":true},{"dot_op":false,"identifier":"u"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-22,"y":-48},{"x":-38,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"delRetDam"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-98},{"x":-22,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"delRetDam"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"not1"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":2,"y":-98},{"x":18,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":-98},{"x":158,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uFreProSta"}],"to":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":42},{"x":-80,"y":42}],"color":{"r":255,"g":127,"b":0}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"conInt"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-96,"y":22},{"x":-90,"y":22},{"x":-90,"y":34},{"x":-80,"y":34}],"color":{"r":255,"g":127,"b":0}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-56,"y":42},{"x":40,"y":42},{"x":40,"y":14},{"x":58,"y":14}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yOutDam_max"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":104,"y":-68},{"x":190,"y":-68},{"x":190,"y":42},{"x":260,"y":42}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yRetDam_min"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":-168},{"x":210,"y":-168},{"x":210,"y":-78},{"x":260,"y":-78}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"truFalHol"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":192},{"x":18,"y":192}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hysOutTem"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":230},{"x":-80,"y":230},{"x":-80,"y":192},{"x":-62,"y":192}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hysOutEnt"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":150},{"x":-100,"y":150},{"x":-100,"y":184},{"x":-62,"y":184}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"entSubst1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":190},{"x":-100,"y":190},{"x":-100,"y":184},{"x":-62,"y":184}],"color":{"r":255,"g":0,"b":255}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"enaDis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}]}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":180},{"x":100,"y":140}],"textString":"\"%name\"","textColor":{"r":0,"g":0,"b":255}}},{"name":"Line","attribute":{"points":[{"x":0,"y":60},{"x":80,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Line","attribute":{"points":[{"x":-80,"y":-60},{"x":0,"y":-60},{"x":0,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Text","attribute":{"extent":[{"x":-98,"y":38},{"x":-56,"y":24}],"textString":"\"u1SupFan\"","textColor":{"r":255,"g":0,"b":255},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":18},{"x":-44,"y":4}],"textString":"\"uFreProSta\"","textColor":{"r":255,"g":127,"b":0},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":68},{"x":-56,"y":54}],"textString":"\"hOutCut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":86},{"x":-70,"y":72}],"textString":"\"hOut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":116},{"x":-56,"y":102}],"textString":"\"TOutCut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":138},{"x":-72,"y":124}],"textString":"\"TOut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-100},{"x":-32,"y":-118}],"textString":"\"uRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-10},{"x":-28,"y":-28}],"textString":"\"uOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-30},{"x":-28,"y":-48}],"textString":"\"uOutDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-80},{"x":-12,"y":-98}],"textString":"\"uRetDamPhy_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-120},{"x":-32,"y":-138}],"textString":"\"uRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":110},{"x":96,"y":92}],"textString":"\"yOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":12},{"x":96,"y":-6}],"textString":"\"yRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":-88},{"x":96,"y":-106}],"textString":"\"yRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-260,"y":-280},{"x":240,"y":280}],"preserveAspectRatio":"false","initialScale":0.05}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":-2},{"x":220,"y":-250}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":58},{"x":220,"y":6}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":118},{"x":220,"y":66}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":258},{"x":220,"y":130}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":158},{"x":204,"y":138}],"textString":"\"Outdoor air\nconditions\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":52},{"x":298,"y":18}],"textString":"\"Freeze protection -\ndisable if stage1\nand above\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":-198},{"x":288,"y":-246}],"textString":"\"Damper position\nlimit assignments\nwith delays\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":84},{"x":214,"y":74}],"textString":"\"Supply fan status\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is a multi zone VAV AHU economizer enable/disable sequence\nbased on the Section 5.16.7 of the ASHRAE Guideline 36, May 2020. Additional\nconditions included in the sequence are: freeze protection (freeze protection\nstage 0-3, see Section 5.16.12), supply fan status (on or off, see Section 5.16.5).\n
\n\nThe economizer is disabled whenever the outdoor air conditions\nexceed the economizer high limit setpoint.\nThis sequence allows for all device types listed in\nASHRAE 90.1-2013 and Title 24-2013.\n
\n\nIn addition, the economizer gets disabled without a delay whenever any of the\nfollowing is true
:\n
u1SupFan = false
),\nstage0
.\n\nThe following state machine chart illustrates the transitions between enabling and disabling:\n
\n\n\n
\n\nAfter the disable signal is activated, the following procedure is applied, in order to\nprevent pressure fluctuations in the HVAC system:\n
\nyRetDam_max = uRetDamPhy_max
and\nyRetDam_min = uRetDamPhy_max
) for retDamFulOpeTim
\ntime period, after which the return damper gets released to its minimum outdoor airflow control position\n(yRetDam_max = uRetDam_max
and yRetDam_min = uRetDam_max
).\nyOutDam_max = uOutDam_min
)\nafter a disDel
time delay.\nand2
as this input\nwas always true
if and2.u2 = true
.\n\nThis is a multi zone VAV AHU economizer enable/disable sequence\nbased on the Section 5.16.7 of the ASHRAE Guideline 36, May 2020. Additional\nconditions included in the sequence are: freeze protection (freeze protection\nstage 0-3, see Section 5.16.12), supply fan status (on or off, see Section 5.16.5).\n
\n\nThe economizer is disabled whenever the outdoor air conditions\nexceed the economizer high limit setpoint.\nThis sequence allows for all device types listed in\nASHRAE 90.1-2013 and Title 24-2013.\n
\n\nIn addition, the economizer gets disabled without a delay whenever any of the\nfollowing is true
:\n
u1SupFan = false
),\nstage0
.\n\nThe following state machine chart illustrates the transitions between enabling and disabling:\n
\n\n\n
\n\nAfter the disable signal is activated, the following procedure is applied, in order to\nprevent pressure fluctuations in the HVAC system:\n
\nyRetDam_max = uRetDamPhy_max
and\nyRetDam_min = uRetDamPhy_max
) for retDamFulOpeTim
\ntime period, after which the return damper gets released to its minimum outdoor airflow control position\n(yRetDam_max = uRetDam_max
and yRetDam_min = uRetDam_max
).\nyOutDam_max = uOutDam_min
)\nafter a disDel
time delay.\nand2
as this input\nwas always true
if and2.u2 = true
.\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithComponent.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithComponent.mo","checksum":"281aad05f29e1c0dbe664b7fd994584b"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithComponent","description_string":"A block that places info section in component annotation","composition":{"element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithComponent.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithComponent.mo","checksum":"281aad05f29e1c0dbe664b7fd994584b"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/MisplacedInfoWithEquation.json b/test/reference/json/test/FromModelica/MisplacedInfoWithEquation.json index 248562fe..908790aa 100644 --- a/test/reference/json/test/FromModelica/MisplacedInfoWithEquation.json +++ b/test/reference/json/test/FromModelica/MisplacedInfoWithEquation.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithEquation","description_string":"A block that places info section in equation section","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y1"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y2"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":0,"y":-10},{"x":20,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u"}],"to":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":0},{"x":-2,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":22,"y":0},{"x":110,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"assignment_equation":{"lhs":"y2","rhs":{"simple_expression":"k*u"}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nBlock that outputs y = 2 * u
.\n
\nBlock that outputs y = 2 * u
.\n
\nThis is the info section.\n
\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithParameter.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithParameter.mo","checksum":"c204c4aff17fd78827ce77399626da43"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithParameter","description_string":"A block that places info section in parameter annotation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithParameter.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithParameter.mo","checksum":"c204c4aff17fd78827ce77399626da43"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/MyController.json b/test/reference/json/test/FromModelica/MyController.json index d35a09d1..e2219d6a 100644 --- a/test/reference/json/test/FromModelica/MyController.json +++ b/test/reference/json/test/FromModelica/MyController.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MyController","description_string":"My controller","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u1"},"description":{"description_string":"Real input 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u2"},"description":{"description_string":"Real input 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Add","component_list":[{"declaration":{"identifier":"add2"},"description":{"description_string":"Add two real inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"SubController","component_list":[{"declaration":{"identifier":"subCon1"},"description":{"description_string":"Sub controller","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"SubController","component_list":[{"declaration":{"identifier":"subCon2"},"description":{"description_string":"Sub controller","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":40},{"x":-60,"y":40},{"x":-60,"y":6},{"x":-12,"y":6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-60,"y":-40},{"x":-60,"y":-6},{"x":-12,"y":-6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":0},{"x":120,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"subCon1"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-12,"y":-40}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"subCon2"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-60,"y":-40},{"x":-60,"y":-80},{"x":-12,"y":-80}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"My Device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"myCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/MyController.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo","checksum":"f24bbd7358809191544bc5c2f05ea2be"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MyController","description_string":"My controller","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u1"},"description":{"description_string":"Real input 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u2"},"description":{"description_string":"Real input 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Add","component_list":[{"declaration":{"identifier":"add2"},"description":{"description_string":"Add two real inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"SubController","component_list":[{"declaration":{"identifier":"subCon1"},"description":{"description_string":"Sub controller","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"SubController","component_list":[{"declaration":{"identifier":"subCon2"},"description":{"description_string":"Sub controller","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":40},{"x":-60,"y":40},{"x":-60,"y":6},{"x":-12,"y":6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-60,"y":-40},{"x":-60,"y":-6},{"x":-12,"y":-6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":0},{"x":120,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"subCon1"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-12,"y":-40}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"subCon2"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-60,"y":-40},{"x":-60,"y":-80},{"x":-12,"y":-80}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"My Device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"myCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/MyController.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo","checksum":"f24bbd7358809191544bc5c2f05ea2be"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/NoClassComment.json b/test/reference/json/test/FromModelica/NoClassComment.json index 894da52e..6cade5b9 100644 --- a/test/reference/json/test/FromModelica/NoClassComment.json +++ b/test/reference/json/test/FromModelica/NoClassComment.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"NoClassComment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/NoClassComment.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/NoClassComment.mo","checksum":"bc50f3b9de57424453c131ccb74edd18"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"NoClassComment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/NoClassComment.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/NoClassComment.mo","checksum":"bc50f3b9de57424453c131ccb74edd18"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/NoWithin.json b/test/reference/json/test/FromModelica/NoWithin.json index 303fa7bc..dd90894e 100644 --- a/test/reference/json/test/FromModelica/NoWithin.json +++ b/test/reference/json/test/FromModelica/NoWithin.json @@ -1 +1 @@ -{"class_definition":[{"class_prefixes":"package","class_specifier":{"long_class_specifier":{"identifier":"FromModelica","description_string":"Package with test models","composition":{"element_list":[{"component_clause":{"type_prefix":"constant","type_specifier":"Integer","component_list":[{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}}]}}]}}}}],"modelicaFile":"test/FromModelica/NoWithin.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/NoWithin.mo","checksum":"6946b4805e8b2df0d49bf78a3b7dcbf1"} \ No newline at end of file +{"class_definition":[{"class_prefixes":"package","class_specifier":{"long_class_specifier":{"identifier":"FromModelica","description_string":"Package with test models","composition":{"element_list":[{"component_clause":{"type_prefix":"constant","type_specifier":"Integer","component_list":[{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}}]}}]}}}}],"modelicaFile":"test/FromModelica/NoWithin.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/NoWithin.mo","checksum":"6946b4805e8b2df0d49bf78a3b7dcbf1"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Parameter1.json b/test/reference/json/test/FromModelica/Parameter1.json index c0ef24e2..d41d115d 100644 --- a/test/reference/json/test/FromModelica/Parameter1.json +++ b/test/reference/json/test/FromModelica/Parameter1.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter1","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter1.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter1.mo","checksum":"0e923225decf43f3a5d2909de067020a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter1","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter1.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter1.mo","checksum":"0e923225decf43f3a5d2909de067020a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Parameter1WithVendorAnnotation.json b/test/reference/json/test/FromModelica/Parameter1WithVendorAnnotation.json index 1358d3f9..38f09c67 100644 --- a/test/reference/json/test/FromModelica/Parameter1WithVendorAnnotation.json +++ b/test/reference/json/test/FromModelica/Parameter1WithVendorAnnotation.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter1WithVendorAnnotation","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter1WithVendorAnnotation.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter1WithVendorAnnotation.mo","checksum":"0989e7e5efae6c250452ffe516f27b6a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter1WithVendorAnnotation","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter1WithVendorAnnotation.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter1WithVendorAnnotation.mo","checksum":"0989e7e5efae6c250452ffe516f27b6a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Parameter2.json b/test/reference/json/test/FromModelica/Parameter2.json index 3edf68a5..c4996c80 100644 --- a/test/reference/json/test/FromModelica/Parameter2.json +++ b/test/reference/json/test/FromModelica/Parameter2.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter2","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParNoValue"},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParMin","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParMax","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParUnit","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInGroup"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Gains\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTab"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTabInGroup1"},"description":{"description_string":"Some comment 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTabInGroup2"},"description":{"description_string":"Some comment 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter2.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo","checksum":"f32d29f67c0b2c67f8d9d1cc431a9a7a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter2","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParNoValue"},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParMin","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParMax","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParUnit","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInGroup"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Gains\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTab"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTabInGroup1"},"description":{"description_string":"Some comment 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTabInGroup2"},"description":{"description_string":"Some comment 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter2.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo","checksum":"f32d29f67c0b2c67f8d9d1cc431a9a7a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Parameter3.json b/test/reference/json/test/FromModelica/Parameter3.json index 4e6e9206..ee11b77f 100644 --- a/test/reference/json/test/FromModelica/Parameter3.json +++ b/test/reference/json/test/FromModelica/Parameter3.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter3","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Temperature","component_list":[{"declaration":{"identifier":"myParUnit"},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter3.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter3.mo","checksum":"501764c45f288d6fc10f2033200915fe"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter3","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Temperature","component_list":[{"declaration":{"identifier":"myParUnit"},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter3.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter3.mo","checksum":"501764c45f288d6fc10f2033200915fe"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ParameterWithAttributes.json b/test/reference/json/test/FromModelica/ParameterWithAttributes.json index 9f15a5d0..b4478568 100644 --- a/test/reference/json/test/FromModelica/ParameterWithAttributes.json +++ b/test/reference/json/test/FromModelica/ParameterWithAttributes.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithAttributes","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"start","modification":{"equal":true,"expression":{"simple_expression":"0.2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"fixed","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"PressureDifference\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"Pa\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"nominal","modification":{"equal":true,"expression":{"simple_expression":"0.5"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"stateSelect","modification":{"equal":true,"expression":{"simple_expression":"StateSelect.default"}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithAttributes.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithAttributes.mo","checksum":"eb2254fd49d797804e87f15abe4f5f90"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithAttributes","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"start","modification":{"equal":true,"expression":{"simple_expression":"0.2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"fixed","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"PressureDifference\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"Pa\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"nominal","modification":{"equal":true,"expression":{"simple_expression":"0.5"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"stateSelect","modification":{"equal":true,"expression":{"simple_expression":"StateSelect.default"}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithAttributes.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithAttributes.mo","checksum":"eb2254fd49d797804e87f15abe4f5f90"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ParameterWithDefaultName.json b/test/reference/json/test/FromModelica/ParameterWithDefaultName.json index a71da5bb..531d1582 100644 --- a/test/reference/json/test/FromModelica/ParameterWithDefaultName.json +++ b/test/reference/json/test/FromModelica/ParameterWithDefaultName.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithDefaultName","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"testName\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithDefaultName.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithDefaultName.mo","checksum":"5f503f9e0a1faba6be8d40bf8b47b17a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithDefaultName","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"testName\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithDefaultName.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithDefaultName.mo","checksum":"5f503f9e0a1faba6be8d40bf8b47b17a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ParameterWithInfo.json b/test/reference/json/test/FromModelica/ParameterWithInfo.json index ab33e03f..962d428d 100644 --- a/test/reference/json/test/FromModelica/ParameterWithInfo.json +++ b/test/reference/json/test/FromModelica/ParameterWithInfo.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithInfo","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithInfo.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithInfo.mo","checksum":"fa8ebd448412a8412c3e7c9a5e435b54"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithInfo","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithInfo.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithInfo.mo","checksum":"fa8ebd448412a8412c3e7c9a5e435b54"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ParameterWithVendorAnnotationInInfo.json b/test/reference/json/test/FromModelica/ParameterWithVendorAnnotationInInfo.json index 10c3f620..3acdf4e7 100644 --- a/test/reference/json/test/FromModelica/ParameterWithVendorAnnotationInInfo.json +++ b/test/reference/json/test/FromModelica/ParameterWithVendorAnnotationInInfo.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithVendorAnnotationInInfo","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","checksum":"83588dec36f54d69b94596dffb0570c6"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithVendorAnnotationInInfo","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n\nThis is the info section.\n
\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","checksum":"83588dec36f54d69b94596dffb0570c6"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/PointList.json b/test/reference/json/test/FromModelica/PointList.json index 31fd35ce..e9259674 100644 --- a/test/reference/json/test/FromModelica/PointList.json +++ b/test/reference/json/test/FromModelica/PointList.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"PointList","description_string":"Block demonstrating point list generation","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u1"},"description":{"description_string":"Input one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u2"},"description":{"description_string":"Input two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y1"},"description":{"description_string":"Output one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]},"iconTransformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y2"},"description":{"description_string":"Output two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]},"iconTransformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"MyController","component_list":[{"declaration":{"identifier":"con1"},"description":{"description_string":"Subcontroller one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon1\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2.u\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":50},{"x":10,"y":70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"MyController","component_list":[{"declaration":{"identifier":"con2"},"description":{"description_string":"Subcontroller two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-70},{"x":10,"y":-50}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":60},{"x":-80,"y":60},{"x":-80,"y":66},{"x":-12,"y":66}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":60},{"x":-80,"y":60},{"x":-80,"y":-54},{"x":-12,"y":-54}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-60},{"x":-60,"y":-60},{"x":-60,"y":54},{"x":-12,"y":54}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-60},{"x":-60,"y":-60},{"x":-60,"y":-66},{"x":-12,"y":-66}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":60},{"x":120,"y":60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":-60},{"x":120,"y":-60}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Test device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"poiLis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/PointList.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo","checksum":"a338cdddb4ffca9427753c7e548c9913"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"PointList","description_string":"Block demonstrating point list generation","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u1"},"description":{"description_string":"Input one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u2"},"description":{"description_string":"Input two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y1"},"description":{"description_string":"Output one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]},"iconTransformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y2"},"description":{"description_string":"Output two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]},"iconTransformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"MyController","component_list":[{"declaration":{"identifier":"con1"},"description":{"description_string":"Subcontroller one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon1\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2.u\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":50},{"x":10,"y":70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"MyController","component_list":[{"declaration":{"identifier":"con2"},"description":{"description_string":"Subcontroller two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-70},{"x":10,"y":-50}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":60},{"x":-80,"y":60},{"x":-80,"y":66},{"x":-12,"y":66}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":60},{"x":-80,"y":60},{"x":-80,"y":-54},{"x":-12,"y":-54}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-60},{"x":-60,"y":-60},{"x":-60,"y":54},{"x":-12,"y":54}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-60},{"x":-60,"y":-60},{"x":-60,"y":-66},{"x":-12,"y":-66}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":60},{"x":120,"y":60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":-60},{"x":120,"y":-60}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Test device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"poiLis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/PointList.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo","checksum":"a338cdddb4ffca9427753c7e548c9913"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/RemovableInputs.json b/test/reference/json/test/FromModelica/RemovableInputs.json index 15b02227..f6ce35da 100644 --- a/test/reference/json/test/FromModelica/RemovableInputs.json +++ b/test/reference/json/test/FromModelica/RemovableInputs.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"RemovableInputs","description_string":"A block with a flag for disabling instances","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"have_winSen"},"description":{"description_string":"True: there is window status sensor"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"have_occSen"},"description":{"description_string":"True: there is occupancy sensor"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOutWitDef","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input with specified default value","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-70},{"x":-100,"y":-30}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"default","modification":{"equal":true,"expression":{"simple_expression":"300.15"}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"uWin"},"condition_attribute":{"expression":{"simple_expression":"have_winSen"}},"description":{"description_string":"Window opening status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-100},{"x":-100,"y":-60}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"nOcc"},"condition_attribute":{"expression":{"simple_expression":"have_occSen"}},"description":{"description_string":"Occupancy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/RemovableInputs.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo","checksum":"7a988d501ae4cbf362d7ebe12fc22ec3"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"RemovableInputs","description_string":"A block with a flag for disabling instances","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"have_winSen"},"description":{"description_string":"True: there is window status sensor"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"have_occSen"},"description":{"description_string":"True: there is occupancy sensor"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOutWitDef","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input with specified default value","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-70},{"x":-100,"y":-30}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"default","modification":{"equal":true,"expression":{"simple_expression":"300.15"}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"uWin"},"condition_attribute":{"expression":{"simple_expression":"have_winSen"}},"description":{"description_string":"Window opening status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-100},{"x":-100,"y":-60}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"nOcc"},"condition_attribute":{"expression":{"simple_expression":"have_occSen"}},"description":{"description_string":"Occupancy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":{"logical_expression":{"logical_or":[{"logical_and":[{"not":true,"arithmetic_expressions":[{"name":"enaBlo"}]}]}]}}}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/RemovableInputs.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo","checksum":"7a988d501ae4cbf362d7ebe12fc22ec3"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/SubController.json b/test/reference/json/test/FromModelica/SubController.json index 5f57f3e8..678f4082 100644 --- a/test/reference/json/test/FromModelica/SubController.json +++ b/test/reference/json/test/FromModelica/SubController.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"SubController","description_string":"Subsequence","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Real input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Sub Device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"subCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/SubController.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubController.mo","checksum":"38c289724f1c7e4b77eaf836a931110c"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"SubController","description_string":"Subsequence","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Real input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Sub Device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"subCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/SubController.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubController.mo","checksum":"38c289724f1c7e4b77eaf836a931110c"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/TestEvaluation_1.json b/test/reference/json/test/FromModelica/TestEvaluation_1.json index 01ace663..37d80d02 100644 --- a/test/reference/json/test/FromModelica/TestEvaluation_1.json +++ b/test/reference/json/test/FromModelica/TestEvaluation_1.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_1","description_string":"Example for real parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Constant output value"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Sources.Constant","component_list":[{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":10},{"x":0,"y":30}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_1.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_1.mo","checksum":"0676898cf3a851d88a18a05c8341d611"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_1","description_string":"Example for real parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Constant output value"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Sources.Constant","component_list":[{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":10},{"x":0,"y":30}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_1.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_1.mo","checksum":"0676898cf3a851d88a18a05c8341d611"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/TestEvaluation_2.json b/test/reference/json/test/FromModelica/TestEvaluation_2.json index 6a289d78..06446580 100644 --- a/test/reference/json/test/FromModelica/TestEvaluation_2.json +++ b/test/reference/json/test/FromModelica/TestEvaluation_2.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_2","description_string":"Example for real parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"uLow","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}],"equal":true,"expression":{"simple_expression":"0.5"}}},"description":{"description_string":"if y=true and u