Skip to main content

REXS V1.7

REXS object structure

Model Object

The REXS model is contained in an XML or JSON object called "model."

Table 1. Overview of REXS model metadata

Feature

Description

Part of the REXS file

version

Version of the REXS interface

Format: mainversionnumber.subversionnumber

Example: version="1.2"

applicationId

Name of the application that generated the XML file; e.g., "FVA-Workbench"

applicationVersion

Version of the application

date

Time at which the file was created

Date and time according to ISO 8601 in the following format:

"yyyy-mm-ddThh:mm:ss+<offset to UTC>"

Example: 2016-06-03T11:35:17+01:00

applicationLanguage

Optional: specification of the language used in the application

Language code according to 639-1

Example: applicationLanguage="en"



Model Object - XML syntax

The REXS model is contained in an XML tag called "model," which includes the "relations" and "components" tags as well as the "load_spectrum" tag, if applicable.

Example model REXS file | XML syntax

<model version="1.4" applicationId="FVA-Workbench" applicationVersion="7.0.0" date="2021-11-03T11:35:17+01:00" applicationLanguage="en">
	<relations>...</relations>
	<components>...</components>
	<load_spectrum>...</load_spectrum> (optional)
</model>
Model object - JSON syntax

The REXS model is contained in a JSON object called "model," which includes a row of name-value pairs. In addition to the metadata ("version," "applicationId," "applicationVersion," "date," "applicationLanguage"), the "model" object contains the "relations" and "components" arrays, as well as a "load_spectrum" object if applicable.

Example model REXS file | 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)
	   } }

Component structure

Feature

Description

Details

Part of the REXS file

type

Type of component; e.g., shaft

Data type: enum

Naming convention List of components

id

Unique identifier for the component in the concrete instance of the model

Data type: integer

name

User-defined identifier for the component in the concrete instance of the model

Data type: string

optional

Metadata (in the database)

designation

Component name (multi-lingual)

Components - XML Syntax

Components are described in the interface file with the <component></component> XML tag.

The contents of the tag are the attributes associated with the component.

Example components | XML syntax

<components>
	<component id="4" type="cylindrical_gear" name="Pinion">
		<attribute id="attr1"> .. </attribute>
		<attribute id="attr2"> .. </attribute>
		...
	</component >
	<component id="6" type="cylindrical_gear" name="Wheel">
		<attribute id="attr1"> .. </attribute>
		<attribute id="attr2"> .. </attribute>
		...
	</component >
</components>
Components - JSON syntax

The "components" array contains a list of JSON objects. Each of these objects includes the name-value pairs "id" (ID of the component), "name" (component name), "type" (component type), as well as the "attributes" array.

Example components | 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": [
			...
		]
	}
]

Attribute structure

Feature

Description

Details

Part of the REXS file

id

Unique attribute identifier in REXS

Data type: string

unit

The SI system is the preferred unit measurement system. The unit to be used for each attribute is specified in the attribute database.

All values of an array or a matrix use the same unit of measurement.

Unit conventions

Optional in REXS file

origin

Option for an application to identify an attribute value as either "user_defined" or "calculated." The distinction of which attributes can be input parameters and/or output parameters is application specific. Therefore, this is not defined in the standard and it is up to each application to determine whether or not this additional information should be considered when reading a REXS file.

Optional

Metadata (in the database)

component

Component type of the attribute

The XML hierarchy is used for allocation of components in the REXS file (see example cylindrical gear component)

numeric_id

Consecutive numbering in the Product Model

type

Data type of the attribute value

List of data types

value_range

Value or validity range

Value range

symbol

Symbol of the attribute, if applicable

designation

Attribute identifier (multi-lingual)

description

Unique attribute definition (multi-lingual)

Permitted data types

The following data types are available for attributes:

Data type

Details

scalar

Scalar values

boolean

true, false

string

integer

floating_point

Maximum number of significant digits: 15

enum

Has a specified value range

file_reference

Reference to a file or folder (relative or absolute)

reference_component

Reference to a component ID

date_time

Date and time according to ISO 8601 in the following format:

"yyyy-mm-ddThh:mm:ss+<offset to UTC>"

Example: 2016-06-03T11:35:17+01:00

array

One-dimensional array of values

floating_point_array

integer_array

boolean_array

string_array

enum_array

Array of enum values

matrix

