trace_duct_circuits
THE CIRCUITS THE FANS OF A MODEL ARE SIZED ON, AND THEIR PRESSURE DROP, without anyone clicking.
FIRST THE LIST, THEN THE CALCULATION. Called with only the token, once your rules are posted with apply_ifc_rules, it computes NOTHING and bills nothing: it returns the COMPLETE list of the model's systems ('systemes', each with the units that serve it) and of its air handling units and fans ('centrales_et_ventilateurs', each with the systems it serves). This list is complete, unlike the overview: you may choose from it.
The user named units or systems, even loosely: map their words onto the EXACT names of the list, say which you picked, and call again with systems and/or units.
The user asked for the whole model and the list says 'tous_possible' (50 air networks or fewer): call again with all_networks=true.
Otherwise show the user the WHOLE list to tick - every unit and fan, every system, however long; never only the main ones. 'Tous' first when it is offered, then one numbered line per unit with the systems it serves, then the systems no unit serves. Filter only on what the user said (a name, a building, a level, exhaust...), and then say which filter and how many lines it left out. Call with what they tick. BEYOND 50 AIR NETWORKS, 'Tous' is not offered: the model is too complex to compute at once, and all_networks returns the list again. A system brings in the WHOLE unit that serves it - supply, return, outdoor air, exhaust. To add more later, call again with the new names: what is already computed stays, and is not billed again. The whole model starts from every unit and fan, units first, each explored on its own, and lists them under 'departs'.
A NETWORK WITH NO UNIT IS NOT SKIPPED. When no unit or fan of your rules serves it - the unit sits in another file, is not chosen yet, or your rules missed it - it starts from a unit found by its IFC class that your rules gave no role, or else from its largest free duct end, where a missing unit would connect. These starts are SUPPOSED and marked 'depart_suppose' under 'departs': say so, and ask the user to check them on the 3D link.
YOU SEE A SAMPLE IN THE OVERVIEW, THE WHOLE MODEL HERE. Never choose the networks from what read_ifc_overview showed you - one example per type: choose from the list this tool returns.
A REQUEST THE TOOL CANNOT MATCH. Names that match nothing come back under 'non_reconnus', each with the closest names; the names that did match are computed. If NOTHING matched - or the GUID or unit_name is unknown - nothing is computed, whatever the size of the model: the list comes back, with the closest names under 'non_reconnus' and what went wrong under 'demande_non_satisfaite'. Correct the names from the list, or ask the user which one they meant, and call again.
ONE UNIT BY ITS NAME. unit_name computes the unit or fan of that name, found among all the pieces - units does the same for several. start_guid starts from one part - an air handling unit, a fan, a duct - and computes the network it belongs to, nothing else. The answer says so under 'portee' and lists the model's other units and fans under 'autres_departs': tell the user the result is partial.
From each starting part it keeps ONE CIRCUIT PER BRANCH: the longest path in metres of each branch. From an air handling unit, that is one circuit per network connected to it - supply, return, intake, exhaust.
EACH OF THESE CIRCUITS IS COMPUTED, and becomes a circuit of the model: it has a name, a COLOUR, and a tab on the website.
WHAT YOU GET portee what the call covers: the whole model, one role, or one part's network only. circuits one per branch: name, colour, length, and - once 'etat' is 'pret' - the pressure drop in Pa, its linear and local parts, the maximum velocity, the flow used at the start and where it came from. autres_arrivees shorter paths, found but NOT computed. lien_3d the page where every circuit shows in its colour. metre the take-off of the whole network.
IF A CIRCUIT IS STILL 'calcul', call again with THE SAME ARGUMENTS a moment later. Nothing is recomputed and nothing is billed again: an identical call only reads. A different velocity or flow is applied to the circuits already there, without a new analysis.
HOW TO USE IT WELL.
Ask the user for the design velocity before calling, or say which one you used. THIS TOOL DOES NOT READ THE FLOW FROM THE MODEL: look for it in the air handling unit's properties with read_ifc_overview and pass it as flow_m3h, one unit at a time - see that argument. Failing that, the flow comes from the design velocity: between two branches, the length-weighted average velocity of the straight ducts equals it, and no duct runs more than 20 % above it. Say which of the two it was with every figure - the pressure drop is a first estimate the user must correct, never a fan sizing.
Every circuit is computed as a SUPPLY circuit until someone says otherwise: the tool cannot tell supply from return. The flow rates do not depend on it - a duct carries what its section allows either way - but the tee coefficients and the design velocity do. If a branch is a return, an intake or an exhaust, SAY SO and tell the user how to set it in the 3D view: hovering the arrow of a circuit shows its type, and each click on that label moves to the next one - supply, return, outdoor air, exhaust. A click on the arrow itself reverses the air direction, which is how the user says at which end the terminal or the louvre sits when the duct has a constant section.
Say that each circuit was chosen BY LENGTH. A shorter path loaded with dampers, bends or silencers can lose more pressure.
END YOUR ANSWER WITH THE 3D LINK, on its own line, and urge the user to open it - see 'A_DONNER_A_L_UTILISATEUR'. Name the circuits by their colour. The page is where the calculation is finished: the user sets the flows (a click on the unit, or typed in the table), the velocity, the air direction and the circuit type, deletes a circuit from its tab - its colour goes with it -, adds one by clicking a start and an end part, and downloads the workbook, one editable sheet per circuit.
A FLOW THAT LOOKS WRONG IS AN ESTIMATE, NOT A DEFECT. When none was given, flows come from the design velocity. If you point one out, say in the same breath that the user sets it on the page or in the workbook - see 'debits_et_reglages'.
THE USER'S CHOICES STAND. A circuit they deleted is not computed again: it comes back under 'retires_par_l_utilisateur', and only they can restore it, by tracing it on the page. A circuit they traced by hand is never replaced. So after they have been on the page, call this again before stating any figure - never answer from memory.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | The model token, from ifc_upload_result or from the link the user pasted. | |
| units | No | Air handling units or fans to compute, by name - from 'centrales_et_ventilateurs' of the list answer, or from 'equipements' of apply_ifc_rules. Same matching as systems. Can be combined with systems. Not with start_guid. | |
| systems | No | Systems to compute, by name - from 'systemes' of the list answer, or from read_ifc_networks. Each brings in the WHOLE air handling unit or fan that serves it (supply, return, outdoor air, exhaust); a system no unit serves starts from a supposed start. Send the EXACT names when you can: the tool also accepts all the words of a name (« SYS07 REP »), a modeller's abbreviation (« extraction » for « EXT ») and close spellings - but only with the SAME numbers. Not with start_guid. | |
| flow_m3h | No | Flow rate leaving ONE starting part, m3/h - so give it with start_guid. Over the whole model it would give every unit the same flow, and the call refuses it when there are several: compute the model without it, then call once per unit whose flow you know - its circuits are reused, only their flows change. Every circuit leaving that part carries it on its first stretch, and the flows further on are scaled from it - it sets the real velocity. BEFORE GUESSING, LOOK FOR IT: run read_ifc_overview and read the properties of the air handling unit, the fan or the casing you are starting from - a field named Debit, Flow, Air Flow, Luftmenge or Portata, often under a flow property set. Pass what you find, say where it came from, and convert it to m3/h (a value in m3/s is 3600 times smaller). If the model carries nothing, ASK THE USER rather than inventing one. Omit it only when nobody knows: the flow is then derived from the design velocity: the average velocity of the straight ducts between two branches equals it, none exceeds it by 20 %. | |
| unit_name | No | Only when the user asks about ONE unit or fan: its name, or a part of it - « CTA 12 », « AHU-Supply-L2 ». The tool looks it up among EVERY piece your rules gave the role centrale_de_traitement_d_air or ventilateur, case and accents ignored, all words required. Several matches: all are computed. No match: it is matched like 'units' (close spellings, same numbers); still nothing: NOTHING is computed, and the list comes back with the closest names. Not with start_guid. | |
| start_guid | No | Leave EMPTY in general. Give a GlobalId only when the user asks about ONE unit or one network: an air handling unit, a fan, or any duct of it - from 'equipements' in the answer of apply_ifc_rules, from read_ifc_networks, or from read_ifc_overview (guid_exemple). Only that part's network is then computed, and the answer lists the units and fans left out. Not together with start_role. | |
| start_role | No | Rarely needed. Computes every piece your rules gave this role - centrale_de_traitement_d_air or ventilateur -, like all_networks restricted to one role, and only on a model of 50 air networks or fewer. Prefer systems and units. Not together with start_guid. | |
| all_networks | No | True computes the WHOLE model: every unit and fan, and a supposed start for each network none of them serves. Offered only when the list answer says 'tous_possible': 50 air networks or fewer. Use it when the user asked for the whole model or ticked 'Tous'. Beyond 50 the call returns the list again. | |
| excluded_guids | No | Parts to close, by GlobalId. Closing a part cuts the walk there: whatever was only reached through it leaves the survey. Use it when the network visibly runs too far - through a plenum shared with another installation, for instance. | |
| max_velocity_m_s | No | Design velocity, in m/s, 0.5 to 12. It sets the flow rate at the start of each circuit when flow_m3h is not given, and the flow after each branch: between two branches, the length-weighted average velocity of the straight ducts equals it, and no duct exceeds it by more than 20 %. Ventilation: 4 to 6 in main ducts, 2 to 3 near the terminals. ASK THE USER rather than guessing. Omit: the model default, 5 m/s. |