Appearance
IFC Parsing Setup (IFC PS)
Why this exists
The IFC standard is open and versatile, and every BIM application exports it in its own way. What one exporter calls REFERENCE another writes as a property set value, and a stud can be recognised by its name in one file and by its profile in the next. An IFC Parsing Setup is how you tell produuz.it to read your files.
A company can have several setups, and each project uses one. Open them in Company settings → IFC Parsing Setups.
Every setting has an (i) button that opens the help panel on the right, with the same explanation you find here plus a typical example. The panel follows whatever you pressed last, so you can leave it open while you work.
How a setup is organised
The editor has seven tabs, in this order:
| Tab | What you set there |
|---|---|
| Hierarchy and project | How the file is split into modules and panels, where the names, phases and batches come from, and which assemblies are produced at all |
| Custom part branches | Your own kinds of part beyond the built-in ones |
| Panel part categories | Which elements are rails, studs, plates, bricks, openings and areas |
| Steel cage part categories | The same, for the steel cage flow |
| Part properties | Where each value of a part is read from |
| Custom part classes | Kinds of part you tell apart inside a category, and what they do to the panel measurements |
| Operations and machines | Which elements are nail lines, cuts and drills, and what the machine files read |
The filter box at the top left of each tab searches the settings by name, and also by the values inside their rules, so typing STIJL lands on every rule that uses it.
The two kinds of entry
Almost everything in a setup is one of two things.
Rules
Used by categories, by the assembly filter and by the machine flags. Each rule has three fields:
- IFC Prop — the property to look into.
- Type of match — Match full word, Match prefix or Contains word.
- Value — what to look for.
A part matches the setting when any one of its rules matches.
Example
Two rules on the Top Rail Wood category:
| IFC Prop | Type of match | Value |
|---|---|---|
| REFERENCE | Match full word | TOPRAIL |
| REFERENCE | Match prefix | TR |
Parts with a REFERENCE of TOPRAIL, TR, TR12 or TR45 are top rails. TOPRAIL2, TOP_RAIL and 12TR are not.
Property names
Used by the properties. Here you only list the IFC property names that may hold the value, in order of preference. The first one present on the element wins.
Example
Two names on the Zone (layer) property, WorkPlane and Layer:
| Part | WorkPlane | Layer | Detected zone |
|---|---|---|---|
| P1 | 1 | 2 | 1 |
| P2 | (absent) | 3 | 3 |
| P3 | 1 | (absent) | 1 |
Case does not matter
Property names and values are matched case-insensitively. Reference, REFERENCE and reference are the same thing.
Reading from a specific property set
By default produuz.it looks for a property anywhere in the element: in any of its property sets, and among the element's own attributes. That is what you want almost always.
It becomes a problem when the same property name exists in two property sets with different values — the exporter's REFERENCE and your own REFERENCE, say. Then it is luck which one is read.
Every rule and every property name has a Read from a specific property set checkbox for that case:
| Checkbox | Field | What is read |
|---|---|---|
| unticked | — | The property wherever it appears. The normal case. |
| ticked | Tekla_Common | That property set only. Another set carrying a property of the same name is ignored. |
| ticked | (left empty) | The element's own attributes only: name, ifc_tag, ifc_id, object_type, description. |
Tick it when you have a reason to. An unticked entry behaves exactly as it always has, and setups saved before this existed are untouched.
Hierarchy and project
How the file is split, what the pieces are called, and which of them you actually produce.
Levels detection
Says how elements are grouped into modules, assemblies and subassemblies: either by an IFC class (usually IfcElementAssembly) or by the value of a property, for exporters that write no containers at all.
Unit and project properties
Levels detection above says how a module and an assembly are recognised. These say what is read from each one once it has been: what it is called, which phase and batch it belongs to, and any extra values of yours that should travel with it.
They are read off the container — the module or the assembly — and not off its parts. Everything read off a part is in the Part properties tab.
Leave one empty and produuz.it falls back to its own default, which for a name is the container element's own name.
Module name
The properties holding the module design name, for example Modulenummer. Instances of the same design share this value.
Module unit ID
The properties holding the unique id of each module instance. Without it, modules sharing a name are merged into one and you get a warning.
Assembly name
The properties holding the panel name. Left empty, the container's own name is used.
Phase Name
The property holding the phase a panel belongs to. Phases and batches are created from these values when the file is split.
Batch Name
The property holding the batch a panel belongs to.
Auto Parsed Client Meta
Properties copied onto the design as client data when the file is analysed. Useful for anything of yours that has no field of its own.
Assembly filter
A project file usually holds more than you produce: foundations, in-situ concrete, the building next door. Two lists decide what the splitter takes out of it.
Split only these assemblies
Leave it empty and every assembly is split. With rules in it, only the assemblies matching one of them are split out.
Never split these assemblies
Assemblies matching one of these are never split out, even when the first list keeps them. The drop list always wins, which is how you keep a whole prefix and still leave a few names out of it.
An assembly that is not split leaves nothing behind: no IFC file, no design, and nothing in the phase and batch counts.
Example
Split only these assemblies: ASSEMBLY_PREFIX starts with WA
Never split these assemblies: name contains _TEST
You get every wall except the ones whose name carries _TEST. Roofs, floors and everything else in the file are left alone.
Custom part branches
Branches are kinds of part beyond the built-in timber and plate: windows, connectors, airtightness, electrical, plumbing.
Each branch has a name, its own rules, the geometry it resembles — wood-like, plate-like or generic, so drawings, counts and cutting lists know how to treat it — and two switches.
Logistics enabled
The parts of this branch reach the parts list and go through logistics.
Counts in the panel measurements
The parts of this branch take part in the panel width, height, thickness and surface.
This exists because a branch is recognised before a part falls back to timber, plate or steel from its category. A part your setup recognises perfectly well as a window frame or a cladding profile can therefore have no category at all, and a part with no category is outside every measurement — which is why a panel can read thinner or smaller than it is, with no warning.
Leave it off for brackets, connectors and anything that sticks out past the frame: counting those makes the panel read wider and taller than it is. Turn it on for cladding, window frames and layers that are really part of the panel.
The measurements are not only a report figure
The rack loads are drawn from them. The width decides how many panels fit in a rack row and the thickness how deep the stack builds, so a panel measured short is a rack plan that does not fit on the floor. See: Delivery & Racks
It only decides whether the part takes part at all
Which measurements it is then left out of is a custom part class job. A window frame that should set the thickness but add no surface gets the switch here and a class with Ignore in surface. The branch says whether the part participates; the class says what it is out of. See: Custom part classes
Both switches are off by default
Turning this on changes the measurements of every panel holding parts of that branch, from its next analysis. Nothing moves until you tick it.
Panel part categories
The elements that make up a prefabricated panel. Every rule here matches the raw IFC properties of the element — its Name, Reference, Material and the rest, exactly as the modeller exported them.
Frame
Top Rail Wood
The horizontal wood at the top of the frame. The studs are nailed into it from above and the panel height is measured from its outer face.
Bottom Rail Wood
The horizontal wood at the bottom of the frame. The panel's zero height is its outer face.
Extra Top Wood
Woods over the top rail, usually fitted after the studs are nailed.
Extra Bottom Wood
Woods below the bottom rail, usually fitted after the studs are nailed.
Wood profile
Any wood of the frame that is not a rail, a batten or an extra piece: the studs, noggins and diagonals. This is the category the framing nail matrix applies to.
Extra Frame Wood profile
Additional frame woods that are not part of the standard framing.
Wood Batten
Battens fixed on the panel.
Plates
Plate
A sheet fixed on a face of the frame: OSB, plasterboard, fibreboard. Its layer decides the zone it is machined in.
Core Plate
A plate inside the frame rather than on a face, such as a shear panel.
Other parts
Bricks / Stones
Single bricks or stones.
Opening
Placeholders for doors and windows. They are not produced; they tell the machines where the frame has a hole and give the reports their opening list.
Areas and flags
Elements that are not produced but change how a panel is handled.
Lockout Area
Areas the machine must not work on.
Isolated Area
Areas that carry insulation.
Not Isolated Area
Areas that must be left without insulation.
Hidden Material
Parts kept in the data but hidden in the 3D viewer: insulation, foils and fillers that would cover the frame.
Ignored Part
Elements produuz.it must not read as parts at all. They stay visible in the viewer but never reach the parts list, the reports or the machine files. Use it for helper geometry, annotations and anything exported by accident.
Ignore Part
The same outcome, declared as a property instead of a category: parts whose value in this property reads as true are fully ignored.
Skip Framing Wood
Parts that would fall into the frame by geometry but must not be counted as framing wood.
Steel cage part categories
A secondary flow. Leave it empty if you do not produce steel cages.
Top Steel Profile
Bottom Steel Profile
Steel Profile
Steel Plate
Welding Seam
Compute holes
Whether the holes of the profile are computed for the machine file.
Assembly ID Level1
Assembly ID Level2
The two levels of assembly id of a steel cage.
Part properties
Where produuz.it reads each value of a part from. Each entry is a list of IFC property names, tried in order.
Identity
Part Name
The name produuz.it uses for the part, shown in the parts list, the reports and the machine file templates.
Leave it empty and the part keeps the name the IFC element itself carries. Fill it in when the useful name lives in a property set instead, for example ELEMENT_NAME or Beschrijving.
- The IFC name is always kept. It stays visible in the part drawer, in the Unknown parts dialog of the viewer, and as its own optional column in the parts list.
- It does not change how parts are classified. The category and branch rules always match against the raw IFC properties. To match on the property you mapped here, add a rule on that property's own key.
Reference
An id expected to be the same across parts of the same shape. Usually reference in Tekla Structures, and available in other exporters too.
Material Name
The material of the part.
Profile Name
The name of the shaped section, for profiles that are not rectangular.
Profile Joined
Whether the profile is extended or joined to another one.
Zone (layer)
The panel layer a part belongs to. 0 is the frame, and the layers on each face are numbered outwards from it: 1, 2 on one side and -1, -2 on the other.
Most IFC files write that layer with a letter instead of a sign, usually F for the front face and B for the back one. produuz.it reads the letter: a value holding a B becomes a negative zone, and anything else stays positive.
| IFC value | Detected zone |
|---|---|
F1 | 1 |
F2 | 2 |
B1 | -1 |
B2 | -2 |
Back2 | -2 |
1 | 1 |
-1 | -1 |
Letters and other characters are stripped, so only the B changes the result. A value that already carries a minus sign is used as it is.
WARNING
The B rule applies to every numeric property, not only the zone. Keep a B out of the values you map to Nail/Screw CTC, Mill/Saw depth, Isolation order number and Tool ID, because it would turn them negative.
Positive side zones
Negative side zones
BTLx only. BTLx layer numbers come as plain numbers with no sign, so these two rule lists declare which layers belong to each face of the panel.
Details
Finish
The finish of the part.
Comment
A free comment shown with the part.
Weight (kg)
The weight of the part in kg. Some exporters write it in the element property sets (Weight, GEWICHT), others export only the volume.
Volume (m3)
The volume of the part in m³. Exported by nearly every application, and what a weight can be derived from when the exporter writes none.
Isolation order number
The order in which insulation areas are filled.
Custom part classes
A category says what a part is: a stud, a rail, a plate. A class says how your factory treats it. They are two different questions, and a part answers both at once.
Classes are entirely your own. Nothing is built in and nothing is detected automatically: a part is an I-beam only because a rule you wrote says so.
Give each class a name and add the rules that recognise it, with the same kind of rule as the categories. A part gets the first class in the list whose rules match, so put the more specific classes first. A part that matches no class simply has none, and that is normal.
A class does two things.
Its name is what other settings look up when they behave differently per kind of part — the framing nail matrix of the machine setups first of all. See: Mobi One
Its behaviours say what the class does to the panel measurements. That is the Behaviours button on each class.
Behaviours
Every panel carries four measurements: its width, its height, its thickness and its surface. By default every part counts in all four. A behaviour takes the parts of one class out of one of them.
| Behaviour | What it leaves the part out of |
|---|---|
| Ignore in surface | The net area, the gross area and the opening areas of the panel |
| Ignore in width (X) | The width of the panel |
| Ignore in height (Y) | The height of the panel |
| Ignore in thickness (Z) | The thickness of the panel |
They are all off by default, and off means the part counts — which is what every part did before behaviours existed. Turning none on changes nothing.
The measurements are not only a report figure
The rack loads are drawn from them. The width decides how many panels fit in a rack row and the thickness how deep the stack builds, so a panel measured short is a rack plan that does not fit on the floor. See: Delivery & Racks
The four are separate because the measurements are separate, and that is what makes the useful cases possible.
Placeholder layers
The case behaviours were built for. Some modellers add a layer to a panel that is not produced but occupies the space a real one will take — an insulation layer, a finish, a service cavity.
That layer has to count for the thickness, because the panel really is that thick. It must not count for the surface, because nothing was produced.
Give it a class, turn on Ignore in surface, Ignore in width and Ignore in height, and leave Ignore in thickness off. The panel keeps its real thickness and its surface stops counting a layer nobody built.
A part that sticks out
A bracket or an anchor that reaches past the edge of the panel makes it read wider than it is. Give it a class and turn on Ignore in width, and only that one. It still counts everywhere else.
The class row shows what it ignores without opening anything, so a setup is readable at a glance.
When the numbers change
Panel measurements are worked out during the analysis of a design, not when you look at them. Saving the setup relaunches the analysis of the projects that use it, and the new numbers appear when it finishes.
If your company has Launch analysis automatically turned off in the company settings, nothing is relaunched and the old numbers stay until you launch the analysis yourself.
Operations and machines
Nail lines, saw cuts, drills and glue are modelled as elements too. These rules tell them apart from parts, and the properties below feed the machine files directly.
They are never measured
An operation says what a machine does, not what the panel is made of, so nothing here counts towards the width, height, thickness or surface of a panel. A saw mark that hangs below the bottom rail does not make the panel taller.
Operation lines
Frame Nail Lines
A group of frame nails represented as a line. The line goes through the heads of the nails.
Frame Nail Singles
A single frame nail represented as a line. The line goes through the body of the nail.
Plate Nail Lines
The same as frame nail lines, for nails into the plates.
Plate Screw
Lines representing screws, read like the nail lines.
Glue lines
Glue lines, used for bricks.
Glue areas
Areas to be covered with glue.
Cutting and milling
Frame Saw
Saw cuts on the frame.
Frame Drill
Drills on the frame.
Milling
Milling lines.
Sawing
Sawing lines on the plates.
Drilling
Drilling operations.
Machine parameters
Nail/Screw CTC
The centre-to-centre distance in nail and screw lines.
Mill/Saw depth
The depth of a milling or sawing line.
Tool ID for mob2 nailing
The tool the MOB2 machine must use for the nailing.
Frame Saw Size
The side of the frame the saw works on.
Brick Type
The type of the brick.
Machine flags
Each of these has an IFC property and, beside it, a BTLx rule list that does the same job for BTLx files.
Bricks: Machine Flag
Bricks: Machine Flag (BTLx)
A brick that is machine built rather than laid by hand.
Isolation: Machine Flag
Isolation: Machine Flag (BTLx)
Insulation applied by the machine.
Battens: Machine Flag
Battens: Machine Flag (BTLx)
Battens fitted by the machine.
Milling: V-Mill
Milling: V-Mill (BTLx)
A milling line that must be done as a V-mill.
Ignore Part (BTLx)
BTLx parts whose attributes match are fully ignored.
Skip Framing Wood (BTLx)
BTLx parts whose attributes match are not taken as framing wood.
BTLx files
BTLx files are read with the same setup, with two differences:
- No property sets. BTLx parts carry plain attributes, so the Read from a specific property set checkbox is not offered on the BTLx rules, and a rule that names a property set never matches a BTLx part.
- Zones need declaring. BTLx layer numbers have no sign, so the face of the panel comes from the Positive side zones and Negative side zones rules instead of from a letter.
The settings that are BTLx-only are marked with a BTLx chip in the editor.
Saving
The setup is validated before it is saved. If something is missing — a rule with an empty value, typically — you get a message and the editor opens the tab holding the offending field and scrolls to it.
Saving relaunches the analysis
Saving a setup used by projects relaunches their analysis, so the parts are re-read with the new rules. The editor warns you before it does.