Two-dimensional array of values, where each row has the same length

floating_point_matrix

integer_matrix

boolean_matrix

string_matrix

array_of_arrays

Two-dimensional array of values, where the rows can have different lengths

array_of_integer_arrays

Value range - "value_range"

For numerical attributes, the permissible domain is specified in the REXS database in interval notation. The following convention applies:

  • Opening bracket: interval lower limit

  • Closing bracket: interval upper limit

Also:

  • Parentheses: limit is not included in the interval (< / >)

  • Brackets: limit is included in the interval (<= / >=)

Table 2. Examples for value ranges

Value range

Notation

0 < value

(0; ∞)

0 <= value < 1

[0; 1)

-90 <= value <= 90

[-90;90]

indefinite

(-∞; ∞)



The value range for enum attributes is also included in the REXS database.

Rules for assigning units

The units in which each attribute is to be specified are defined in the REXS database. If no units are associated with the attribute, "none" should be specified. Specifying a unit other than what is defined in the REXS database is not permitted, even if it can be converted. If applications use different units internally, they must be converted to/from the unit specified in REXS.

The list of possible units can be viewed in the REXS database.

Convention

  • Absolute temperatures must always be specified in °C

  • Temperature differences must always be specified in K

Rules for assigning the Unit ID:

  • A maximum of one SI prefix is added before the unit. Example: mm

  • Use a space to identify multiplication of units. Example: N m

  • Powers are represented by ^. Example: m^2

  • Fractions are represented by /. Use parentheses to indicate multiplication in the denominator. Example: kg / (m^2 s^3)

Base64 Encoding of Attributes

If arrays and matrices exceed a certain size, it may be practical to save them in the REXS file in binary format for performance reasons.

An array is first converted into binary format. The byte order is "Little Endian.“ In the second step, the byte array is then converted into a string using base64 encoding. This string is then available in the REXS file. The binary format used must also be indicated (int32, float64, or float32).

