JSON-Syntax
Modell-Objekt - JSON-Syntax
Das REXS Modell ist in einem JSON-Objekt namens "model" enthalten. Dieses beinhaltet eine Reihe von Namen-Wert-Paaren. Neben den Metadaten ("version", "applicationId", "applicationVersion", "date", "applicationLanguage") enthält das "model"-Objekt die "relations" und "components" Arrays, sowie ggfs. ein "load_spectrum" Objekt.
Beispiel Modell REXS-Datei | JSON-Syntax
{"model": { "version": "1.4", "applicationId":"FVA-Workbench", "applicationVersion":"7.0.0", "date":"2021-11-03T11:35:17+01:00", "applicationLanguage":"en", "relations": [...], "components": [...], "load_spectrum": {...} (optional) } }
Komponenten - JSON-Syntax
Das "components" Array enthält eine Liste von JSON Objekten. Jedes dieser Objekte enthält die Namen-Wert-Paare "id" (Id der Komponente), "name" (Bezeichnung der Komponente), "type" (Komponententyp), sowie das "attributes" Array.
Beispiel Komponenten | JSON-Syntax
"components":[ {"id":4, "type"="cylindrical_gear", "name":"Pinion", "attributes": [ {"id": "attr1", "boolean": false}, {"id": "attr2", "unit": "none", "floating_point": 0.1}, ... ] }, {"id":6, "type"="cylindrical_gear", "name":"Wheel", "attributes": [ ... ] } ]
Attributwerte - JSON-Syntax
Dass "attributes" Array enthält eine Liste von Objekten mit den folgenden Namen-Wert-Paaren: "id" (Attribut-Id), "unit" (Einheit, bei bestimmten Datentypen notwendig), sowie dem Attributwert. Um eine JSON-Validierung zu ermöglichen wird dabei je nach Datentyp ein unterschiedlicher Kenner verwendet. Die verfügbaren Kenner werden im folgenden aufgelistet. Für Details zu binärcodierten Arrays und Matrizen siehe auch Anmerkung und Anmerkung.
Datentyp | Details | JSON-Kenner | JSON Beispielwert |
---|---|---|---|
scalar | Skalare Werte | ||
boolean | true, false | boolean | false |
string | string | "NU 206" | |
integer | integer | 3 | |
floating_point | Das Gleitkomma-Zeichen ist „ . “ (Punkt). maximale Anzahl signifikanter Stellen: 15 | floating_point | 2.0 |
enum | haben einen vorgegebenen Wertebereich | enum | "both_directions" |
reference_component | Id der Referenzkomponente für die Pose-Angabe | reference_component | 1 |
file_reference | Verweis auf Datei oder Ordner (relativ oder absolut) | file_reference | "example.gde" |
array | Eindimensionales Array aus Werten | ||
floating_point_array | Das Gleitkomma-Zeichen ist „ . “ (Punkt). maximale Anzahl signifikanter Stellen: 15 | floating_point_array | [1.0,0.0,0.0] |
floating_point_array | in Binärform | floating_point_array_coded | {"code": "float64", "value": "62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA"}} |
integer_array | integer_array | [1,2,3] | |
boolean_array | boolean_array | [true,false,true] | |
string_array | string_array | ["example 1","example 2"] | |
enum_array | Der Datentyp enum_array ist neu. Array von enum-Werten | enum_array | ["quad4","triangle3","quad4"] |
matrix | Zweidimensionales Array aus Werten bei dem jede Zeile die gleiche Länge hat | ||
floating_point_matrix | Das Gleitkomma-Zeichen ist „ . “ (Punkt). maximale Anzahl signifikanter Stellen: 15 | floating_point_matrix | [[1.0,0.0,0.0],[0.0,1.0,0.0],[0.0,0.0,1.0]] |
floating_point_matrix | In Binärform | floating_point_matrix_coded | {"code": "float64", "rows":2, "columns":3 "value": "AAAAAAAA8D8AAAAAAAAQQAAAAAAAAABAAAAAAAAAFEAAAAAAAAAIQAAAAAAAABhA"}} |
integer_matrix | integer_matrix | [[1,0,0],[0,1,0],[0,0,1]] | |
boolean_matrix | boolean_matrix | [[true,false,true],[false,false,true],[true,false,false]] | |
string_matrix | string_matrix | [["example 1","example 2"],["example 3","example 4"]] | |
array_of_arrays | Zweidimensionales Array bei dem die Zeilen unterschiedliche Länge haben können | ||
array_of_integer_arrays | array_of_integer_arrays | [[1,2,3,4],[1,3,4,5,6],[7,9,11]] |
Beispiel Attributliste | JSON-Syntax
"attributes":[ {"id": "name", "string": "30203-A"}, {"id": "normal_module", "unit": "mm", "floating_point": 2.0}, {"id": "addendum_modification_coefficient", "unit": "none", "floating_point": 0.1}, {"id": "number_of_gears", "integer": 3}, {"id": "is_driving_gear", "boolean": false}, {"id": "axial_force_absorption", "enum": "both_directions" }, {"id": "u_axis_vector", "unit": "mm","floating_point_array": [1.0,0.0,0.0]}, {"id": "matrix_correction", "unit": "mm", "floating_point_matrix": [[1.0,0.0,0.0],[0.0,1.0,0.0],[0.0,0.0,1.0]] }, {"id": "example_array_coded", "unit": "mm", "floating_point_array_coded": {"code": "float64", "value": "62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA"}}, {"id": "example_matrix_coded", "unit": "mm", "floating_point_matrix_coded": {"code": "float64", columns="3", rows="2", "value": "AAAAAAAA8D8AAAAAAAAQQAAAAAAAAABAAAAAAAAAFEAAAAAAAAAIQAAAAAAAABhA62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA"}}, {"id": "element_structure", "array_of_integer_arrays": [[108,2,1,107,7],[0,1,0],[0,7,0,1]]}, ]
Relationen - JSON-Syntax
Das "relations" Array enthält eine Liste von JSON Objekten. Jedes dieser Objekte enthält die Namen-Wert-Paare "id" (Id der Relation), "type" (Relationstyp), "order" (bei entsprechenden Relations-typen) und das "refs" Array. Dieses enthält eine Liste von Objekten mit den Namen-Wert-Paaren "role" (Rolle der Komponente in der Relation) "id" (Id der Komponente in der Relation), "hint" (optionale Ergänzung zur besseren Lesbarkeit).
Beispiel Relationen REXS-Datei | JSON-Syntax
"relations": [ {"id":15, "type":"ordered_assembly", "order":1, "refs": [ {"id":8, "role":"assembly", "hint":"bearing"}, {"id":16, "role":"part", "hint":"bearing_row"} ] }, {"id":23, "type":"stage", "refs": [ {"id":3, "role":"stage", "hint":"cylindrical_stage"}, {"id":7, "role":"gear_1", "hint":"cylindrical_gear"}, {"id":9, "role":"gear_2", "hint":"cylindrical_gear"} ] }, ]
"load_spectrum" Objekt - JSON-Syntax
Das "load_spectrum" Objekt enthält die Namen-Wert-Paare "id" (Id des Lastkollektivs), "accumulation" (Submodell für akkumulierte Werte des Kollektivs), sowie das "load_cases" Array. Das "accumulation" Objekt enthält ein "components" Array. Das "load_cases" Array enthält eine Liste von JSON Objekten die jeweils eine "id" sowie ein "components" Array beinhalten.
Beispiel Lastkollektiv | JSON-Syntax
"load_spectrum": { "id": 1, "load_cases": [ { "id": 1, "components": [ { "id": 1, "attributes": [...]}, { ... }, ... ] }, { "id": 2, "components": [ { "id": 2, "attributes": [...]}, { ... }, ... ] }, ... ] "accumulation": { "components": [ { "id": 2, "attributes": [...]}, { ... }, ... ] } }
Beispiel Modell - JSON-Syntax
Beispiel Modell | JSON-Syntax
{ "model": { "applicationId": "Bearinx", "applicationVersion": "12.0.8823", "date": "2021-07-01T12:18:38+01:00", "version": "1.3", "relations": [ { "id": 48, "type": "assembly", "refs": [ {"hint": "gear_unit","id": 1,"role": "assembly"}, {"hint": "gear_casing","id": 2,"role": "part"} ] }, { "id": 49, "type": "side", "refs": [ {"hint": "concept_bearing","id": 40,"role": "assembly"}, {"hint": "shaft","id": 13,"role": "inner_part"}, {"hint": "gear_casing","id": 2,"role": "outer_part"} ] } ... ] "components": [ { "id": 1, "name": "Transmission unit", "type": "gear_unit", "attributes": [ {"id": "example_string", "string": "30203-A"}, {"id": "example_floating_point_unit", "unit": "mm", "floating_point": 2.0}, {"id": "example_floating_point_without_unit", "unit": "none", "floating_point": 0.1}, {"id": "example_integer", "integer": 3}, {"id": "example_boolean", "boolean": false}, {"id": "example_enum", "enum": "both_directions" }, {"id": "example_floating_point_array", "unit": "mm","floating_point_array": [1.0,0.0,0.0]}, {"id": "example_floating_point_matrix", "unit": "mm", "floating_point_matrix": [[1.0,0.0,0.0], [0.0,1.0,0.0], [0.0,0.0,1.0]] }, {"id": "example_array_coded", "unit": "mm", "floating_point_array_coded": {"code": "float64", "value": "62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA"}}, {"id": "example_array_of_arrays", "array_of_integer_arrays": [[108,2,1,107,7],[0,1,0],[0,7,0,1]]}, ] } { "id": 2, "name": "Input shaft", "type": "shaft", "attributes": [ ... ] } ... ] "load_spectrum": { "id": 1, "load_cases": [ { "id": 2, "components": [ { "id": 2, "attributes": [ ... ] }, { ... }, ... ] }, { ... } ] "accumulation": { "components": [ { "id": 2, "attributes": [ ... ] }, { ... }, ... ] } } } }