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
-
Octave band weight
How much of a frequency belongs to one octave band.
w = cos(π ÷ 2 × |log₂(f ÷ f_band)|) within one octave, else 0
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
Zero-phase band filter
Keeps one octave band of a signal.
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
Decaying reverberant tail
The diffuse part of the response: noise that falls 60 dB in each band's reverberation time.
tail(t) = Σ_bands noise_b(t) × e^(−k t), k = 6.907755 ÷ T_b; × (t ÷ onset)² up to onset = max(0.002, 2 × mean free path ÷ 343)
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
First reflections and the tail's level
Places the six first reflections and sets the level of the tail against the direct sound.
R = S a ÷ (1 − a); reflection gain = √(1 − a) × d₀ ÷ d at sample round((d − d₀) ÷ 343 × sr); tail energy = 16π d₀² ÷ R less the reflections; r_c = √(R ÷ 16π)
Room impulse response and listening acoustics-ir.js32-bit in part- BimCraft
-
Reverberation time measured from a response
The reverberation time of an impulse response in one band, by Schroeder's backward integration.
E(t) = Σ over τ ≥ t of x²; L = 10 log₁₀(E(t) ÷ E(0)); T = 60 ÷ −slope of L between −5 and −35 dB
Room impulse response and listening acoustics-ir.js64-bit- BimCraft
-
Convolution
A dry sound passed through the room's impulse response.
y = IFFT(FFT(x) × FFT(h)) ÷ N
Room impulse response and listening acoustics-ir.js32-bit in part- BimCraft
-
Level matching
Brings the sound in the room to the loudness of the dry sound, so switching between them changes the room and not the volume.
k = rms(dry) ÷ rms(wet over the dry sound's length)
Room impulse response and listening acoustics-ir.js32-bit in part- BimCraft
-
WAV file samples
The numbers written to the downloaded sound file.
s = round(clamp(x × k, −1, 1) × 32767), k = 1 ÷ peak when peak > 1
Room impulse response and listening acoustics-ir.js32-bit in part- BimCraft
-
Length unit of the file
The factor that takes the file's lengths to millimeters.
toMm = prefix × 1000, or factor × base × 1000 for a converted unit
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Axis placement
The three axes and the origin of one IFC placement.
X = norm(X − Z (X·Z)); Y = Z × X
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Placement chain
An element's position and axes in the model, through every placement it is relative to.
M = M_parent ∘ M_local
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Rounded rectangle outline
The outline of a hollow rectangular section with rounded corners.
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Circle outline
The outline of a round bar or tube.
pᵢ = r (cos 2πi ÷ 64, sin 2πi ÷ 64)
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
I-shape outline
The outline of an I section with its root fillets.
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Is this I-shape a rolled section
Matches an I-shape's name and sizes against the section table, to decide whether it is treated as rolled or welded.
|a − b| ≤ max(0.5 mm, 0.01 × b) for d, bf, tw, tf
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Member axis, length and section
The line a member is analyzed on and the section properties it carries.
axis from the section centroid c₀ to c₀ + depth × ext; skipped when |ext·U| or |ext·V| > 0.001
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Concrete wall as a line, thickness and height
Reads a concrete wall's plan outline as a center line and a thickness for the plate model.
turn the outline by −θ of its longest edge; thickness = y₁ − y₀; kept when |area| ≥ 0.9 × box area
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Closest points of a line and a segment
Where a member's own line passes nearest another member's axis, and how far apart they are there.
s = (b e − c d) ÷ (a c − b²); t = (a e − b d) ÷ (a c − b²)
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Member ends carried onto the nearest axis
Moves each member end along its own line onto the axis of the member it meets.
accepted when d ≤ 0.6 × max(size) + 25 mm and |s| ≤ 0.6 × size + 150 mm; score = d + 0.01 |s|
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Node merging
Decides whether a point is a new joint or an existing one.
same node when |p − node| ≤ 10 mm
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Where members are split
The stations along a member at which other members or point loads meet it.
s = (Q − A)·u; split when 10 mm < s < L − 10 mm and |A + s u − Q| ≤ 10 mm
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Shared section records
Groups members that have the same section so the model lists each section once.
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Section roll angle
How far the drawn section is turned about the member's axis from the default local axes.
roll = atan2(U·e_z0, U·e_y0) × 180 ÷ π + principal turn
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Supports at column feet
Puts a support under every column that nothing continues below.
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
Loads on split members
Places point loads and cuts distributed loads onto the pieces a member was split into.
w(s) = w + (w₂ − w)(s − a) ÷ (b − a)
Frame model from a building model analysis-bim.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
Is this dimension already there
Compares two references so the same dimension is not made twice.
Automatic plan dimensions autodim.js64-bit- BimCraft
-
Measured segment along an axis
Makes one dimension between two points, measured along X or along Y.
Automatic plan dimensions autodim.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.js64-bit- BimCraft
- ModelCraft
-
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.js64-bit- BimCraft
- ModelCraft
-
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.js64-bit- BimCraft
- ModelCraft
-
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.js64-bit- BimCraft
- ModelCraft
-
Model direction to viewer direction
A direction read from an issue file, in the viewer's axes.
Issue viewpoints in BCF files bcf.js64-bit- BimCraft
- ModelCraft
-
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.js64-bit- BimCraft
- ModelCraft
-
Numbers read from the file
Reads the X, Y and Z of a point or direction.
Issue viewpoints in BCF files bcf.js64-bit- BimCraft
- ModelCraft
-
Camera read from a viewpoint
The camera of an issue as BimCraft keeps it.
Issue viewpoints in BCF files bcf.js64-bit- BimCraft
- ModelCraft
-
Distance and area measured in 3D
The length between two picked points with its X, Y and Z parts, or the area of a picked face.
distance = |b − a|; area = the picked face's area
Measurements and typed values in the main window bimcraft.js32-bit in part- BimCraft
-
Map position of a picked point
The map grid coordinates, height, latitude and longitude of a point picked on the model.
picked point → file coordinates → map grid (IfcMapConversion) → latitude and longitude (proj4)
Measurements and typed values in the main window bimcraft.js32-bit in part- BimCraft
-
Latitude and longitude as text
How a located point's latitude and longitude are written in the readout and the label.
round(v × 10ⁿ) ÷ 10ⁿ, then n decimals
Measurements and typed values in the main window bimcraft.js64-bit- BimCraft
-
Lengths shown in Properties
A length property or quantity shown in the person's display unit.
shown = file value × file unit in mm
Measurements and typed values in the main window bimcraft.js64-bit- BimCraft
-
A typed length written to the file
Converts a length typed in Properties from the display unit to the file's own unit.
file value = round(mm ÷ file unit × 10⁹) ÷ 10⁹
Measurements and typed values in the main window bimcraft.js64-bit- BimCraft
-
Numbers in the quantity tables
How a total or a quantity is written in the on-screen quantity tables.
Measurements and typed values in the main window bimcraft.js64-bit- BimCraft
-
Height of a ceiling-mounted item
How far above its level a library item is placed when it hangs from the ceiling.
z = max(0, top − item height)
Measurements and typed values in the main window bimcraft.js64-bit- BimCraft
-
Clash tolerance as typed
Reads the tolerance for the clash check, in meters.
Measurements and typed values in the main window bimcraft.js64-bit- BimCraft
-
Offset of an added model
The X, Y and Z move typed for a model added beside the first one.
offset in m = typed length in mm ÷ 1000
Measurements and typed values in the main window bimcraft.js64-bit- BimCraft
-
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.js64-bit- BimCraft
-
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.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.