The procedure for encoding of matrices is as follows: first, the 2d matrix is converted column-by-column into a 1d array (array = [column1, column2, ...]). This is then converted to binary format as described above (the byte order is "Little Endian“) and finally converted to a string using base64 encoding. In addition to specification of the binary format (int32, float64, float32), specification of the number of rows and columns of the matrix is also required.

For more information on identification of base64 encoded attributes in the REXS file, see XML syntaxJSON syntax, and Code examples

Attribute values - XML syntax

Feature

Description

Scalar attribute values

The value of the attribute is specified in the "attribute" tag; e.g., <attribute …>4.72</attribute>.

The floating-point symbol is "." (period).

Array values

array

The "array" tag encloses the columns of a one-dimensional array.

c

The "c" (column) tag indicates a column of the array, and encloses a scalar entry of the array (see example below)

The floating-point symbol is "." (period).

code

If arrays exceed a certain size, it may be helpful to store them in binary format in the REXS file for performance reasons. This can be done using the optional "code" xml attribute in the array tag. The following variants are available:

  • <array code="int32">

  • <array code="float64">

  • <array code="float32">

If the array is entered in binary format, the "c" tags are omitted.

Matrix values

matrix

The "matrix" tag encloses the rows of a matrix.

r

The "r" tag (row) identifies a row of the matrix, and encloses a list of "c" entries. The contents of all rows must be the same length.

c

The "c" tag (column) identifies a column of the matrix, and encloses a scalar entry of the matrix (see example below).

The floating-point symbol is "." (period).

code, rows, columns

If matrices exceed a certain size, it may be helpful to store them in binary format in the REXS file for performance reasons. This can be done using the optional "code" xml attribute in the matrix tag. For binary encoded matrices, the number of rows and columns must also be specified via "rows" and "columns" in the matrix tag. This is necessary to be able to convert the 1d byte array back into a 2d matrix during decoding. The following variants are available:

  • <matrix code="int32" rows="x" columns="y">

  • <matrix code="float64" rows="x" columns="y">

  • <matrix code="float32" rows="x" columns="y">

If the matrix is entered in binary format, the "r" and "c" tags are omitted.

Array-of-array values

array_of_arrays

The "array_of_arrays" tag encloses the rows of an array-of-arrays.

array

The "array" tag identifies a row of the array-of-arrays, and encloses a list of "c" entries. The rows may be different lengths.

c

The "c" tag (column) identifies a column of an array, and encloses a scalar entry of the array-of-arrays (see example below).

Example Attribute - XML Syntax

Example string attribute | XML syntax

<attribute id="name">30203-A</attribute>

Example double-attribute with unit | XML syntax

<attribute id="normal_module" unit="mm">23.5</attribute>

Example double-attribute without unit | XML syntax

<attribute id="addendum_modification_coefficient" unit="none">0.5</attribute>

Example attribute with origin="user_defined" | XML syntax

<attribute id=addendum_modification_coefficient" unit="none" origin="user_defined">0.5</attribute>

Example attribute with origin="calculated" | XML syntax

<attribute id=addendum_modification_coefficient" unit="none" origin="calculated">0.5</attribute>

Example integer attribute without unit | XML syntax

<attribute id="number_of_teeth" unit="none">8</attribute>

Example boolean attribute | XML syntax

<attribute id="is_driving_gear">false</attribute>

Example enum attribute | XML syntax

<attribute id="axial_force_absorption">both_directions</attribute>

Example array attribute | XML syntax

<attribute id="support_vector" unit="mm">
	<array>
		<c>1.0</c>
		<c>1.0</c>
		<c>0.0</c>
	</array>
</attribute>

Example matrix attribute | XML syntax

<attribute id="matrix_correction" unit="mm">
	<matrix>
		<r>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
		</r>
		<r>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
		</r>
			...
		<r>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
			<c>0.0</c>
		</r>
	</matrix>
</attribute>

Example array attribute in binary format | XML syntax

<attribute id="example_attribute_id" unit="mm">
	<array code="float64"/>62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA=<array/>
</attribute>

Example matrix attribute in binary format | XML syntax

<attribute id="example_matrix_coded" unit="mm">
        <matrix code="float64" columns="3" rows="2">AAAAAAAA8D8AAAAAAAAQQAAAAAAAAABAAAAAAAAAFEAAAAAAAAAIQAAAAAAAABhA</matrix>
</attribute>

Example array_of_integer_arrays attribute | XML syntax

<attribute id="element_structure" unit="none">
	<array_of_arrays>
		<array><c>108</c><c>2</c><c>1</c><c>107</c></array>
		<array><c>109</c><c>3</c><c>2</c><c>108</c></array>
		<array><c>8</c><c>114</c><c>115</c></array>	
	</array_of_arrays>
</attribute>
Attribute values - JSON syntax

The "attributes" array contains a list of objects with the following name-value pairs: "id" (attribute ID), "unit" (unit, required for certain data types), "origin" (optional, identifies the attribute as "calculated" or "user_defined"), and the attribute value. Different identifiers are used to enable JSON validation, depending on the data type. The available identifiers are listed below. For details on binary-coded arrays and matrices, see Note and Note.

Data type

Details

JSON identifier

Example JSON value

scalar

Scalar values

boolean

true, false

boolean

false

string

string

"NU 206"

integer

integer

3

floating_point

The floating-point symbol is "." (period).

Maximum number of significant digits: 15

floating_point

2.0

enum

Has a specified value range

enum

"both_directions"

reference_component

ID of the reference component for specification of the position and orientation (POSE)

reference_component

1

file_reference

Reference to a file or folder (relative or absolute)

file_reference

"example.gde"

array

One-dimensional array of values

floating_point_array

The floating-point symbol is "." (period).

Maximum number of significant digits: 15

floating_point_array

[1.0,0.0,0.0]

floating_point_array

in binary format

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

The enum_array data type is new. Array of enum values

enum_array

["quad4","triangle3","quad4"]

matrix

Two-dimensional array of values, where each row has the same length

floating_point_matrix

The floating-point symbol is "." (period).

Maximum number of significant digits: 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 binary format

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

Two-dimensional array of values, where the rows can have different lengths

array_of_integer_arrays

array_of_integer_arrays

[[1,2,3,4],[1,3,4,5,6],[7,9,11]]

Example attribute list | 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": "addendum_modification_coefficient", "unit": "none", "origin":"user_defined", "floating_point": 0.1},
	{"id": "addendum_modification_coefficient", "unit": "none", "origin":"calculated", "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]]},
]

Structure of relations

Relations connect components to assemblies. A relation consists of a "relation" object, which contains multiple "ref" tags. A relation may not contain multiple "ref" objects with the same role. For example, it is not allowed to use multiple "part" elements in the same assembly relation. A separate relation must created for each "part."

Table 3. Characteristics of a relation object:

Feature

Description

Details

Part of the REXS file

id

Unique identifier of the relation in the concrete instance of the model

Data type: integer

type

Type of relation; e.g., "assembly“

Data type: string

Naming conventionNaming convention

order

Some relations between two components (e.g., "ordered_assembly_relation") also include an order, which is determined by the "order" tag. For example, this makes it possible to uniquely assign the bearing rows of a rolling bearing. Data type: integer

The "order" always begins = 1 and increases in increments of 1.



Table 4. Characteristics of a ref:

Feature

Description

Details

Part of the REXS file

id

ID of a component in the relation

role

Role of the component in the relation (e.g., stage)

Types of relationsTypes of relations

Optional in REXS file

hint

Note to make the relation easier to read (e.g., type of the referenced component), max. 40 characters



Modeling Guideline Static Analysis

Incomplete relations are not permitted. Thus, each relation must contain exactly one instance of each permitted role for the type of relation.Structure of relations

Modeling Guideline Static Analysis

The model must be coherent. Each component must be (indirectly) connected to the gear_unit via the network of relations. In particular, components that do not appear in any relation are not permitted.Structure of relations

Relations - XML syntax

A relation in the XML file consists of a "relation" tag, which contains multiple "ref" tags.

Example REXS file relations | XML syntax

<relations>
	<relation id="15" type="ordered_assembly" order="1">
		<ref id="8" role="assembly" hint="bearing"/>
		<ref id="16" role="part" hint="bearing_row"/>
	</relation>
	<relation id="23" type="stage">
		<ref id="3" role="stage" hint="cylindrical_stage"/>
		<ref id="7" role="gear_1" hint="cylindrical_gear"/>
		<ref id="9" role="gear_2" hint="cylindrical_gear"/>
	</relation>
</relations>
Relations - JSON syntax

The "relations" array contains a list of JSON objects. Each of these objects includes the name-value pairs "id" (ID of the relation), "type" (type of relation), "order" (for relevant relation types), and the "refs" array. The "refs" array contains a list of objects with the name-value pairs "role" (role of the component in the relation), "id" (ID of the component in the relation), "hint" (optional addition for improved clarity).

Example REXS file relations | 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"}
		]
	},
]
Types of relations

