Skip to main content

Linear Dimension

OCCT category icon with a stylized logo representation

Linear dimensions measure and display the distance between two points in your 3D models. They're essential for technical drawings, manufacturing documentation, and design verification. Bitbybit's linear dimension tools help you create professional dimensional annotations that automatically update when your geometry changes.

Understanding Linear Dimensions

Linear dimensions measure straight-line distances between two points and display them with dimension lines, extension lines, and text labels. The system automatically calculates distances and formats the display. Key components include start and end points that define what's being measured, a direction vector that controls dimension line orientation, offset distance that sets how far the dimension appears from geometry, and label customization for text formatting, units, and positioning.

Bitbybit Platform

Simple linear dimension between two points

rete logoRete
Script Source (rete)
{
"id": "rete-v2-json",
"nodes": {
"a1b2c3d4e5f6g7h8": {
"id": "a1b2c3d4e5f6g7h8",
"name": "bitbybit.point.pointXYZ",
"customName": "start point",
"async": false,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"x": -5,
"y": 0,
"z": 0
},
"inputs": {},
"position": [
7.482591014780979,
58.460446270459585
]
},
"b2c3d4e5f6g7h8i9": {
"id": "b2c3d4e5f6g7h8i9",
"name": "bitbybit.point.pointXYZ",
"customName": "end point",
"async": false,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"x": 5,
"y": 0,
"z": 0
},
"inputs": {},
"position": [
10.061801916378727,
411.1480178836501
]
},
"c3d4e5f6g7h8i9j0": {
"id": "c3d4e5f6g7h8i9j0",
"name": "bitbybit.occt.dimensions.simpleLinearLengthDimension",
"customName": "linear dimension",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"offsetFromPoints": 0.3,
"crossingSize": 0.2,
"decimalPlaces": 1,
"labelSuffix": "cm",
"labelSize": 0.4,
"labelOffset": 0.8,
"labelRotation": 0
},
"inputs": {
"start": {
"connections": [
{
"node": "a1b2c3d4e5f6g7h8",
"output": "result",
"data": {}
}
]
},
"end": {
"connections": [
{
"node": "b2c3d4e5f6g7h8i9",
"output": "result",
"data": {}
}
]
},
"direction": {
"connections": [
{
"node": "d4e5f6g7h8i9j0k1",
"output": "result",
"data": {}
}
]
}
},
"position": [
570.2450515032658,
366.4814859166162
]
},
"d4e5f6g7h8i9j0k1": {
"id": "d4e5f6g7h8i9j0k1",
"name": "bitbybit.vector.vectorXYZ",
"customName": "direction",
"async": false,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"x": 0,
"y": 1,
"z": 0
},
"inputs": {},
"position": [
7.392071876593093,
765.5571470674718
]
}
}
}

Linear dimensions update automatically when geometry changes, keeping your documentation accurate throughout the design process.

Bitbybit Platform

Linear dimensions applied on box

