Skip to main content
Version: Pre-Released

Linear Export Information

The linear export is a JSON object containing all the necessary information about linears, used by the manufacturer to build the actual pieces of material. Only worktops, wall-panels and wall-edge strips are described in this object.

This linear export object is stored in the project metadata, and can be requested at any time in the context of the planner via the LinearExportRequested πŸ”— iframe message.

Β 

Foreword​

All dimensions are in millimeters (mm) and angles are measured in radian (rad).

All product IDs exposed in this object are solved in terms of mapping. In other words if the associated product is a generic product, the ID exposed in the linear export is always the ID of the mapped article. If the product is not a generic product, the exposed ID is the product itself.

X Y values for worktops are per project. X Y values for wall panels / wall edge strips are per group.

Element examples below to detail JSON structure only (refer to example project for aligned plan and export).

Top structure​

{
"exportWorktop": {
"version": X,
"worktop": {
"parts": [
// (see worktop board description)
],
"joints": [
// (see joint description)
]
}
},
"exportWallpanel": {
"version": X,
"wallPanel": {
"parts": [
// (see wall-panel board description)
]
},
},
"exportWallEdgeStrip": {
"version": X,
"wallEdgeStrip": {
"parts": [
// (see wall-edge strip board description)
]
},
}
}

Note: the version attribute if always the same in the 3 exportWorktop, exportWallpanel and exportWallEdgeStrip objects, and it corresponds to the iframe version.

Worktop​

The parts array contains the list of all worktop boards in the project. Each board is described as a JSON object as defined in the Board object section.

The joints array contains the list of all worktop joints. Each joint is described as a JSON object as defined in the Joint object section.

Board object​

ElementDescriptionData typeExample
boardIDIncremental number based on amount of boards in projectInteger"boardID": 1
orientationOrientation of the board
"vertical" = worktop board
"horizontal" = waterfall board
String"orientation": "vertical"
dbIDProduct external id of the linear boardString"dbID": "123456789"
doubleSidedProductProduct external id of the double sided product (double sided only).String (or null)"doubleSidedProduct": "123456789"
dimensionsPhysical size of board (see appendix fig. 1)Object"dimensions": {<br />&emsp;"length": 2000.0,<br />&emsp;"depth": 600.0,<br />&emsp;"thickness": 28.0<br />}
edgesUnordered list of outer board edges including cuts (see appendix fig. 2)Array of WT Edge objects"edges": [
 (see WT Edge object description below)
]
edgeFinishFinish properties applied to the board edgesArray of WT Edge Finish obejcts"edgeFinish": [
 (see WT Edge Finish object description below)
]
grainDirectionDirection of X and YObject"grainDirection": {<br />&emsp;&emsp;"x": 1.0,<br />&emsp;&emsp;"y": 0.0<br />}
isCustomDefines if the board is custom or not
true = Custom
false = Not custom
Boolean"isCustom": true
sideUsed for double sided boards (pre-cut only)
0 = Not double sided
1 = Side option (side 1)
-1 = Side option (side 2)
Integer"side": 1
shapeDescribes the shape of the current boardShape object
can be null if no shape is detected on the board
"shape": (see WT Shape object description below)
cutsDescribes the cuts in the current boardArray of WT Cut objects"cuts": [
 (see WT Cut object description below)
]
cutoutsDescribes the cutouts in the current boardArray of WT Cutout objects"cutouts": [
 (see WT Cutout object description below)
]
sinksDescribes the sink cuts in the current boardArray of Sink objects"sinks": [
 (see Sink object description below)
]
hobsDescribes the hob cuts in the current boardArray of Hob objects"hobs": [
 (see Hob object description below)
]
othersDescribes the other product cutouts in the current boardArray of Other objects"others": [
 (see Other object description below)
]
weightDescribes the weight of current board.
This attribute is only present for iframe version >= 10 and if the EcoFeeRule is implemented.
Number"weight": 2.31
polishedUndersideDescribes the polished underside in the current boardObject"polishedUnderside": [
 (see Polished Underside object description below)
]

WT Edge object​

This table describes each attributes present in an worktop Edge object.

