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
-
Sample pieces of a room's surface
Cuts each triangle of the room's shell into small pieces and starts one ray from each.
k = ⌈longest edge ÷ 0.25 m⌉; k² pieces of area (triangle area ÷ k²); start = piece center + 1e-4 m × normal
Heating and cooling loads per room energy-bim.js64-bit- BimCraft
-
What lies beyond a bounding element
Whether a piece of the room's surface faces another room, the ground or the outside.
probe = start + normal × (farthest crossing + 0.25 m)
Heating and cooling loads per room energy-bim.js64-bit- BimCraft
-
Window and door areas
Sets each window's and door's area to its own width times height and takes the difference from its wall.
A = OverallWidth × OverallHeight (in m); wall area = wall area − (A − sampled area)
Heating and cooling loads per room energy-bim.js64-bit- BimCraft
-
U-value from material layers
The U-value of an element from the thickness and conductivity of its layers.
U = 1 ÷ (Rsi + Σ dᵢ ÷ λᵢ + Rse); Rsi, Rse = 0.13, 0.04 sideways; 0.10, 0.04 upward; 0.17, 0.04 downward
Heating and cooling loads per room energy-bim.js64-bit- BimCraft
-
Heating load, annual energy and cooling peak
Each room's design heat loss, its degree-day year and its cooling peak.
H_vent = 0.335 × n × V; heat = H_out·ΔT + H_ground·ΔT_g + H_vent·ΔT; annual kWh = (H_out + H_vent + H_ground × ΔT_g ÷ ΔT) × DD × 24 ÷ 1000
Heating and cooling loads per room energy-bim.js64-bit- BimCraft
-
Degree-days from a CSV file
The sum of the degree-day column of a CSV file, for a year.
total = Σ of the last numeric cell of each row
Heating and cooling loads per room energy-bim.js64-bit- BimCraft
-
A number in the file
A value written into the input file as text.
text = round(x × 10ᵈ) ÷ 10ᵈ, d = 4 unless stated
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Triangles grouped into planes
The triangles of a room's shell sorted into the flat faces they belong to.
key = (round(1000·n), round(1000·d)), n = unit normal, d = n · A
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Outline of a face
One polygon from the triangles of a flat face.
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Which way a polygon faces
The normal of a polygon, used to order its corners counter-clockwise seen from outside.
n = Σ ((yᵢ − yⱼ)(zᵢ + zⱼ), (zᵢ − zⱼ)(xᵢ + xⱼ), (xᵢ − xⱼ)(yᵢ + yⱼ))
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Construction by U-value
The thermal resistance written for a wall, roof or floor that has no layer build-up.
R = max(0.001, 1 ÷ U − Rs), Rs = 0.17 wall, 0.14 roof, 0.21 floor
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Mean U-value of a room's walls, roof and floor
The area-weighted U-value of each kind of surface in a room.
U = Σ (Aᵢ × Uᵢ) ÷ Σ Aᵢ
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Boundary of a surface
Whether a surface of a room faces another room, the ground or the outside, and its corners as written.
probe = mean of the corners + 0.6 m × outward normal
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Window rectangle on its wall
The four corners of a window as written on the wall it faces.
k = √(area ÷ (span × height)); half width = span × k ÷ 2; half height = height × k ÷ 2; corners projected onto the wall plane
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Glazing written for every window
The one window construction every window in the file uses.
U = 1.4 W/m²K, solar heat gain 0.6, visible transmittance 0.7
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Site and time zone
The latitude, longitude and time zone written to the file.
time zone = round(longitude ÷ 15)
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Design loads read back
Each zone's design heating and cooling load in watts, from the engine's sizing report.
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Yearly energy per zone
Each zone's yearly heating and cooling energy in kilowatt-hours.
kWh = J ÷ 3.6 × 10⁶
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Difference between the two methods
How far the engine's design loads are from the quick loads, per room.
ratio = (engine − quick) ÷ quick
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
Rooms the two methods disagree on
A note for each room whose design heating differs by more than 15 %.
note when |ratio| > 0.15
Energy model input file (IDF) and its results energy-ep.js64-bit- BimCraft
-
A parameter's value as kept
A typed or imported value made safe for its kind.
Family geometry from parameters family-model.js64-bit- BimCraft
-
When two sizes are the same
The key that tells one size of a family from another.
key = every input value rounded to 0.001
Family geometry from parameters family-model.js64-bit- BimCraft
-
Parameters driven by formulas
The value of every parameter that has a formula.
Family geometry from parameters family-model.js64-bit- BimCraft
-
A solid's numbers
The evaluated box, profile, depth, axis, angle, path and radius of each solid, and the check that it is not flat.
box = (min, max) of each pair; a negative depth moves the start: at = at + depth, depth = −depth
Family geometry from parameters family-model.js64-bit- BimCraft
-
Copies in an array
The solids of an array, each moved by a whole number of steps.
copy i is moved by (dx × i, dy × i, dz × i), count = round(count expression)
Family geometry from parameters family-model.js64-bit- BimCraft
-
A family placed inside another
The position and quarter-turn of a nested family.
turns = rotation ÷ 90; accepted when round(turns × 10⁶) ÷ 10⁶ is a whole number; k = turns mod 4
Family geometry from parameters family-model.js64-bit- BimCraft
-
Quarter turn of a solid
An evaluated solid turned 90° about the vertical axis.
(x, y) → (−y, x)
Family geometry from parameters family-model.jsExact- BimCraft
-
Move a solid
An evaluated solid moved by an offset in the family's axes.
p → p + (dx, dy, dz), mapped to the profile plane's own axes
Family geometry from parameters family-model.js64-bit- BimCraft
-
Area of a profile
The area of a profile with its arcs, used to refuse a flat outline.
area = ½ Σ (xᵢ·yᵢ₊₁ − xᵢ₊₁·yᵢ) with arcs flattened to chords
Family geometry from parameters family-model.js64-bit- BimCraft
-
Is the profile on one side of the axis
Whether a revolve's profile stays on one side of its axis.
s = ((axis direction) × (p − axis start)) ÷ |axis|; sides counted beyond ±0.01 mm
Family geometry from parameters family-model.js64-bit- BimCraft
-
Middle point of a profile arc
The point halfway along an arc given by its two ends and a bulge.
sagitta = bulge × chord ÷ 2; middle = chord middle + sagitta × (dy, −dx) ÷ chord
Family geometry from parameters family-model.js64-bit- BimCraft
-
Chords of a profile arc
The points inside an arc, for outlines that cannot hold a true arc.
θ = 4·atan(bulge); n = max(2, ⌈|θ| ÷ 15°⌉); center = circle through start, middle and end
Family geometry from parameters family-model.js64-bit- BimCraft
-
Profile written to the file
A closed profile as an IFC curve: lines and true arcs in IFC4, a polyline in IFC2X3.
Family geometry from parameters family-model.js64-bit- BimCraft
-
A solid written to the file
One box, extrusion, revolve or swept solid as its IFC item.
revolve axis direction = (u₁ − u₀, v₁ − v₀) ÷ L; angle = degrees × π ÷ 180 (file in radians)
Family geometry from parameters family-model.js64-bit- BimCraft
-
Plan outline written to the file
The outline other programs see in plan: the family's symbol, or each solid's outline from above.
Family geometry from parameters family-model.js64-bit- BimCraft
-
Plan bounds of a solid
The smallest plan rectangle round a solid.
revolve: R = largest distance of a profile point from the axis; bounds = axis start ± R, joined with the profile
Family geometry from parameters family-model.js64-bit- BimCraft
-
A plan symbol's numbers
The evaluated lines, rectangles, circles, arcs, outlines and texts of a family's 2D symbol.
Family geometry from parameters family-symbol.js64-bit- BimCraft
-
Circles and arcs of a symbol
A symbol's circle or arc as points.
n = max(2, ⌈sweep ÷ 7.5°⌉); pᵢ = (cx + r·cos aᵢ, cy + r·sin aᵢ)
Family geometry from parameters family-symbol.js64-bit- BimCraft
-
A symbol placed in the plan
The symbol turned by the element's rotation and moved to its place.
(u, v) → (x + u·cos a − v·sin a, y + u·sin a + v·cos a), a = rotation × π ÷ 180
Family geometry from parameters family-symbol.js64-bit- BimCraft
-
Where a placed family stands
A placed element's position and rotation in its level's plan.
x = M₁₂, y = M₁₃, z = M₁₄; rotation = atan2(M₁, M₀) × 180 ÷ π
Family geometry from parameters family-ops.js64-bit- BimCraft
-
Connector written as a port
A family's pipe or duct connector written on a placed element: its point, direction and nominal size.
Family geometry from parameters family-ops.js64-bit- BimCraft
-
Snap to a step
A sketch coordinate moved to the nearest multiple of the grid step.
v → round(v ÷ step) × step
Family editor: sketch points, handles and solved sizes family-edit.js64-bit- BimCraft
-
Quarter-arc bulge
The bulge that makes a segment a quarter circle, and the cycle straight, left arc, right arc.
bulge = tan(90° ÷ 4) = tan(π ÷ 8) = √2 − 1
Family editor: sketch points, handles and solved sizes family-edit.js64-bit- BimCraft
-
Move a sketch point
A profile or path point moved to a new place.
Family editor: sketch points, handles and solved sizes family-edit.js64-bit- BimCraft
-
Set a segment's bulge
Makes a profile segment straight or an arc of a given bulge.
bulge = tan(angle ÷ 4), rounded to 12 decimals, |bulge| ≤ 10
Family editor: sketch points, handles and solved sizes family-edit.js64-bit- BimCraft
-
Bounds of a family
The box round a family's visible solids.
Family editor: sketch points, handles and solved sizes family-edit.js64-bit- BimCraft
-
Height range of a solid
The lowest and highest point of one solid.
sweep: path z ± radius; revolve on the floor plane: at ± largest |profile point|
Family editor: sketch points, handles and solved sizes family-edit.js64-bit- BimCraft
-
Which parameter moves which face
Finds, for each input length, the face of the family it pushes out.
nudge the parameter by 10 mm; the face that moves most, and by more than 0.5 mm, is its handle
Family editor: sketch points, handles and solved sizes family-edit.js64-bit- BimCraft
-
Solve for a parameter
The parameter value that puts a face or a hotspot at the dragged position.
secant: c = b − f(b)·(b − a) ÷ (f(b) − f(a)); then bisection on a bracket; stop at |f| < 10⁻⁷
Family editor: sketch points, handles and solved sizes family-edit.js64-bit- BimCraft
-
Drag a hotspot
The size values after a hotspot is dragged along its axis.
x = solve(position(x) = dragged position); kept value = round(x × 1000) ÷ 1000
Family editor: sketch points, handles and solved sizes family-edit.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.