rete logoRete
Script Source (rete)
{
"id": "rete-v2-json",
"nodes": {
"dcfbf00035f6f270": {
"id": "dcfbf00035f6f270",
"name": "bitbybit.occt.shapes.solid.createBox",
"customName": "box",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"width": 1,
"length": 2,
"height": 3,
"center": [
0,
0,
0
],
"originOnCenter": true
},
"inputs": {
"width": {
"connections": [
{
"node": "e395e40fe72bb29f",
"output": "result",
"data": {}
}
]
},
"length": {
"connections": [
{
"node": "cf35926fa7da0107",
"output": "result",
"data": {}
}
]
},
"height": {
"connections": [
{
"node": "89be13c13cf875d4",
"output": "result",
"data": {}
}
]
}
},
"position": [
112.23097226696606,
1136.6485136929464
]
},
"a50998866e606a16": {
"id": "a50998866e606a16",
"name": "bitbybit.occt.dimensions.simpleLinearLengthDimension",
"customName": "simple linear length dimension",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"offsetFromPoints": 0.2,
"crossingSize": 0.2,
"decimalPlaces": 2,
"labelSuffix": "(cm)",
"labelSize": 0.5,
"labelOffset": 1,
"labelRotation": 180
},
"inputs": {
"direction": {
"connections": [
{
"node": "a8cd9a592e3f396e",
"output": "result",
"data": {}
}
]
},
"end": {
"connections": [
{
"node": "dfb9c60b39554c59",
"output": "result",
"data": {}
}
]
},
"start": {
"connections": [
{
"node": "4a05d516f394b2b3",
"output": "result",
"data": {}
}
]
}
},
"position": [
1909.0084133845817,
299.37892151503667
]
},
"e395e40fe72bb29f": {
"id": "e395e40fe72bb29f",
"name": "bitbybit.math.numberSlider",
"customName": "number slider",
"data": {
"options": {
"min": 3,
"max": 20,
"step": 0.1,
"width": 350,
"updateOnDrag": false
},
"number": 13.2
},
"inputs": {},
"position": [
-539.2756926247216,
1038.0317791091716
]
},
"cf35926fa7da0107": {
"id": "cf35926fa7da0107",
"name": "bitbybit.math.numberSlider",
"customName": "number slider",
"data": {
"options": {
"min": 3,
"max": 20,
"step": 0.1,
"width": 350,
"updateOnDrag": false
},
"number": 9.1
},
"inputs": {},
"position": [
-539.5433497643697,
1217.9169016258388
]
},
"89be13c13cf875d4": {
"id": "89be13c13cf875d4",
"name": "bitbybit.math.numberSlider",
"customName": "number slider",
"data": {
"options": {
"min": 3,
"max": 20,
"step": 0.1,
"width": 350,
"updateOnDrag": false
},
"number": 5.3
},
"inputs": {},
"position": [
-537.7436456921906,
1393.942538395053
]
},
"5ada75e65ba6ebc2": {
"id": "5ada75e65ba6ebc2",
"name": "bitbybit.occt.shapes.edge.getEdges",
"customName": "get edges",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
}
},
"inputs": {
"shape": {
"connections": [
{
"node": "dcfbf00035f6f270",
"output": "result",
"data": {}
}
]
}
},
"position": [
552.7465651913625,
1136.6093233537335
]
},
"e1bf81c7b59ab1e5": {
"id": "e1bf81c7b59ab1e5",
"name": "bitbybit.lists.getItem",
"customName": "get item",
"async": false,
"drawable": false,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"index": 0,
"clone": true
},
"inputs": {
"list": {
"connections": [
{
"node": "5ada75e65ba6ebc2",
"output": "result",
"data": {}
}
]
}
},
"position": [
1025.7402763297987,
255.28325420243362
]
},
"dfb9c60b39554c59": {
"id": "dfb9c60b39554c59",
"name": "bitbybit.occt.shapes.edge.endPointOnEdge",
"customName": "end point on edge",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
}
},
"inputs": {
"shape": {
"connections": [
{
"node": "e1bf81c7b59ab1e5",
"output": "result",
"data": {}
}
]
}
},
"position": [
1444.415841817625,
347.835985513198
]
},
"4a05d516f394b2b3": {
"id": "4a05d516f394b2b3",
"name": "bitbybit.occt.shapes.edge.startPointOnEdge",
"customName": "start point on edge",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
}
},
"inputs": {
"shape": {
"connections": [
{
"node": "e1bf81c7b59ab1e5",
"output": "result",
"data": {}
}
]
}
},
"position": [
1443.2079827600558,
75.86638080483235
]
},
"a8cd9a592e3f396e": {
"id": "a8cd9a592e3f396e",
"name": "bitbybit.vector.vectorXYZ",
"customName": "vector xyz",
"async": false,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"x": -2,
"y": 0,
"z": 0
},
"inputs": {},
"position": [
1447.745802643203,
625.9643954581835
]
},
"416af15fe8d8d993": {
"id": "416af15fe8d8d993",
"name": "bitbybit.occt.dimensions.simpleLinearLengthDimension",
"customName": "simple linear length dimension",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"offsetFromPoints": 0.2,
"crossingSize": 0.2,
"decimalPlaces": 2,
"labelSuffix": "(cm)",
"labelSize": 0.5,
"labelOffset": 1,
"labelRotation": 180
},
"inputs": {
"start": {
"connections": [
{
"node": "6b445077c0cfd637",
"output": "result",
"data": {}
}
]
},
"end": {
"connections": [
{
"node": "0f1168255610661f",
"output": "result",
"data": {}
}
]
},
"direction": {
"connections": [
{
"node": "604ea90b0e453027",
"output": "result",
"data": {}
}
]
}
},
"position": [
1907.592259564266,
1173.4850679811507
]
},
"cf2a8c8ff04e541f": {
"id": "cf2a8c8ff04e541f",
"name": "bitbybit.lists.getItem",
"customName": "get item",
"async": false,
"drawable": false,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"index": 10,
"clone": true
},
"inputs": {
"list": {
"connections": [
{
"node": "5ada75e65ba6ebc2",
"output": "result",
"data": {}
}
]
}
},
"position": [
1015.5114277400813,
1135.7473238575687
]
},
"6b445077c0cfd637": {
"id": "6b445077c0cfd637",
"name": "bitbybit.occt.shapes.edge.startPointOnEdge",
"customName": "start point on edge",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
}
},
"inputs": {
"shape": {
"connections": [
{
"node": "cf2a8c8ff04e541f",
"output": "result",
"data": {}
}
]
}
},
"position": [
1444.9282057300006,
983.7404716418204
]
},
"0f1168255610661f": {
"id": "0f1168255610661f",
"name": "bitbybit.occt.shapes.edge.endPointOnEdge",
"customName": "end point on edge",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
}
},
"inputs": {
"shape": {
"connections": [
{
"node": "cf2a8c8ff04e541f",
"output": "result",
"data": {}
}
]
}
},
"position": [
1444.0147432438412,
1268.4539427754107
]
},
"604ea90b0e453027": {
"id": "604ea90b0e453027",
"name": "bitbybit.vector.vectorXYZ",
"customName": "vector xyz",
"async": false,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"x": 0,
"y": 0,
"z": -2
},
"inputs": {},
"position": [
1446.0652318544353,
1555.9370725872095
]
},
"4bbf4c14bd27cf5b": {
"id": "4bbf4c14bd27cf5b",
"name": "bitbybit.lists.getItem",
"customName": "get item",
"async": false,
"drawable": false,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"index": 7,
"clone": true
},
"inputs": {
"list": {
"connections": [
{
"node": "5ada75e65ba6ebc2",
"output": "result",
"data": {}
}
]
}
},
"position": [
1079.197873376024,
1954.9602438497295
]
},
"4a5356fecf682988": {
"id": "4a5356fecf682988",
"name": "bitbybit.occt.shapes.edge.startPointOnEdge",
"customName": "start point on edge",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
}
},
"inputs": {
"shape": {
"connections": [
{
"node": "4bbf4c14bd27cf5b",
"output": "result",
"data": {}
}
]
}
},
"position": [
1458.6302794417766,
1937.2311996921744
]
},
"3f12bd185760c15f": {
"id": "3f12bd185760c15f",
"name": "bitbybit.occt.shapes.edge.endPointOnEdge",
"customName": "end point on edge",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
}
},
"inputs": {
"shape": {
"connections": [
{
"node": "4bbf4c14bd27cf5b",
"output": "result",
"data": {}
}
]
}
},
"position": [
1461.4668226043054,
2215.882252233176
]
},
"75b1de11bd64e281": {
"id": "75b1de11bd64e281",
"name": "bitbybit.occt.dimensions.simpleLinearLengthDimension",
"customName": "simple linear length dimension",
"async": true,
"drawable": true,
"data": {
"genericNodeData": {
"hide": false,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"offsetFromPoints": 0.2,
"crossingSize": 0.2,
"decimalPlaces": 2,
"labelSuffix": "(cm)",
"labelSize": 0.5,
"labelOffset": 1,
"labelRotation": 180
},
"inputs": {
"direction": {
"connections": [
{
"node": "f8041d58c74f0ff7",
"output": "result",
"data": {}
}
]
},
"end": {
"connections": [
{
"node": "4a5356fecf682988",
"output": "result",
"data": {}
}
]
},
"start": {
"connections": [
{
"node": "3f12bd185760c15f",
"output": "result",
"data": {}
}
]
}
},
"position": [
1921.9238354315291,
2017.1968640904734
]
},
"f8041d58c74f0ff7": {
"id": "f8041d58c74f0ff7",
"name": "bitbybit.vector.vectorXYZ",
"customName": "vector xyz",
"async": false,
"drawable": true,
"data": {
"genericNodeData": {
"hide": true,
"oneOnOne": false,
"flatten": 0,
"forceExecution": false
},
"x": 2,
"y": 0,
"z": 0
},
"inputs": {},
"position": [
1465.547647057041,
2506.436376081527
]
}
}
}