The available relation types are briefly presented below. A detailed overview of all relations and in particular which component types are permitted for which roles is provided in the REXS-Database.

Type of relation

Components/roles

assembly

Connects a primary component K1 with sub-component K2

Component

Role

K1

assembly

K2

part

Example XML syntax

<relation id="33" type="assembly">
	<ref id="5" role="assembly" hint="shaft"/>
	<ref id="32" role="part" hint="external_load"/>
</relation>

ordered_assembly

Connects a primary component K1 with sub-component K2, specifying the order of the sub-components. The order can be specified by entering an integer with the "order" tag.

The "order" always begins = 1 and increases in increments of 1.

Component

Role

K1

assembly

K2

part

Example XML syntax

<relation id="15" type="ordered_assembly" order="1">
	<ref id="8" role="assembly" hint="bearing"/>
	<ref id="16" role="part" hint="bearing_row"/>
</relation>
<relation id="16" type="ordered_assembly" order="2">
	<ref id="8" role="assembly" hint="bearing"/>
	<ref id="17" role="part" hint="bearing_row"/>
</relation>

stage

Connects a stage component S with two gears, R1 and R2

Component

Role

S

stage

R1

gear_1

R2

gear_2

Example XML syntax

<relation id="23" type="stage">
	<ref id="3" role="stage" hint="cylindrical_stage"/>
	<ref id="7" role="gear_1" hint="cylindrical_gear"/>
	<ref id="9" role="gear_2" hint="cylindrical_gear"/>
</relation>

stage_gear_data

This relation is used to represent stage-related gear data. It connects a stage component S with a gear R and a "stage_gear_data" component.

Component

Role

S

stage

R

gear

D

stage_gear_data

Example XML syntax

<relation id="23" type="stage_gear_data">
	<ref id="3" role="stage" hint="cylindrical_stage"/>
	<ref id="7" role="gear" hint="cylindrical_gear"/>
	<ref id="9" role="stage_data" hint="stage_gear_data"/>
