Skip to main content

REXS V1.6

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": [	...	]
				},
				{ ... },
				...
			]
		}
	 }
 }
}