Dimension Properties and Customization

Linear dimensions offer extensive customization options to match your documentation standards.

Essential Parameters

Start and End Points define the geometry being measured. You can use points directly or extract them from edges and vertices.

Direction Vector controls where the dimension line appears relative to the measured geometry. Positive vectors move the dimension in that direction, negative values move it opposite.

Offset Distance controls how far the dimension line appears from the measured points. This helps stack multiple dimensions without overlap.

Crossing Size determines the length of extension lines connecting measured points to the dimension line.

Label Formatting

Decimal Places controls measurement precision. Engineering drawings typically use 1-3 decimal places.

Label Suffix adds units or context like "(mm)", "(cm)", "(in)", or "(TYP)" for typical dimensions.

Label Size controls text size, scaled for your model and viewing distance.

Label Offset positions text relative to the dimension line. Positive values move text away from geometry.

Label Rotation rotates dimension text for better readability on angled or vertical dimensions.

Best Practices

Linear dimensions serve critical functions in design and manufacturing workflows. They provide precise measurements for manufacturing and quality control, help verify designs meet specifications, guide manufacturing processes, and communicate assembly requirements.

Placement Guidelines

Place dimensions to avoid interfering with geometry or other annotations. Group related dimensions together and organize them hierarchically with primary dimensions most prominent. Maintain consistent formatting throughout your documentation. Choose direction vectors that place dimensions where viewers naturally expect to find them.

Why Linear Dimensions Matter

Linear dimensions bridge the gap between design intent and manufacturing reality. They provide a common language in collaborative environments, eliminate manual measurements, and reduce errors in downstream processes. Parametric dimensions that update automatically save time and prevent outdated documentation. Mastering these tools improves design documentation quality and clarity, leading to reduced errors, faster manufacturing, and clearer communication.