</relation>

side

For example, connects a bearing M with two components: a component IP on the inner side of the bearing, and a component OP on the outer side of the bearing.

Component

Role

M

assembly

IP

inner_part

OP

outer_part

Example XML syntax

<relation id="22" type="side">
	<ref id="11" role="assembly" hint="concept_bearing"/>
	<ref id="17" role="inner_part" hint="shaft"/>
	<ref id="2" role="outer_part" hint="gear_casing"/>
</relation>

flank

Used to assign a left (C1) and right (C2) tooth flank to a gear R. The right (or left) flank is the flank seen on the right (or left) side in the viewing direction of an upward-pointing tooth. The viewing direction must be specified separately for each type of gear.

Component

Role

R

gear

C1

left

C2

right

Example XML syntax

<relation id="67" type="flank">
	<ref id="8" role="gear" hint="bevel_gear"/>
	<ref id="13" role="left" hint="bevel_gear_flank"/>
	<ref id="14" role="right" hint="bevel_gear_flank"/>
</relation>

reference

Used to assign components such as materials or lubricants to a component.

Component

Role

R

origin

P

referenced

Example XML syntax

<relation id="40" type="reference">
	<ref id="10" role="origin" hint="cylindrical_gear"/>
	<ref id="15" role="referenced" hint="material"/>
</relation>

manufacturing_step

Used to assign a manufacturing step with tool T to a gear flank F, taking the manufacturing settings M into consideration. The "order" specifies the processing sequence. An integer is used to specify the "order." The "order" always begins = 1 and increases in increments of 1.

The manufacturing_step relation type was introduced in REXS 1.3. It replaces the ordered_reference relation, which was used to connect a gear and a tool through REXS 1.2.

Component

Role

F

workpiece

T

tool

M

manufacturing_settings

Example XML syntax

<relation id="41" type="manufacturing_step" order="1">
	<ref id="10" role="workpiece" hint="cylindrical_gear_flank"/>
	<ref id="15" role="tool" hint="rack_shaped_tool"/>
	<ref id="16" role="manufacturing_settings" hint="cylindrical_gear_manufacturing_settings"/>
</relation>

planet_shaft

Identification of planetary shaft C2 in planetary stage C1.

Component

Role

C1

planetary_stage

C2

shaft

Example XML syntax

<relation id="42" type="planet_shaft">
	<ref id="3" role="planetary_stage" hint="planetary_stage"/>
	<ref id="8" role="shaft" hint="shaft"/>
</relation>

central_shaft

Identification of central shaft C2 in planetary stage C1.

Component

Role

C1

planetary_stage

C2

shaft

Example XML syntax

<relation id="43" type="central_shaft">
	<ref id="3" role="planetary_stage" hint="planetary_stage"/>
	<ref id="9" role="shaft" hint="shaft"/>
</relation>

planet_carrier_shaft

Identification of carrier shaft C2 in planetary stage C1.

Component

Role

C1

planetary_stage

C2

shaft

Example XML syntax

<relation id="44" type="planet_carrier_shaft">
	<ref id="3" role="planetary_stage" hint="planetary_stage"/>
	<ref id="10" role="shaft" hint="shaft"/>
</relation>

planet_pin

Identification of pin C2 in planetary stage C1.

Component

Role

C1

planetary_stage

C2

shaft

Example XML syntax

<relation id="45" type="planet_pin">
	<ref id="3" role="planetary_stage" hint="planetary_stage"/>
	<ref id="11" role="shaft" hint="shaft"/>
</relation>

contact

Connects a surface contact S with the two contact partners A and B.

Component

Role

S

assembly

A

side_1

B

side_2

Example XML syntax

<relation id="22" type="side">
	<ref id="11" role="assembly" hint="surface_contact"/>
	<ref id="17" role="side_1" hint="bearing_ring"/>
	<ref id="2" role="side_2" hint="gear_casing"/>
</relation>