ElementDescriptionData typeExample
idEdge unique identifierNumber"id": 1
typeType of edge
"line" = straight edge
"circle" = arc edge
String"type": "line"
frontTells if the edge is a front edge. Only for line edgesBoolean"front": false
pt1First point information of the straight edge. Only for line edgesObject"pt1": {<br />&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;"y": 0.0<br />}
pt2Second point information of the straight edge. Only for line edgesObject"pt2": {<br />&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;"y": 500.0<br />}
radiusThe radius of the edge. Only for circle edgesNumber"radius": 100.0
angleStartThe angleStart of the edge. Only for circle edgesNumber"angleStart": 1.57079632
angleEndThe angleEnd of the edge. Only for circle edgesNumber"angleEnd": 3.14159265
orientationThe orientation of the edge. Only for circle edges
1 = Anti-clockwise
-1 = Clockwise
Number"orientation": 1
centerThe center of the edge. Only for circle edgesObject"center": {<br />&emsp;&emsp;"x": 100.0,<br />&emsp;&emsp;"y": 500.0<br />}

WT Edge Finish object​

This table describes each attributes present in an worktop Edge Finish object.

ElementDescriptionData typeExample
dbIDThe product ID of the edge finish productString"dbID": "123456789"
edgeIDsThe list of Edge IDs on which this edge finish is appliedArray of Number"edgeIDs": [1,2,3,5]

WT Shape object​

This table describes each attributes present in an worktop Shape object.

ElementDescriptionData typeExample
dbIDThe product ID of the shape productString"dbID": "123456789"
typeType of the shape. One of : circularShape, arcEndShape, arcLengthShape or mushroomShapeString"type": "circularShape"
dimensionsPhysical size of the shape.
The number of values in dimensions depends on the type of the shape.
(see appendix fig. 7)
ObjectFor a circularShape:
"dimensions": {<br />&emsp;"radius": 500.0<br />}
For a arcEndShape or arcLengthShape:
"dimensions": {<br />&emsp;"width": 2000.0,<br />&emsp;"depth": 650.0,<br />&emsp;"arcLength": 200.0<br />}
For a mushroomShape:
"dimensions": {<br />&emsp;"width": 2000.0,<br />&emsp;"depth": 650.0,<br />&emsp;"radius": 500.0,<br />&emsp;"orientation": -1<br />}
edgesThe list of Edge IDs on which this shape is applied
(always a list, even if the shape has only one edge)
Array"edges": [2, 3]

Note: If no compatible shape is detected on this board, or if no shapes are available in the operationCompatibility list of the worktop product, the shape section is null

List of the shapes currently supported :

circularShape​

All the edges of the board must be arcs, and have the same center

circular shape examples

arcEndShape and arcLengthShape​

These shapes are detected if the board has a convex arc that starts and ends on the bounding box, and its center is centered on the board. If the arc is along the depth of the board, the shape identified is an "arcEndShape", if the arc is along the width of the board, the shape identified is an "arcLengthShape"

arc shape examples

mushroomShape​

This shape is detected if the board has an arc that verifies these conditions:

  • one of the arc ends is tangeant to the bounding box
  • both ends of the arc are on the bounding box of the other edges
  • the arc is between 1/2 (strictly) and 3/4 of a full circle

mushroom examples

After the shape has been identified, the cuts can be identified on it. As an example, these worktops are identified as β€œarc end shape”, β€œarc length shape” and β€œmushroom shape”, the other cuts are described in the section below

working examples

WT Cut object​

This table describes each attributes present in an worktop Cut object.

ElementDescriptionData typeExample
dbIDThe product ID of the cut productString"dbID": "123456789"
cutTypeType of the cut. One of : single, double, triple, round_edge, round_corner, or round_corner_invertedString"cutType": "double"
dimensionsPhysical size of cut.
The number of values in dimensions depends on the type of the cut.
(see appendix fig. 3)
ObjectFor a single cut:
"dimensions": {<br />&emsp;"a": 100.0,<br />&emsp;"b": 150.0<br />}
For a double cut:
"dimensions": {<br />&emsp;"a": 100.0,<br />&emsp;"b": 150.0,<br />&emsp;"x": 100.0,<br />&emsp;"y": 100.0<br />}
For a triple cut:
"dimensions": {<br />&emsp;"a": 100.0,<br />&emsp;"b1": 150.0,<br />&emsp;"b2": 150.0,<br />&emsp;"x": 100.0,<br />&emsp;"y": 100.0<br />}
For any rounded cut:
"dimensions": {<br />&emsp;"radius": 100.0<br />}
edgesIDsThe list of Edge IDs on which this cut is applied
(always a list, even if the cut has only one edge)
Array"edges": [2, 3]

