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.
Calculations
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
World triangles and box of each element
Each element's triangles in the scene's coordinates and the box round them.
p' = M p
Clash check clash.js32-bit in part- BimCraft
-
Overlap of two boxes
How far two elements' boxes overlap, the figure reported as the clash depth.
depth = min over X, Y, Z of (min of the two maxima − max of the two minima)
Clash check clash.js64-bit- BimCraft
-
Candidate pairs and the result list
Pairs one element from each set whose boxes overlap by more than the tolerance, tests them and lists the clashes deepest first.
candidate when depth > tolerance
Clash check clash.js64-bit- BimCraft
-
Do two elements' surfaces cross
Looks for a pair of triangles, one from each element, that cross.
Clash check clash.js32-bit in part- BimCraft
-
Triangle against triangle
Decides whether two triangles cross and gives a point on the crossing.
dᵢ = n₂·pᵢ + d₂ for each corner; crossing when each triangle has corners on both sides of the other's plane and their intervals on the line n₁ × n₂ overlap
Clash check clash.js32-bit in part- BimCraft
-
Cloud to plan matrix
The one matrix that takes a cloud's points to a level's plan in millimeters.
M = storey⁻¹ · S · C⁻¹ · model⁻¹ · layer, S taking meters with Y up to millimeters with Z up
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
Slice of the cloud at the cut height
The cloud's points near a level's cut height, in plan millimeters.
kept when |z − cut| ≤ thickness ÷ 2
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
Nearest slice point
The slice point nearest a plan point, for snapping a drawn point to the scan.
minimum of (x − xᵢ)² + (y − yᵢ)² within r
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
Turn that sets the scan square
The angle of the scan's walls against the plan's axes, and the point to turn about.
angle = first estimate + the trial turn in −1°…1° with the highest sharpness
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
Sharpness of a trial turn
Scores how well the points line up along X and Y after a trial turn.
score = Σ (count per 10 mm bin along X)² + Σ (count per 10 mm bin along Y)²
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
Wall direction from line fits
A first estimate of the walls' direction from a line fitted to the points in each cell.
per cell: covariance c_xx, c_yy, c_xy; λ = tr ÷ 2 ± √(tr² ÷ 4 − det); angle = atan2(λ₁ − c_xx, c_xy), folded into 0…90°
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
Floor height of a scan
The height of the scan's floor above the level.
floor = mean z of the points in the fullest 20 mm band of the lowest third
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
Turn about a plan point
The matrix that turns the scan by an angle about a point in the plan.
x' = c x − s y + (x₀ − c x₀ + s y₀); y' = s x + c y + (y₀ − s x₀ − c y₀)
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
A plan change carried to the scene
Re-expresses a turn or a lift made in the plan as a change of the cloud's own placement.
A' = M⁻¹ · A · M
Point cloud slice and scan alignment cloud-slice.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.jsExact- BimCraft
-
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.js64-bit- BimCraft
-
Height above the level
The lines of a readout: the level and the height above its floor, X and Y from the project origin, Z, and the map position.
height above the level = z − level elevation
Coordinate readouts and survey point coords.js64-bit- BimCraft
-
Plan point to file coordinates
A point in a storey's plan, in the file's coordinates.
q = M (x, y, 0)
Coordinate readouts and survey point coords.js64-bit- BimCraft
-
File coordinates to plan point
A point in the file's coordinates, in a storey's plan.
p = M⁻¹ q
Coordinate readouts and survey point coords.js64-bit- BimCraft
-
File coordinates to the 3D view
Where a point of the file sits in the 3D view, to draw the origin and survey markers.
(x, y, z) × unit → (x, z, −y) → C → placement
Coordinate readouts and survey point coords.js64-bit- BimCraft
-
Unit factors for priced quantities
The size of each pricing unit in m, m² or m³.
1 yd³ = 0.764554858 m³; 1 ft³ = 0.0283168466 m³; 1 ft² = 0.09290304 m²; 1 ft = 0.3048 m
Costs on the schedule cost5d.js64-bit- BimCraft
-
Dollars to whole cents
Rounds an amount to a whole number of cents.
cents = round(dollars × 100)
Costs on the schedule cost5d.js64-bit- BimCraft
-
Whole cents to dollars
The amount reported, in dollars.
dollars = round(cents) ÷ 100
Costs on the schedule cost5d.js64-bit- BimCraft
-
Quantity in the price's unit
An element's volume, area, length, weight or count in the unit its price is per.
qty = quantity ÷ unit factor; weight = volume × density
Costs on the schedule cost5d.js64-bit- BimCraft
-
Cost of each element
The material and labor cost of every element, and the total.
line = round(qty × (1 + waste) × material rate × 100) + round(qty × labor rate × 100) cents
Costs on the schedule cost5d.js64-bit- BimCraft
-
Cost of each scheduled task
Adds up the cost of a task's elements, sharing an element that is in several tasks.
task cents = round(Σ element cents ÷ n), n = the tasks that hold the element
Costs on the schedule cost5d.js64-bit- BimCraft
-
Spending profile of a task
The weight each day of a task gets: even, front-loaded, back-loaded or bell-shaped.
even 1; front D − i; back i + 1; bell sin(π (i + 0.5) ÷ D)
Costs on the schedule cost5d.js64-bit- BimCraft
-
A task's cost per day
Divides a task's cost over its days in whole cents.
dayᵢ = floor(cents × wᵢ ÷ W), then one more cent to the days with the largest remainders
Costs on the schedule cost5d.js64-bit- BimCraft
-
Cash flow curve
The cost per day, week or month and the running total.
period cost = Σ day cents; cumulative = running sum
Costs on the schedule cost5d.js64-bit- BimCraft
-
Planned, built and earned value on a day
What the schedule plans to have spent by a day, what is built, running and remaining, and the earned value from typed progress.
earned = Σ task cents × progress, progress clamped to 0…1
Costs on the schedule cost5d.js64-bit- BimCraft
-
Grand total
Runs the whole calculation and states the total cost.
grand = scheduled + unscheduled
Costs on the schedule cost5d.js64-bit- BimCraft
-
Rates read from TakeoffCraft
Turns TakeoffCraft's stored rates into prices per unit.
rate = stored whole number ÷ 10000
Costs on the schedule cost5d.js64-bit- BimCraft
-
Costs in the CSV export
The amounts written to the exported table.
Costs on the schedule cost5d.js64-bit- BimCraft
-
Rounding of stored map values
Rounds an easting, northing or height before it is stored.
round(v × 10⁶) ÷ 10⁶
Placing a model on the map crs-georef.js64-bit- BimCraft
-
Latitude and longitude of a grid point
The longitude and latitude of an easting and northing in the chosen system.
Placing a model on the map crs-georef.js64-bit- BimCraft
-
Map conversion as a matrix
The matrix that takes model coordinates to map coordinates.
x' = s (a x − b y) + E; y' = s (b x + a y) + N; z' = s z + H, with (a, b) the normalized X axis
Placing a model on the map crs-georef.js64-bit- BimCraft
-
Rotation of the model on the grid
The angle of the model's X axis from grid east, in degrees.
θ = atan2(ordinate, abscissa) × 180 ÷ π
Placing a model on the map crs-georef.js64-bit- BimCraft
-
True north in the model
The direction of true north in the model's own X and Y.
g = grid direction of a 0.0001° step north; true north = (cos(g − m), sin(g − m)), m the model's rotation
Placing a model on the map crs-georef.js64-bit- BimCraft
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.