Resources Numerical accuracy

Calculations

Every calculation under our calculation policies: what it works out, its formula and the precision it runs at. Open one to see its code as it is in the released app.

  • 6,917 calculations in 1,248 source files
  • 143 exact
  • 6,286 in 64-bit
  • 335 with a 32-bit step
  • Last reviewed

Calculations

  • Member stiffness matrix

    The 12 by 12 stiffness of one beam-column in its own axes.

    EA ÷ L, GJ ÷ L, 12EI ÷ L³, 6EI ÷ L², 4EI ÷ L, 2EI ÷ L

    3D frame analysis frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Equivalent nodal loads

    A load along a member as forces and moments at its two ends.

    p = ∫ N(ξ) · w(ξ) dx, by 4-point Gauss-Legendre quadrature

    3D frame analysis frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Banded Cholesky factorisation

    Factorises the stiffness matrix once, for every load set.

    K = L · Lᵀ; pivot s = k_jj − Σ l²; mechanism when s ≤ 1e-11 × k_jj

    3D frame analysis frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Forward and back substitution

    Displacements for one load set from the factorised matrix.

    L · y = f, then Lᵀ · u = y

    3D frame analysis frame/frame-solve.js
    • CadCraft
    • BimCraft
    • DetailCraft
    64-bit
  • Length of a segment or arc

    The true length of one straight or curved piece of a run.

    θ = 4 · atan(b); r = c ÷ (2 · sin(θ ÷ 2)); length = r × |θ|

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Area under an arc

    The area between an arc and its chord.

    area = r² × (θ − sin θ) ÷ 2

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Area of an outline

    The area inside a closed outline by the shoelace formula, arcs included.

    A = ½ Σ (xᵢ · yᵢ₊₁ − xᵢ₊₁ · yᵢ) + Σ arc areas

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Perimeter

    The length around a closed outline.

    P = Σ segment lengths, the closing segment included

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Net area with cut-outs

    Gross area, cut-outs, net area and perimeter of an area mark.

    net = gross − Σ cut-outs

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Centroid

    The center of area of an outline, where its label goes.

    C_x = Σ (xᵢ + xᵢ₊₁) · fᵢ ÷ 6A, fᵢ = xᵢ · yᵢ₊₁ − xᵢ₊₁ · yᵢ

    Takeoff lengths and areas geom.js
    • TakeoffCraft
    64-bit
  • Add, subtract, multiply, divide

    The four operations on values that carry units.

    a + b and a − b need the same dimensions; a × b and a ÷ b combine them

    Calc sheets calc.js Every app
    64-bit
  • Comparisons

    Pass or fail checks such as M <= 40 kN m.

    a ≤ b is true when a ≤ b + 1e-12 × max(1, |a|, |b|)

    Calc sheets calc.js Every app
    64-bit
  • Number shown

    A result as text in the sheet.

    6 significant digits; exponent form from 1e9 up and below 1e-4

    Calc sheets calc.js Every app
    64-bit
  • Knot span

    Which span of the knot vector a parameter falls in.

    i such that U[i] ≤ u < U[i + 1], by bisection

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Basis functions

    The p + 1 basis functions that are not zero at a parameter.

    N(i, p)(u) by the Cox-de Boor recurrence (A2.2)

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Basis function derivatives

    The basis functions and their derivatives up to a chosen order.

    N⁽ᵏ⁾(i, p)(u) for k = 0 … d (A2.3)

    B-spline basis functions nurbs/basis.js
    • ModelCraft
    • PartCraft
    64-bit
  • Line and line

    The point where two lines cross.

    t = ((b₁ − a₁) × d₂) ÷ (d₁ × d₂); parallel when |d₁ × d₂| < 1e-12 × |d₁| × |d₂|

    Line, arc and circle intersections geom.js
    • CadCraft
    64-bit
  • Line and circle

    The points where a line meets a circle or arc.

    A·t² + B·t + C = 0; t = (−B ± √(B² − 4AC)) ÷ 2A

    Line, arc and circle intersections geom.js
    • CadCraft
    64-bit
  • Circle and circle

    The points where two circles or arcs meet.

    x = (d² + r₁² − r₂²) ÷ 2d; h = √(r₁² − x²)

    Line, arc and circle intersections geom.js
    • CadCraft
    64-bit
  • Is the point on the object

    Whether a computed crossing lies on the drawn part of each object.

    −tol ≤ t·L ≤ L + tol, with tol = 1e-7; arcs: the angle within 1e-7 of the sweep

    Line, arc and circle intersections geom.js
    • CadCraft
    64-bit
  • Plan extents and edge tolerance

    The outside box of the level's walls and how close to it a wall must lie to count as an outside edge.

    T = 1.2 × max(150 mm, thickest wall)

    Automatic plan dimensions autodim.js
    • BimCraft
    64-bit
  • Dimension line offset

    How far the dimension line sits from the two points it measures.

    offset = round((target − a)·n × 10) ÷ 10, n = (−dy, dx) ÷ |b − a|

    Automatic plan dimensions autodim.js
    • BimCraft
    64-bit
  • Reference station on a wall

    The saved position of a dimension's end along its wall, 0 at one end and 1 at the other.

    station = round(station × 10⁶) ÷ 10⁶

    Automatic plan dimensions autodim.js
    • BimCraft
    64-bit
  • Is this dimension already there

    Compares two references so the same dimension is not made twice.

    Automatic plan dimensions autodim.js
    • BimCraft
    64-bit
  • Measured segment along an axis

    Makes one dimension between two points, measured along X or along Y.

    Automatic plan dimensions autodim.js
    • BimCraft
    64-bit
  • Stops along an outside edge

    The wall ends, opening edges and meeting walls that a row of dimensions runs between.

    opening stations = offset ÷ L and (offset + width) ÷ L

    Automatic plan dimensions autodim.js
    • BimCraft
    64-bit
  • Inverse of a 4 × 4 matrix

    The inverse of the model's coordination matrix.

    M⁻¹ = adj(M) ÷ det(M)

    Issue viewpoints in BCF files bcf.js
    • BimCraft
    • ModelCraft
    64-bit
  • Viewer point to model point

    A camera position or a point on a section plane in the model's own coordinates, in meters with Z up.

    (x, y, z) = C⁻¹ v; IFC = (x, −z, y)

    Issue viewpoints in BCF files bcf.js
    • BimCraft
    • ModelCraft
    64-bit
  • Viewer direction to model direction

    A camera direction, up vector or section plane normal in the model's own axes.

    Issue viewpoints in BCF files bcf.js
    • BimCraft
    • ModelCraft
    64-bit
  • Model point to viewer point

    A point read from an issue file, placed in the viewer.

    v = C (x, z, −y)

    Issue viewpoints in BCF files bcf.js
    • BimCraft
    • ModelCraft
    64-bit
  • Model direction to viewer direction

    A direction read from an issue file, in the viewer's axes.

    Issue viewpoints in BCF files bcf.js
    • BimCraft
    • ModelCraft
    64-bit
  • Numbers written to the file

    How each coordinate, direction, field of view and scale is written in a viewpoint.

    round(v × 10⁶) ÷ 10⁶

    Issue viewpoints in BCF files bcf.js
    • BimCraft
    • ModelCraft
    64-bit
  • Numbers read from the file

    Reads the X, Y and Z of a point or direction.

    Issue viewpoints in BCF files bcf.js
    • BimCraft
    • ModelCraft
    64-bit
  • Camera read from a viewpoint

    The camera of an issue as BimCraft keeps it.

    Issue viewpoints in BCF files bcf.js
    • BimCraft
    • ModelCraft
    64-bit
  • Which stated quantity is used

    Picks an element's volume, area or length from the quantities the file states.

    Element quantities for carbon and cost carbon-calc.js
    • BimCraft
    64-bit
  • Volume of a mesh

    The volume of an element from its triangles, used when the file states none.

    V = |Σ a·(b × c)| ÷ 6 × (unit ÷ 1000)³

    Element quantities for carbon and cost carbon-calc.js
    • BimCraft
    64-bit
  • Share of the volume per material

    How an element's volume is divided between the materials it is made of.

    layer share = tᵢ ÷ Σt; constituent share = fᵢ ÷ Σf; otherwise 1 ÷ n

    Element quantities for carbon and cost carbon-calc.js
    • BimCraft
    64-bit
  • Floor area of the building

    The floor area the carbon total is divided by when the person has not typed one.

    area = Σ space floor areas, else Σ floor slab areas

    Element quantities for carbon and cost carbon-calc.js
    • BimCraft
    64-bit
  • Quantities per material part

    The volume, area and length handed on for each material of an element.

    part volume = element volume × share

    Element quantities for carbon and cost carbon-calc.js
    • BimCraft
    64-bit
  • Middle of a room

    The point the interior elevation cuts through.

    middle = (min + max) ÷ 2 on each axis

    Interior elevations and their dimensions comforts-views.js
    • BimCraft
    64-bit
  • Frame of an interior elevation

    The width and height of the wall shown, and how deep the view looks.

    x₀, x₁ = min, max of p·right; depth from the room's middle to max(p·dir) + 50 mm

    Interior elevations and their dimensions comforts-views.js
    • BimCraft
    64-bit
  • Dimension values on elevations and sections

    The widths, heights and level spacings written on a view.

    width = x₁ − x₀; height = y₁ − y₀; level spacing = yᵢ₊₁ − yᵢ

    Interior elevations and their dimensions comforts-views.js
    • BimCraft
    64-bit
  • Where a door or window is tagged

    The plan point, the height range and the outward side of each opening.

    middle station = offset + width ÷ 2; top = sill + height

    Interior elevations and their dimensions comforts-views.js
    • BimCraft
    64-bit
  • Views placed at scale on the sheet

    Takes view millimeters to paper millimeters at the sheet's scale.

    k = 1 ÷ scale ratio; paper = origin + view × k

    Interior elevations and their dimensions comforts-views.js
    • BimCraft
    64-bit
  • Where a drag puts an item

    The position and turn saved when a placed item is dragged or turned by its grip.

    turn = round(atan2(dy, dx) × 180 ÷ π ÷ step) × step, step 15° or 1° with Shift

    Interior elevations and their dimensions comforts-ui.js
    • BimCraft
    64-bit
  • Room height on the interior elevations

    The floor-to-floor height the elevations are framed to, and the height of each tagged item.

    height = next level − this level, else the level's own height

    Interior elevations and their dimensions comforts-ui.js
    • BimCraft
    64-bit
  • Project origin and survey point

    Where the site's survey point is in the file's coordinates, with its elevation and map grid position.

    survey point = site placement origin × file unit in mm; elevation in m = RefElevation × unit ÷ 1000

    Coordinate readouts and survey point coords.js
    • BimCraft
    64-bit
  • Level a height is on

    Picks the level whose floor is at or just below a height.

    the highest level with elevation ≤ z + 1 mm

    Coordinate readouts and survey point coords.js
    • BimCraft
    64-bit
  • Foot and US survey foot

    The two sizes of foot a map's unit is compared with.

    ft = 0.3048 m; US ft = 1200 ÷ 3937 m

    Coordinate readouts and survey point coords.js
    • BimCraft
    Exact
  • Map grid coordinates as text

    A point's eastings and northings in the map's own unit.

    value = meters ÷ map unit in meters, written with 3 decimals

    Coordinate readouts and survey point coords.js
    • BimCraft
    64-bit

A calculation is added only after its source was read. Each statement can be checked in the code shown on its policy's page; the app repositories are public. When a release changes a calculation, its page says so until it has been read again.