From 7adb0ec9caf0d2876b96e902ad0a96d026644c26 Mon Sep 17 00:00:00 2001 From: Petr Vanek Date: Thu, 18 Jun 2026 13:34:46 +0200 Subject: [PATCH 1/5] Add cable definition --- mvr-spec.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/mvr-spec.md b/mvr-spec.md index 55bf7e46..9c61c169 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -368,6 +368,7 @@ The child list (Table 18) contains a list of the following nodes: | [Truss](#node-definition-truss) | A definition of a truss. | | [VideoScreen](#node-definition-videoscreen) | A definition of a video screen. | | [Projector](#node-definition-projector) | A definition of a projector. | +| [Cable](#node-definition-cable) | A definition of a cable. | ## Node Definition for Parametric Objects @@ -813,6 +814,76 @@ EXAMPLE An example of a node definition is shown below: ``` +### Node Definition: Cable + +This node defines a cable object. Cable describes the physical realization of a +connection between two GDTF `WiringObject` nodes. A cable has one start and one +end and may carry one or more signals. The defined Cable Node Attributes are +specified in Table XX. + +Node name: `Cable` + +Table xx - Cable Node attributes: + +| Attribute Name | Value Type / Unit | Description | +| ------------------ | ----------------: | --------------------------------------------------------------------------------------- | +| uuid | [UUID](#user-content-attrtype-uuid) | Unique identifier of the cable. | +| name | [String](#user-content-attrtype-string) | Cable name. | +| cableType | [String](#user-content-attrtype-string) | Cable type, model, or construction. | +| length | [Float](#user-content-attrtype-float)| Cable length. Unit: meter. Default value: 0 | +| installationRating | [String](#user-content-attrtype-string) | Optional rating such as plenum, riser, outdoor, touring, or manufacturer-specific text. | + +The child list (Table XX) contains a list of one of the following nodes: + +##### Table xx — *Cable Node Childs* + +| Child Node | Allowed Count | Description | +| ----------------------------------| --------------- | ----------------------------------- | +| [Signal](#node-definition-signal) | 1 or any | The type of the signal used. | + +The defined Signal Node Attributes are specified in Table XX. + +Table xx - Signal Node attributes: + +| Attribute Name | Value Type / Unit | Description | +| -------------- | ----------------: | ------------------------------------------------------------------- | +| type | [String](#user-content-attrtype-string) | Signal type, using GDTF `WiringObject` signal types where possible. | +| crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | +| impedance | [Float](#user-content-attrtype-float) | Cable impedance where applicable. Unit: Ohm, Default: 0 | +| voltageRating | [Float](#user-content-attrtype-float) | Optional voltage rating. Unit: volt, Default: 0 | +| currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: amp, Default: 0 | + +Example: + +```xml + + + + + + +``` + +Extend MVR `Connection` with a `cable` UUID attribute linking the logical connection to its physical cable. + +```xml + +``` ## Other Node Definition From 1b9f8f7c0fc599c83c8557eb694e1a84f06be83c Mon Sep 17 00:00:00 2001 From: Petr Vanek Date: Thu, 18 Jun 2026 14:07:34 +0200 Subject: [PATCH 2/5] Define Signal type definition --- mvr-spec.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mvr-spec.md b/mvr-spec.md index 9c61c169..68aba70f 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -817,9 +817,9 @@ EXAMPLE An example of a node definition is shown below: ### Node Definition: Cable This node defines a cable object. Cable describes the physical realization of a -connection between two GDTF `WiringObject` nodes. A cable has one start and one -end and may carry one or more signals. The defined Cable Node Attributes are -specified in Table XX. +connection between two [Connection](#node-definition-connection) nodes. A cable +has one start and one end and may carry one or more signals. The defined Cable +Node Attributes are specified in Table XX. Node name: `Cable` @@ -847,11 +847,11 @@ Table xx - Signal Node attributes: | Attribute Name | Value Type / Unit | Description | | -------------- | ----------------: | ------------------------------------------------------------------- | -| type | [String](#user-content-attrtype-string) | Signal type, using GDTF `WiringObject` signal types where possible. | +| type | [String](#user-content-attrtype-string) | Signal type, DIN SPEC 15800 [Signal Type](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#table-50-wiring-object-attributes) where possible.| | crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | | impedance | [Float](#user-content-attrtype-float) | Cable impedance where applicable. Unit: Ohm, Default: 0 | | voltageRating | [Float](#user-content-attrtype-float) | Optional voltage rating. Unit: volt, Default: 0 | -| currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: amp, Default: 0 | +| currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: ampere, Default: 0 | Example: From 8c015a942e0639d187ac3dd1e529c7cd83804953 Mon Sep 17 00:00:00 2001 From: Petr Vanek Date: Fri, 19 Jun 2026 14:16:01 +0200 Subject: [PATCH 3/5] Add conductorAmount --- mvr-spec.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mvr-spec.md b/mvr-spec.md index 68aba70f..8946c095 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -849,6 +849,7 @@ Table xx - Signal Node attributes: | -------------- | ----------------: | ------------------------------------------------------------------- | | type | [String](#user-content-attrtype-string) | Signal type, DIN SPEC 15800 [Signal Type](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#table-50-wiring-object-attributes) where possible.| | crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | +| conductorAmount | [Integer](#user-content-attrtype-integer) | Amount of conductors. Default: 0 | | impedance | [Float](#user-content-attrtype-float) | Cable impedance where applicable. Unit: Ohm, Default: 0 | | voltageRating | [Float](#user-content-attrtype-float) | Optional voltage rating. Unit: volt, Default: 0 | | currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: ampere, Default: 0 | @@ -865,12 +866,14 @@ Example: ``` From 1129c5a9bf68e3b75edae3045b421c83b6f9ab05 Mon Sep 17 00:00:00 2001 From: Petr Vanek Date: Wed, 24 Jun 2026 13:21:35 +0200 Subject: [PATCH 4/5] Adjust Connection node --- mvr-spec.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mvr-spec.md b/mvr-spec.md index 8946c095..64a82ffb 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -825,7 +825,7 @@ Node name: `Cable` Table xx - Cable Node attributes: -| Attribute Name | Value Type / Unit | Description | +| Attribute Name | Value Type | Description | | ------------------ | ----------------: | --------------------------------------------------------------------------------------- | | uuid | [UUID](#user-content-attrtype-uuid) | Unique identifier of the cable. | | name | [String](#user-content-attrtype-string) | Cable name. | @@ -845,7 +845,7 @@ The defined Signal Node Attributes are specified in Table XX. Table xx - Signal Node attributes: -| Attribute Name | Value Type / Unit | Description | +| Attribute Name | Value Type | Description | | -------------- | ----------------: | ------------------------------------------------------------------- | | type | [String](#user-content-attrtype-string) | Signal type, DIN SPEC 15800 [Signal Type](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#table-50-wiring-object-attributes) where possible.| | crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | @@ -878,7 +878,7 @@ Example: ``` -Extend MVR `Connection` with a `cable` UUID attribute linking the logical connection to its physical cable. +`Connection` with a `cable` UUID attribute linking the logical connection to its physical cable. ```xml Date: Thu, 25 Jun 2026 14:23:27 +0200 Subject: [PATCH 5/5] Extend the cable definition to allow defining a cable in GDTF --- gdtf-spec.md | 91 ++++++++++++++++++++++++++ mvr-spec.md | 59 ++--------------- proposal.md | 179 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 275 insertions(+), 54 deletions(-) create mode 100644 proposal.md diff --git a/gdtf-spec.md b/gdtf-spec.md index 07ae9da4..a0ddb76e 100644 --- a/gdtf-spec.md +++ b/gdtf-spec.md @@ -1288,6 +1288,7 @@ of geometry collect are specified in [table 34](#user-content-table-34 ). | [GeometryReference](#user-content-geometry-type-reference ) | Any | Reference to already described geometries. | | [Laser](#user-content-geometry-type-laser ) | Any | Geometry with a laser light output. | | [WiringObject](#user-content-geometry-type-wiring-object ) | Any | Geometry that describes an internal wiring for power or data. | +| [Cable](#user-content-geometry-type-cable ) | Any | Geometry that describes a cable assembly. | | [Inventory](#user-content-geometry-type-inventory ) | Any | Geometry that describes an additional item that can be used for a fixture (like a rain cover). | | [Structure](#user-content-geometry-type-structure ) | Any | Geometry that describes the internal framing of an object (like members). | | [Support](#user-content-geometry-type-support ) | Any | Geometry that describes a support like a base plate or a hoist. | @@ -1783,6 +1784,96 @@ defined XML attributes of a pin patch are specified in [table 51](#user-content- The pin patch doesn't have any children. +### Geometry Type Cable + +#### General + +This type of geometry is used to describe a cable assembly (XML node +``). + +The currently defined XML attributes of the cable geometry are specified in +[table 52](#table-52 ). + +
+ +#### Table 52. *Cable Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| Name | [Name](#user-content-attrtype-name ) | Unique name of the cable definition. | +| CableType | [String](#user-content-attrtype-string ) | Cable type, model, or construction. | +| LengthMin | [Float](#user-content-attrtype-float ) | Minimum supported cable length. Unit: meter. Default value: 0. | +| LengthMax | [Float](#user-content-attrtype-float ) | Maximum supported cable length. Unit: meter. Default value: 0. | +| Diameter | [Float](#user-content-attrtype-float ) | Outer shell diameter. Unit: meter. Default value: 0. | +| WeightPerMeter | [Float](#user-content-attrtype-float ) | Weight per meter. Unit: kilogram. Default value: 0. | +| AvailableLengths | [Array of Float](#user-content-attrtype-float ) | Array of available cable lengths. Unit: meter. Default value: 0. | +| InstallationRating | [String](#user-content-attrtype-string ) | Optional rating such as plenum, riser, outdoor, touring, or manufacturer-specific text. | + +
+ +The cable geometry has the same children types as the geometry collect +(see [table 34](#user-content-table-34 )). Physical connector shells are +represented by top-level `WiringObject` children. Cable matching is +determined from the connector types of those wiring objects. In +addition, the cable has one or more `Conductors` children that describe +the bundled conductors or signal paths carried by the cable. + +### Node Definition: Conductors + +This node defines one internal conductor bundle of a cable assembly. +The defined Conductors node attributes are specified in +[table-conductors-attributes](#table-conductors-attributes ). + +Node name: `Conductors` + +
+ +#### Table XX. *Conductors Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| Name | [Name](#user-content-attrtype-name ) | Unique name of the conductor bundle within the cable geometry. | +| Type | [String](#user-content-attrtype-string ) | Conductor type. Predefined values are "Power", "DMX512", "Protocol", "AES", "AnalogVideo", "AnalogAudio". | +| CrossSection | [Float](#user-content-attrtype-float ) | Conductor cross-section where applicable. Unit: mm². Default value: 0. | +| ConductorAmount | [Integer](#user-content-attrtype-integer ) | Amount of conductors. Default value: 0. | +| Impedance | [Float](#user-content-attrtype-float ) | Cable impedance where applicable. Unit: Ohm. Default value: 0. | +| VoltageRating | [Float](#user-content-attrtype-float ) | Optional voltage rating. Unit: volt. Default value: 0. | +| CurrentRating | [Float](#user-content-attrtype-float ) | Optional current rating. Unit: ampere. Default value: 0. | + +
+ +The Conductors node has the following children. + +##### Table XX — *Conductors Node Children* + +| Child Node | Allowed Count | Description | +| -------------------------------------------------------------- | ------------- | --------------------------------------------------------------- | +| [ConductorPatch](#node-definition-conductorpatch) | 1 or any | One pin-level mapping that belongs to this conductor bundle. | + +### Node Definition: ConductorPatch + +This node defines one pin-level mapping inside a conductor bundle. The +defined ConductorPatch node attributes are specified in +[table-conductorpatch-attributes](#table-conductorpatch-attributes ). + +Node name: `ConductorPatch` + +
+ +#### Table XX. *ConductorPatch Attributes* + +| XML Attribute Name | Value Type | Description | +|----|----|----| +| FromWiringObject | [Node](#user-content-attrtype-node ) | Link to the source wiring object of the physical connector shell. | +| FromPin | [Int](#user-content-attrtype-int ) | The pin number used on the source wiring object. | +| ToWiringObject | [Node](#user-content-attrtype-node ) | Link to the target wiring object of the physical connector shell. | +| ToPin | [Int](#user-content-attrtype-int ) | The pin number used on the target wiring object. | + +
+ +The ConductorPatch node does not have any children. + + ### Geometry Type Inventory This type of geometry is used to describe a geometry used for the inventory (XML node ``). The currently diff --git a/mvr-spec.md b/mvr-spec.md index 64a82ffb..809d7df6 100644 --- a/mvr-spec.md +++ b/mvr-spec.md @@ -832,61 +832,13 @@ Table xx - Cable Node attributes: | cableType | [String](#user-content-attrtype-string) | Cable type, model, or construction. | | length | [Float](#user-content-attrtype-float)| Cable length. Unit: meter. Default value: 0 | | installationRating | [String](#user-content-attrtype-string) | Optional rating such as plenum, riser, outdoor, touring, or manufacturer-specific text. | +| GDTFSpec | [FileName](#user-content-attrtype-filename) | Optional. The name of the GDTF or `gdtt` file containing a reusable cable catalog. | +| CableName | [String](#user-content-attrtype-string) | Optional. The name of the cable definition inside the GDTF file referenced by `GDTFSpec`. | -The child list (Table XX) contains a list of one of the following nodes: +If `GDTFSpec` is present, `CableName` shall identify a cable definition in +that file. If `GDTFSpec` is omitted, the cable remains a plain MVR cable +instance and is described only by the attributes on the scene object itself. -##### Table xx — *Cable Node Childs* - -| Child Node | Allowed Count | Description | -| ----------------------------------| --------------- | ----------------------------------- | -| [Signal](#node-definition-signal) | 1 or any | The type of the signal used. | - -The defined Signal Node Attributes are specified in Table XX. - -Table xx - Signal Node attributes: - -| Attribute Name | Value Type | Description | -| -------------- | ----------------: | ------------------------------------------------------------------- | -| type | [String](#user-content-attrtype-string) | Signal type, DIN SPEC 15800 [Signal Type](https://github.com/mvrdevelopment/spec/blob/main/gdtf-spec.md#table-50-wiring-object-attributes) where possible.| -| crossSection | [Float](#user-content-attrtype-float) | Conductor cross-section where applicable. Unit: mm², Default: 0 | -| conductorAmount | [Integer](#user-content-attrtype-integer) | Amount of conductors. Default: 0 | -| impedance | [Float](#user-content-attrtype-float) | Cable impedance where applicable. Unit: Ohm, Default: 0 | -| voltageRating | [Float](#user-content-attrtype-float) | Optional voltage rating. Unit: volt, Default: 0 | -| currentRating | [Float](#user-content-attrtype-float) | Optional current rating. Unit: ampere, Default: 0 | - -Example: - -```xml - - - - - - -``` - -`Connection` with a `cable` UUID attribute linking the logical connection to its physical cable. - -```xml - -``` ## Other Node Definition @@ -1886,4 +1838,3 @@ UUIDs are randomly generated numbers which are, practically speaking, unique and One of the most important aspects of UUIDs in MVR is that they are persistent. A UUID should identify an item throughout its entire life cycle. This means that if a document is exported, then objects should have the same UUID every time an export is performed. One use case for UUIDs is importing or merging MVRs into an existing document. This is one reason that persistent UUIDs are valuable. If you export an MVR from one program, open it in another, and make modifications, then you may want to incorporate those changes into the original document. By cross referencing UUIDs, you can avoid creating duplicate objects and instead update existing ones. UUIDs are also used inside of the MVR file format as a form of reference. For example, a symbol instance shall refer to a symbol definition. Because the symbol definition is given a UUID, the symbol instance can reference its symbol through the use of this UUID. - diff --git a/proposal.md b/proposal.md new file mode 100644 index 00000000..d95f2bd2 --- /dev/null +++ b/proposal.md @@ -0,0 +1,179 @@ +## Cable definition GDTF + +### Power cable, Schuko to Schuko + +```xml + + + + + + + + + +``` + +### Power cable, Schuko to PowerTrueOne + +```xml + + + + + + + + + +``` + +### DMX cable, XLR to XLR + +```xml + + + + + + + + + +``` + +### Combined cable, power and DMX, four connectors + +```xml + + + + + + + + + + + + + + + + + +``` +### Combined cable, power and DMX, two Amphenol connectors + +```xml + + + + + + + + + + + + + + + +``` + +## Cable definition MVR + +```xml + + +``` + +Example cable utilization: + +```xml + +```