"load_spectrum" object

  • The load spectrum is represented by a master model (containing files and relations, which remain unchanged) and multiple sub-models (containing only variable data).

  • Each load case corresponds to a sub-model, thus these sub-models are referred to as a "load_case."

  • The load cases are combined in a "load_spectrum."

  • Only variation data for the load spectra is included in a load_case (sub-model). The following applies:

    • As in the master model, the corresponding attributes are structured into components.

    • Unique Component IDs are used to create assignments between components in the master model and sub-model.

    • All sub-models must contain the same set of attributes.

    • Attributes that are specified in the sub-models may not be assigned in the master model.

  • Thus, the master model only becomes a complete, computable model when combined with a sub-model.

  • Accumulated values from the load spectrum are saved in a separate sub-model of the load spectrum named "accumulation.“

  • Initially, only one load spectrum per model is allowed.

For details on the modeling system, see Load spectra.

"load_spectrum" object - XML syntax

The "load_spectrum" tag is an optional part of a REXS XML model. It has a (numeric) identifier ("id") and encloses one or more "load_case" tags and the "accumulation" tag. These in turn enclose a list of "component" tags.

Example load spectrum | XML syntax

<model>
	<relations>
	<components>
	    <component id="1">
	    <component id="4">
	    <component id="6">
	    <!-- further components -->
	</components>
	<load_spectrum id="1">
		<load_case id="1">
		<load_case id="2">
		<load_case id="3">
			<component id="4">
			<component id="6">
		</load_case>
		<accumulation>
			<component id="4">
			<component id="6">
		</accumulation>
	</load_spectrum>
</model>
"load_spectrum" object - JSON syntax

The "load_spectrum" object includes the name-value pairs "id" (ID of the load spectrum), "accumulation" (sub-model for accumulated values of the spectrum), and the "load_cases" array. The "accumulation" object contains a "components" array. The "load_cases" array contains a list of JSON objects, each of which includes both an "id" and a "components" array.

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

Example model - XML syntax

Example model | XML syntax

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<model applicationId="FVA Workbench" applicationVersion="7.0" date="2021-11-23T13:52:44+01:00" version="1.4">
  <relations>
    <relation id="45" type="assembly">
      <ref hint="shaft" id="42" role="assembly"/>
      <ref hint="shaft_section" id="78" role="part"/>
    </relation>
    <relation id="53" type="side">
      <ref hint="shaft" id="6" role="inner_part"/>
      <ref hint="shaft" id="42" role="outer_part"/>
      <ref hint="rolling_bearing_with_detailed_geometry" id="86" role="assembly"/>
    </relation>
	...
  </relations>
  <components>
    <component id="44" name="Cylindrical gear [44]" type="cylindrical_gear">
      <attribute id="example_string" unit="none">30203-A</attribute>	  
      <attribute id="example_floating_point_unit" unit="mum">20.0</attribute>
      <attribute id="example_floating_point_without_unit" unit="none">0.3</attribute>
      <attribute id="example_integer" unit="none">3</attribute>
      <attribute id="example_enum" unit="none">method_b</attribute>
      <attribute id="example_boolean" unit="none">false</attribute>
      <attribute id="example_floating_point_array" unit="mm">
       <array><c>155.0</c><c>0.0</c><c>-190.0</c></array>
      </attribute>
      <attribute id="example_floating_point_matrix" unit="mm">
	<matrix>
	    <r><c>1.0</c><c>0.0</c><c>0.0</c></r>
	    <r><c>0.0</c><c>1.0</c><c>0.0</c></r>
	    <r><c>0.0</c><c>0.0</c><c>1.0</c></r>
	</matrix>
      </attribute>
      <attribute id="example_floating_point_array_coded" unit="mm">
        <array code="float64">62wRNhgQS0AAAAAAAAAAANgPsyG1MXDA</array>
      </attribute>
      <attribute id="example_array_of_arrays" unit="none">
	<array_of_arrays>
            <array><c>108</c><c>2</c><c>1</c><c>107</c></array>
	    <array><c>109</c><c>3</c><c>2</c><c>108</c></array>
	    <array><c>8</c><c>114</c><c>115</c></array>	
	</array_of_arrays>
      </attribute>
    </component>
    <component id="45" name="Cylindrical gear [45]" type="cylindrical_gear">
         ...
    </component>
  </components>
  <load_spectrum id="1">
    <load_case id="1">
    <load_case id="2">
    <load_case id="3">
	<component id="4">
            <attribute id="example" unit="mm">20.0</attribute>
		...
	</component>
    </load_case>
    <accumulation>
	<component id="4">...</component>
    </accumulation>
  </load_spectrum>
</model>

Example model - JSON syntax

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