In the case of a complex cut (more than 3 edges), the cut is of unknown type. We don't want to export unknown cuts.
An unknown type cut is therefore fragmented into several known type cuts according to a precise process:

If the cut is in a corner:

β–ͺ All the edges of the complex cut are considered as simple cuts.
β–ͺ If two simple cuts are consecutive and collinear, then they are grouped together to form a single cut.
β–ͺ Singles are grouped in pairs to create doubles.
β–ͺ In double cut, the two edges are not necessarily consecutive. They can be separated by one or more rounded cut. (refer to the examples)
β–ͺ There may still be a single cut at the end.

If the cut is on an edge of the worktop:

  1. First we identify a triple cut:
    we have to find the furthest edge from the edge of the worktop. To complete the triple, the first simple edge which is on the left, and to its right are added to the triple. If no single edge is present to its left or right, then the triple cut will only contain one edge (cf. examples).
  2. We then run the same algorithm as the corner complex cut algorithm:
    on the edges to the left of the triple exclusively, then on the edges to the right of the triple exclusively.

Examples: The triple cut is surrounded by a black circle. The other edges of the cut are numbered.

dev_exportinfo_1dev_exportinfo_2dev_exportinfo_3dev_exportinfo_4
- 1 simple (1)
- 1 triple
- 1 double (2+3)
- 1 double (1+3)
- 1 rounded (2)
- 1 triple
- 1 double (4+5)
(A double cut is found on the left of the triple, even if the rounded cut is between 1 and 3.)
- 1 double (1+3)
- 1 rounded (2)
- 1 simple (4)
- 1 triple
- 1 simple (5)
(As you can see, the 4 and the 5 aren't grouped to create a double.)
- 1 rounded cut
- 1 triple cut with only 2 edges
- 1 double cut

WT Cutout object​

This table describes each attributes present in a worktop Cutout object.

ElementDescriptionData typeExample
dbIDThe product ID of the cutout productString"dbID": "123456789"
idCutout unique identifierNumber"id": 1
edgesUnordered list of edges of the cutout.
Same as the board edges definition (Edge object), without the id attribute.
Array of Object"edges": [
 {
  "type": "line",
  "pt1": {
   "x": 0.0,
   "y": 0.0
  },
  "pt2": {
   "x": 0.0,
   "y": 100.0
  }
 },
 {
  "type": "circle",
  "center": {
   "x": 5.0,
   "y": 100.0
  },
  "radius": 5.0,
  "angleStart": 1.57079632,
  "angleEnd": 3.14159265,
  "orientation": 1
 },
 ...
]
finishDbIDThe product ID of the cutout edge finish product.
This attribute is only present if the cutout has a finish product.
String"finishDbID": "123456789"

Sink object​

This table describes each attributes present in a Sink object. See Set Up Sinks and Taps - Sink Assembly.

ElementDescriptionData typeExample
dbIDThe product ID of the sink productString"dbID": "123456789"
sinkCutoutIDThe product ID of the automatic cutout associated to the sink productString"sinkCutoutID": "123456789"
additionalOperationIDThe product ID of the additional operation associated to the sink productString"additionalOperationID": "123456789"
drainerGrooveIDThe product ID of the drainer grooves associated to the sink productString"drainerGrooveID": "123456789"
sinkPositionPosition of center of total sink objectObject"sinkPosition": {<br />&emsp;x: 1000.0,<br />&emsp;y: 320.0<br />}
sinkMountingHow the sink is mounted in the board
0 = Inset (top mounted)
1 = Undermounted
2 = Moulded
Integer"sinkMounting": 0
sinkDirectionDirection of sinkObject"sinkDirection": {<br />&emsp;x: 1.0,<br />&emsp;y: 0.0<br />}
sinkBowlCenterPosition of center of bowls in sink object
Note: If 2 bowls or 1.5 bowls this value will be center of total bowls (not center of larger bowl)
Object"sinkBowlCenter": {<br />&emsp;x: 900.0,<br />&emsp;y: 300.0<br />}
drainerGroovePositionPosition (side) of the drainer grooves, if present
1 = Side option (right)
2 = Side option (left)
3 = Side option (both)
Integer"drainerGroovePosition": 1
drainerGrooveDimensionsDimensions of the drainer grooves (for now, only left and right width)Object"drainerGrooveDimensions": {<br />&emsp;"left": {<br />&emsp;&emsp;"width": 400<br />&emsp;},<br />&emsp;"right": {<br />&emsp;&emsp;"width": 200<br />&emsp;}<br />}
edgesUnordered list of edges of the cutout
Same as the board edges definition (Edge object), without the id attribute
Array of Object"edges": [
 {<br />&emsp;&emsp;"type": "line",<br />&emsp;&emsp;"pt1": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 0.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"pt2": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;}<br />&emsp;},
 {<br />&emsp;&emsp;"type": "circle",<br />&emsp;&emsp;"center": {<br />&emsp;&emsp;&emsp;"x": 5.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"radius": 5.0,<br />&emsp;&emsp;"angleStart": 1.57079632,<br />&emsp;&emsp;"angleEnd": 3.14159265,<br />&emsp;&emsp;"orientation": 1<br />&emsp;},
 ...
]

Hob object​

This table describes each attributes present in a Hob object.

ElementDescriptionData typeExample
dbIDThe product ID of the hob productString"dbID": "123456789"
hobCutoutIDThe product ID of the automatic cutout associated to the hob productString"hobCutoutID": "123456789"
hobPositionPosition of center of total hob objectObject"hobPosition": {<br />&emsp;x: 1000.0,<br />&emsp;y: 320.0<br />}
hobDirectionDirection of hobObject"hobDirection": {<br />&emsp;x: 1.0,<br />&emsp;y: 0.0<br />}
edgesUnordered list of edges of the cutout
Same as the board edges definition (Edge object), without the id attribute
Array of Object"edges": [
 {<br />&emsp;&emsp;"type": "line",<br />&emsp;&emsp;"pt1": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 0.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"pt2": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;}<br />&emsp;},
 {<br />&emsp;&emsp;"type": "circle",<br />&emsp;&emsp;"center": {<br />&emsp;&emsp;&emsp;"x": 5.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"radius": 5.0,<br />&emsp;&emsp;"angleStart": 1.57079632,<br />&emsp;&emsp;"angleEnd": 3.14159265,<br />&emsp;&emsp;"orientation": 1<br />&emsp;},
 ...
]

Other object​

This table describes each attributes present in an Other object. Here are all non-sink and non-hob products that create holes in worktop boards. See Set Up Sinks and Taps - Sink Assembly.

ElementDescriptionData typeExample
dbIDThe product ID of the element that creates the hole in the boardString"dbID": "123456789"
cutoutIDThe product ID of the associated automatic cutoutString"CutoutID": "123456789"
positionPosition of center of total objectObject"position": {<br />&emsp;x: 1000.0,<br />&emsp;y: 320.0<br />}
directionDirection of the objectObject"direction": {<br />&emsp;x: 1.0,<br />&emsp;y: 0.0<br />}
edgesUnordered list of edges of the cutout
Same as the board edges definition (Edge object), without the id attribute
Array of Object"edges": [
 {<br />&emsp;&emsp;"type": "line",<br />&emsp;&emsp;"pt1": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 0.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"pt2": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;}<br />&emsp;},
 {<br />&emsp;&emsp;"type": "circle",<br />&emsp;&emsp;"center": {<br />&emsp;&emsp;&emsp;"x": 5.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"radius": 5.0,<br />&emsp;&emsp;"angleStart": 1.57079632,<br />&emsp;&emsp;"angleEnd": 3.14159265,<br />&emsp;&emsp;"orientation": 1<br />&emsp;},
 ...
]

Joint object​

ElementDescriptionData typeExample
dbIDThe product ID of the joint productString"dbID": "123456789"
jointTypeType of joint
"regular" = joint between 2 boards that have the same orientation
"waterfallStraight" = joint for waterfall with straight mounting
"waterfallAngled" = joint for waterfall with angled mounting
String"jointType": "regular"
positionStart and finish point of jointObject"position": {<br />&emsp;"pt1": {<br />&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;"y": 0.0<br />&emsp;},<br />&emsp;"pt2": {<br />&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;"y": 600.0<br />&emsp;}<br />}
boardIDsList of boards where joint connects (always 2 boards)Array"boardIDs": [1,2]

Polished Underside object​

ElementDescriptionData typeExample
idThe product ID of the polished underside productString"dbID": "123456789"
facesArray of polished underside facesArray"faces": [
 (see Polished Underside Face object description below)
]
areaArea of the face (in mmΒ²)Number"area": 768691

Polished Underside Face object​

A Polished underside Face is defined by an outer bound and a list of internal bounds. For example, a board with a sink and a tap, fully polished, is defined an an external bounding (the board) and 2 internal boundings (the sink and the tap)

ElementDescriptionData typeExample
externalEdgesUnordered list of edges of the outer bound of a polished underside
Same as the board edges definition (Edge object), without the id attribute
Array of Object"externalEdges": [
 {<br />&emsp;&emsp;"type": "line",<br />&emsp;&emsp;"pt1": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 0.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"pt2": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;}<br />&emsp;},
 {<br />&emsp;&emsp;"type": "circle",<br />&emsp;&emsp;"center": {<br />&emsp;&emsp;&emsp;"x": 5.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"radius": 5.0,<br />&emsp;&emsp;"angleStart": 1.57079632,<br />&emsp;&emsp;"angleEnd": 3.14159265,<br />&emsp;&emsp;"orientation": 1<br />&emsp;},
 ...
]
internalEdgesAn Array of unordered list of edges of the internal bounds of a polished underside
Same as the board edges definition (Edge object), without the id attribute
Array of Array of Object"internalEdges": [
 [
  {<br />&emsp;&emsp;&emsp;"type": "line",<br />&emsp;&emsp;&emsp;"pt1": {<br />&emsp;&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;&emsp;"y": 0.0<br />&emsp;&emsp;&emsp;},<br />&emsp;&emsp;&emsp;"pt2": {<br />&emsp;&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;&emsp;}<br />&emsp;&emsp;},
  {<br />&emsp;&emsp;&emsp;"type": "circle",<br />&emsp;&emsp;&emsp;"center": {<br />&emsp;&emsp;&emsp;&emsp;"x": 5.0,<br />&emsp;&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;&emsp;},<br />&emsp;&emsp;&emsp;"radius": 5.0,<br />&emsp;&emsp;&emsp;"angleStart": 1.57079632,<br />&emsp;&emsp;&emsp;"angleEnd": 3.14159265,<br />&emsp;&emsp;&emsp;"orientation": 1<br />&emsp;&emsp;},
  ...
 ]
 ...
]

Full worktop export example​

{
"worktop": {
"parts": [
{
"dimensions": {
"length": 1728,
"depth": 635,
"thickness": 38
},
"boardID": 1,
"orientation": "vertical",
"dbID": "",
"doubleSidedProduct": "id_1234",
"edges": [
{
"id": 1,
"type": "line",
"pt1": {
"x": -1846.149169921875,
"y": 1826.164794921875
},
"pt2": {
"x": -1846.149169921875,
"y": 98.47954062332997
}
},
{
"id": 2,
"type": "line",
"pt1": {
"x": -1211.149169921875,
"y": 98.47954062332991
},
"pt2": {
"x": -1846.149169921875,
"y": 98.47954062332991
}
},
{
"id": 3,
"type": "line",
"pt1": {
"x": -1211.149169921875,
"y": 98.47954062332991
},
"pt2": {
"x": -1211.149169921875,
"y": 1191.164794921875
}
},
{
"id": 4,
"type": "line",
"pt1": {
"x": -1211.149169921875,
"y": 1191.164794921875
},
"pt2": {
"x": -1211.149169921875,
"y": 1826.164794921875
}
},
{
"id": 5,
"type": "line",
"pt1": {
"x": -1211.149169921875,
"y": 1826.164794921875
},
"pt2": {
"x": -1846.1491699218748,
"y": 1826.164794921875
}
}
],
"isCustom": true,
"edgeFinish": [],
"shape": null,
"cuts": [],
"cutouts": [
{
"dbID": "",
"id": 1,
"edges": [
{
"type": "line",
"pt1": {
"x": -1426.8572998046875,
"y": 675.4927368164062
},
"pt2": {
"x": -1426.8572998046875,
"y": 375.49273681640625
}
},
{
"type": "line",
"pt1": {
"x": -1426.8572998046875,
"y": 375.49273681640625
},
"pt2": {
"x": -1726.8572998046875,
"y": 375.49273681640625
}
},
{
"type": "line",
"pt1": {
"x": -1726.8572998046875,
"y": 375.49273681640625
},
"pt2": {
"x": -1726.8572998046875,
"y": 675.4927368164062
}
},
{
"type": "line",
"pt1": {
"x": -1726.8572998046875,
"y": 675.4927368164062
},
"pt2": {
"x": -1426.8572998046875,
"y": 675.4927368164062
}
}
]
},
{
"dbID": "",
"id": 2,
"edges": [
{
"type": "circle",
"radius": 50,
"angleStart": 1.5707963267948966,
"angleEnd": 4.71238898038469,
"orientation": -1,
"center": {
"x": -1560.990171508789,
"y": 1049.1086645851672
}
},
{
"type": "circle",
"radius": 50,
"angleStart": 4.71238898038469,
"angleEnd": 1.5707963267948966,
"orientation": -1,
"center": {
"x": -1560.990171508789,
"y": 1049.1086645851672
}
}
]
}
],
"sinks": [],
"grainDirection": {
"x": -1.8369701987210297e-16,
"y": -1
},
"side": 1,
"weight": 2.31
},
{
"dimensions": {
"length": 662,
"depth": 635,
"thickness": 38
},
"boardID": 2,
"dbID": "",
"doubleSidedProduct": null,
"orientation": "horizontal",
"edges": [
{
"id": 6,
"type": "line",
"pt1": {
"x": -1211.149169921875,
"y": -263.8012084960937
},
"pt2": {
"x": -1211.149169921875,
"y": 98.47954062332991
}
},
{
"id": 7,
"type": "line",
"pt1": {
"x": -1211.149169921875,
"y": 98.47954062332991
},
"pt2": {
"x": -1846.149169921875,
"y": 98.47954062332991
}
},
{
"id": 8,
"type": "line",
"pt1": {
"x": -1846.149169921875,
"y": 98.47954062332991
},
"pt2": {
"x": -1846.149169921875,
"y": -263.80120849609375
}
},
{
"id": 9,
"type": "circle",
"radius": 318,
"angleStart": 3.197677219243144,
"angleEnd": 6.227100741526235,
"orientation": 1,
"center": {
"x": -1528.649169921875,
"y": -245.97566502611787
}
}
],
"isCustom": true,
"edgeFinish": [],
"shape": null,
"cuts": [
{
"dimensions": {
"radius": 318
},
"dbId": "",
"cutType": "round_edge",
"edges": [
9
]
}
],
"cutouts": [],
"sinks": [],
"grainDirection": {
"x": 6.123233995736766e-17,
"y": 1
},
"side": 1
},
{
"dimensions": {
"length": 1455,
"depth": 635,
"thickness": 38
},
"boardID": 3,
"dbID": "",
"doubleSidedProduct": null,
"orientation": "horizontal",
"edges": [
{
"id": 10,
"type": "line",
"pt1": {
"x": -1211.149169921875,
"y": 1191.164794921875
},
"pt2": {
"x": 143.80010986328125,
"y": 1191.164794921875
}
},
{
"id": 11,
"type": "line",
"pt1": {
"x": 143.80010986328125,
"y": 1191.164794921875
},
"pt2": {
"x": 143.80010986328125,
"y": 1291.164794921875
}
},
{
"id": 12,
"type": "line",
"pt1": {
"x": 143.80010986328125,
"y": 1291.164794921875
},
"pt2": {
"x": 243.80010986328125,
"y": 1291.164794921875
}
},
{
"id": 13,
"type": "line",
"pt1": {
"x": 243.80010986328125,
"y": 1291.164794921875
},
"pt2": {
"x": 243.80010986328125,
"y": 1736.164794921875
}
},
{
"id": 14,
"type": "circle",
"radius": 90,
"angleStart": 3.141592653589793,
"angleEnd": 4.71238898038469,
"orientation": 1,
"center": {
"x": 243.80010986328125,
"y": 1826.164794921875
}
},
{
"id": 15,
"type": "line",
"pt1": {
"x": 153.80010986328125,
"y": 1826.164794921875
},
"pt2": {
"x": -1211.149169921875,
"y": 1826.164794921875
}
},
{
"id": 16,
"type": "line",
"pt1": {
"x": -1211.149169921875,
"y": 1191.164794921875
},
"pt2": {
"x": -1211.149169921875,
"y": 1826.164794921875
}
}
],
"isCustom": true,
"edgeFinish": [],
"shape": null,
"cuts": [
{
"dbId": "",
"cutType": "double",
"dimensions": {
"a": 100.00000000000006,
"b": 100,
"x": 100.00000000000006,
"y": 100.00000000000006
},
"edgesIDs": [
11,
12
]
},
{
"dimensions": {
"radius": 90
},
"dbId": "",
"cutType": "round_corner_inverted",
"edges": [
14
]
}
],
"cutouts": [
{
"dbID": "",
"id": 3,
"edges": [
{
"type": "line",
"pt1": {
"x": -333.6745300292969,
"y": 1358.664794921875
},
"pt2": {
"x": -633.6745300292969,
"y": 1358.664794921875
}
},
{
"type": "line",
"pt1": {
"x": -633.6745300292969,
"y": 1358.664794921875
},
"pt2": {
"x": -633.6745300292969,
"y": 1658.664794921875
}
},
{
"type": "line",
"pt1": {
"x": -633.6745300292969,
"y": 1658.664794921875
},
"pt2": {
"x": -333.6745300292969,
"y": 1658.664794921875
}
},
{
"type": "line",
"pt1": {
"x": -333.6745300292969,
"y": 1658.664794921875
},
"pt2": {
"x": -333.6745300292969,
"y": 1358.664794921875
}
}
]
}
],
"sinks": [],
"grainDirection": {
"x": -1,
"y": 1.2246467991473532e-16
},
"side": 1,
"polishedUnderside":{
"id":"91749",
"faces":[
{
"externalEdges":[
{
"type":"line",
"pt1":{
"x":628.9894526451243,
"y":1241.088902238097
},
"pt2":{
"x":628.9894526451243,
"y":1876.0889031775941
}
},
{
"type":"line",
"pt1":{
"x":628.9894526451242,
"y":1876.0889031775944
},
"pt2":{
"x":-1211.1388001994246,
"y":1876.138952005793
}
},
{
"type":"line",
"pt1":{
"x":-1211.1388001994246,
"y":1876.138952005793
},
"pt2":{
"x":-1211.1388001994246,
"y":1241.088902238097
}
},
{
"type":"line",
"pt1":{
"x":-1211.1388001994246,
"y":1241.088902238097
},
"pt2":{
"x":628.9894526451244,
"y":1241.088902238097
}
}
],
"internalEdges":[
[
{
"type":"circle",
"radius":25.000000009246993,
"angleStart":1.5707963501550544,
"angleEnd":4.712388957024531,
"orientation":1,
"center":{
"x":-471.0103779720962,
"y":1806.2888851309117
}
},
{
"type":"circle",
"radius":25.00000000924722,
"angleStart":4.712389003744843,
"angleEnd":1.570796303434739,
"orientation":1,
"center":{
"x":-471.01037914010396,
"y":1806.288885130912
}
}
]
]
}
],
"area":768691.5608594896
}
}
],
"joints": [
{
"dbID": "",
"jointType": "regular",
"position": {
"pt1": {
"x": -1211.149169921875,
"y": 1191.164794921875
},
"pt2": {
"x": -1211.149169921875,
"y": 1826.164794921875
}
},
"boardIDs": [
1,
3
]
},
{
"dbID": "",
"position": {
"pt1": {
"x": -1211.149169921875,
"y": 98.47954062332991
},
"pt2": {
"x": -1846.149169921875,
"y": 98.47954062332991
}
},
"boardIDs": [
1,
2
]
}
]
}
}

Wall Panel​

The parts array contains the list of all wall-panel boards in the project. Each board is described as a JSON object as defined in the Board object section.

Board object​

ElementDescriptionData typeExample
boardIDIncremental number based on amount of boards in projectInteger"boardID": 1
dbIDProduct external id of the linear boardString"dbID": "123456789"
dimensionsPhysical size of board (see appendix fig. 4)Object"dimensions": {<br />&emsp;"length": 2000.0,<br />&emsp;"depth": 600.0,<br />&emsp;"thickness": 28.0<br />}
edgesUnordered list of outer board edges including cuts (see appendix fig. 2)Array of WP Edge objects"edges": [
 (see WP Edge object description below)
]
edgeFinishFinish properties applied to the board edgesArray of WP Edge Finish obejcts"edgeFinish": [
 (see WP Edge Finish object description below)
]
grainDirectionDirection of X and YObject"grainDirection": {<br />&emsp;&emsp;"x": 1.0,<br />&emsp;&emsp;"y": 0.0<br />}
isCustomDefines if the board is custom or not
true = Custom
false = Not custom
Boolean"isCustom": true
sideUsed for double sided boards (pre-cut only)
0 = Not double sided
1 = Side option (side 1)
-1 = Side option (side 2)
Integer"side": 1
cutsDescribes the cuts in the current boardArray of WP Cut objects"cuts": [
 (see WP Cut object description below)
]
cutoutsDescribes the cutouts in the current boardArray of WP Cutout objects"cutouts": [
 (see WP Cutout object description below)
]
weightDescribes the weight of current board.
This attribute is only present for iframe version >= 10 and if the EcoFeeRule is implemented.
Number"weight": 2.31
polishedUndersideDescribes the polished underside in the current boardObject"polishedUnderside": [
 (see Polished Underside object description below)
]

WP Edge object​

See WT Edge object πŸ”—

WP Edge Finish object​

See WT Edge Finish object πŸ”—

WP Cut object​

See WT Cut object πŸ”—

WP Cutout object​

This table describes each attributes present in a wall-panel Cutout object.

ElementDescriptionData typeExample
dbIDThe product ID of the cutout productString"dbID": "123456789"
edgesUnordered list of edges of the cutout
Same as the board edges definition (Edge object), without the id attribute
Array of Object"edges": [
 {<br />&emsp;&emsp;"type": "line",<br />&emsp;&emsp;"pt1": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 0.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"pt2": {<br />&emsp;&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;}<br />&emsp;},
 {<br />&emsp;&emsp;"type": "circle",<br />&emsp;&emsp;"center": {<br />&emsp;&emsp;&emsp;"x": 5.0,<br />&emsp;&emsp;&emsp;"y": 100.0<br />&emsp;&emsp;},<br />&emsp;&emsp;"radius": 5.0,<br />&emsp;&emsp;"angleStart": 1.57079632,<br />&emsp;&emsp;"angleEnd": 3.14159265,<br />&emsp;&emsp;"orientation": 1<br />&emsp;},
 ...
]

Wall Edge Strip​

The parts array contains the list of all wall-edge strip items in the project. Each item is described as a JSON object as defined in the Item object section.

Item object​

ElementDescriptionData typeExample
itemIDIncremental number based on amount of items in projectInteger"itemID": 1
dbIDProduct external idString"dbID": "123456789"
edgesUnordered list of worktop supporting edges (see appendix fig. 6)Array of WES Edge objects"edges": [
 (see WES Edge object description below)
]
edgeFinishFinish properties applied to the item edgesArray of WES Edge Finish objects"edgeFinish": [
 (see WES Edge Finish object description below)
]
isCustomDefines if the board is custom or not
true = Custom
false = Not custom
Boolean"isCustom": true

WES Edge object​

This table describes each attributes present in an Edge object.

ElementDescriptionData typeExample
idEdge unique identifierNumber"id": 1
typeType of edge. This is always "line" for wall-edge stripsString"type": "line"
pt1First point information of the straight edgeObject"pt1": {<br />&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;"y": 0.0<br />}
pt2Second point information of the straight edgeObject"pt2": {<br />&emsp;&emsp;"x": 0.0,<br />&emsp;&emsp;"y": 500.0<br />}

WES Edge Finish object​

This table describes each attributes present in an Edge Finish object.

ElementDescriptionData typeExample
edgeIDEdge unique identifierNumber"id": 1
topThe product ID of the top edge finish product, if anyString"top": "123456789"
leftThe product ID of the left edge finish product, if anyString"left": "123456789"
rightThe product ID of the right edge finish product, if anyString"right": "123456789"

Appendix​

Fig. 1​

Worktop with sink

Fig. 2​

Worktop with cuts

Fig. 3​

Worktop with cuts and dimensions

Fig. 4​

Worktop with dimensions

Fig. 5​

Worktop with cuts and dimensions

Fig. 6​

Worktop with numbering

Fig. 7​

Worktop shapes

Β