Read a drawing and review the material list¶
Create an import¶
Open and click New. Give the import a
name (for example “Staircase steel structure”) and, if you want, a Customer, a
Project and a Responsible. The Reference is numbered
automatically (CAD/<year>/...). Add the drawings under Drawings (DWG, DXF); you can add
several files.
Under the drawings, Default material grade and Bolt property class give the grade of the lines that name none. They start from the settings and are overridden by the general notes of the drawing, for example “MATERIALE FOLOSITE: PROFILE LAMINATE - OL 37 (S235) … ȘURUBURI - GRUPA 8.8”, which gives S235JR and 8.8.
Click Parse drawings. The Extraction field then names the strategy that found the lines, the tab Parse log lists what was read, repaired or ignored, and the import is Parsed. You can parse again while the import is parsed or reviewed: the lines that were not added by hand are replaced, and the lines you added manually are kept.
If the drawings contain several parts lists, Parse drawings first asks which of them to import (see Choose the parts lists).
Note
Texts are read from model space and every paper space of the drawing, including the texts inside
blocks. For a DWG, dwgread converts the file first; text in other code pages (for example
Central European drawings) is decoded with the code page stored in the drawing.
Note
The output of the converter is read step by step. A large DWG file, with hundreds of megabytes of converted data, therefore no longer runs the server out of memory. It only takes longer to parse.
How the lines are found¶
The importer tries three strategies in order. The first one that finds lines wins; the label strategy runs only when the others found nothing. (If you choose no parts list in the dialog, the parts lists are skipped and the drawing is read through its labels.) The Source of every line shows which one produced it: Parts list table, Block attributes, Labels, Manual or AI suggestion.
Parts list table¶
The texts of the drawing are grouped into rows. A row is the header of a parts list when at least three of its cells are recognised by a table of synonyms in Romanian, Hungarian, English, German and Spanish, for example mark (Poz, Pos, Mark, Marca, Tétel, Jel), quantity (Buc, Db, Qty, Pcs, Stk, Cant), profile (Profil, Szelvény, Section, Perfil), material or grade, length, width, thickness, weight, description, area and notes.
The columns come from the vertical lines that cross the header, or else from the midpoints between the header texts.
The rows below and above the header are read (a parts list in a title block grows upwards) and the longer run is kept. The run ends at a gap that is too large, at another header, or where no text is left in the table.
A row of units (
mm,kg,buc) sets the column units, and units in the header such as[m]or(cm)convert lengths to millimetres. A length below 30 with decimals and no unit is read as metres, and the parse log says so.ACAD_TABLE objects are read the same way.
A weight written on the drawing is kept in Weight on drawing (kg). If it differs from the computed weight by more than 5 %, the line gets a conflict note.
Parts lists pasted from a spreadsheet¶
A parts list that was pasted into the drawing from Excel is not text but an embedded object (OLE).
The importer reads these objects too, in the legacy .xls format and in .xlsx, and handles them
like any other parts list.
A list that is placed twice in the drawing (in model space and in a layout) is read once.
Reinforcement (rebar) schedules are skipped. They are recognised by their steel grades (for example B500C or PC52), by the word armătură and by stirrups written as etr.
The parse log names each embedded spreadsheet with its title and its number of rows.
Headers and rows of a parts list¶
A header can have two rows, which are read together. “Nr. / buc.” is the quantity; “Greutate [kg] / ml | buc | total” gives the weight per metre, per piece and in total; “Dimensiuni (mm) / l | g | L” gives the width, the thickness and the length. Quantity headers such as “Nr. pieselor” and “Nr. piese” are recognised too.
A section can be written with words in front of it (“Pana Z 180x2”), or with its length glued on (“HEA 300 - 7020”, “Z200x2,5 - 9090”). Tie rods and round bars (“tirant de 24 mm”, “oțel de 20 mm”) are recognised as well.
Nuts and washers (piuliță, șaibă) are kept as separate lines. They are not turned into bolts.
Group-heading rows and subtotal or total rows inside a list are skipped.
Parts lists per assembly¶
Many drawings have one parts list for each assembly (for example “Extras de laminate pentru grinda G1”) and a summary table of the assemblies (“NECESAR ELEMENTE”) with the assembly, its count, its weight per piece and its total weight. The importer puts them together.
The quantities of the list of an assembly are multiplied by the count of that assembly in the summary table.
The assembly is found by the mark in the title of the list: G1 is 8 pieces. If the title names no mark (for example “valabil pentru un stâlp”), the total of the list is matched to the weight per piece in the summary table: a list of 1431 kg belongs to “Stâlpi S1, S2”, which is 20 pieces.
The Drawing text of each line shows where it comes from, as “[list title × count]”.
An assembly that is only in the summary table, because its parts list is not on this drawing (for example trusses, or purlins “see other list”), comes in as one line with the stated weight and count. The line is flagged To review and the note says “only in the summary table…”. Purlin assemblies are marked as purlins.
The parse log compares the total that a list states with the sum of its rows, and adds “– they differ, check the table” when the difference is more than 5 %. It does the same for the total of the summary tables and the total of the lines.
Block attributes¶
Blocks with attributes (POS, QTY, PROFILE, LENGTH, MATERIAL, WEIGHT, and
their Romanian, Hungarian and German names) become lines, grouped by mark, section and length. With
a quantity attribute the quantity is the largest value found (different values are a conflict,
because several references often carry the assembly quantity). Without it, the quantity is the
number of block references and the line is flagged to review. The setting Block attribute
tags adds your own tag names.
Labels¶
Many drawings have no parts list, only a label next to each member. The importer then reads every
short text, pairs a mark (R1, PM 2, GM1) with a section designation written in the same
text or just below or beside it, and groups the lines by mark and section.
One-line callouts with all the data are read as they are:
P12 - IPE 400 - 7360 - 1buc.: mark, section, length and pieces;P54 L 60x60x6 - 300 20buc.: an angle, 300 mm long, 20 pieces;P20 - 10x144 - 370 - 2buc.: a plate of 10 mm by 144 mm, 370 mm long, 2 pieces;P79 pana Z 200x1.5 l=6000: a word in front of the section, and the length afterl=; andPANE PA2 / Z200x2.5-8290.
A quantity can be written (72 buc), 2buc. or 200 bucăți.
Important
The number of labels is not the quantity. The same member is labelled in several views and
sometimes several times in one view. For a bare label (a mark and a section, without a length) the
label strategy therefore stores the count as Occurrences, sets the quantity to 1,
leaves the length empty and flags the line To review. Only an explicit text such as
4 buc, 2 db, n=2 or L=2500 fills the quantity or the length. Without a length, a
linear member has no weight until you enter it (or accept an AI suggestion).
There is one exception. A member tag with a length but no quantity, for example one P79 ...
l=6000 label for every purlin on a roof plan, gets the number of its labels as the quantity.
The labels are counted in the drawing space (model space or one layout) in which they appear most,
so a layout that repeats the model space is not counted twice. These lines stay To
review, and the parse log lists them (“quantity = number of labels (to check)”).
Other rules of the label strategy:
Words for existing members (existent, existing, meglévő, vorhanden, existente) make the line Excluded: it is shown but not counted.
Holes and annotations (Găuri, furat, holes, Bohrung, Secțiune, Plan, Detaliu) are ignored and counted in the parse log.
Bolt words (Bulon, Șurub, Csavar, Bolt, Schraube, Tornillo) make a bolt line.
A bare plate or round size without a mark is ignored as too ambiguous.
If the same mark appears with different sections (for example PM 3 as 200x250x10 and 200x350x10), every line of that mark gets a conflict note.
Assembly counts on the drawing¶
An assembly title with a count multiplies the piece callouts that are drawn on the same sheet: “Grinda G1 - 8 buc.”, “Stâlpi S1; S2 - 20 buc.” or “CADRU TRANSVERSAL (5 buc. : ax 3…7)”.
The sheet is found from its frame, the rectangle around the sheet. A sheet drawn without a frame uses the nearest assembly title that is also outside every frame.
A piece that is repeated on one sheet counts once. The same piece on several sheets is added up.
The parse log lists the assemblies that were used: “assemblies: Grinda G1 × 8, …”.
Section designations¶
Designations are normalised before they are looked up: upper case, no accents, × and * as
x, decimal comma as point, and a trailing grade (S235JR, OL 37) is split off. A count
prefix such as 2xL50x5 is kept as a count.
Family |
Accepted forms |
Becomes |
|---|---|---|
I and H sections |
|
|
Channels |
|
|
Angles |
|
|
Square and rectangular hollow sections |
|
|
Round hollow sections |
|
|
Flat and round bars |
|
|
Plates |
|
|
Z, C and Σ purlins |
|
|
Square and rectangular hollow sections (Romanian) |
|
|
Cold-formed U channels |
|
|
Halved I and H sections |
|
|
Bolts |
|
|
Bolt sets |
|
|
A bare AxBxC is decided by context: a plate mark prefix (see the settings) or a thickness written
first (10x300x300) means a plate; otherwise it is a hollow section when the thickness is at most
16 mm and the sides at most 500 mm, and the line is marked as ambiguous with a lower confidence.
A plate thinner than 3 mm is a sheet.
Choose the parts lists¶
When the drawings of an import contain several parts lists, Parse drawings does not import at once. It opens the window Choose the parts lists, with one row for each list:
Column |
What it shows |
|---|---|
Import |
Tick the lists to import. |
File |
The drawing file that holds the list. |
Table |
The title of the list. |
Kind |
Parts list or Summary of assemblies. |
Rows |
The number of rows. |
Total on the drawing (kg) |
The total that the list states. |
Assembly |
The assembly the list is for and how many of it the summary asks for, for example “Grinzi G1 × 8”. |
Against the drawing |
The result of the check against the labels, for example “matches the drawing”, “6 of 10 rows are not on the drawing” or “no labels to compare with”. |
- menu
- Manufacturing app --> CAD imports --> (an import) --> Parse drawings
- shows
- The window "Choose the parts lists" with several parts lists and one summary of assemblies, the Import toggles and the column "Against the drawing".
- highlight
- The Import toggles and the column "Against the drawing" (red frames).
- data
- A steel structure with four parts lists (G1, G2, S1 and one list that is not on the drawing, unticked) and the summary of assemblies.
- module
- mrp_cad_bom_import
- notes
- English UI, light theme, 1440px width, crop to the window.
Lists whose rows are mostly not labelled on the drawing start unticked. Click Import to parse with the lists you ticked.
If you tick none, the bill of materials is read from the drawing itself, through its labels.
If the drawings have exactly one parts list, it is used without asking. If they have none, the drawing is read through its labels.
Your choice is kept. Parsing again does not ask again, unless the drawings changed (a new drawing or a new parts list). Then the window opens again.
The field Parts lists found on the import gives the number of lists. When two or more were found, the button Choose parts lists reopens the window. The lists that were not used are named in the parse log (“tables not used (not selected)”).
Check a parts list against the drawing¶
The rows of the imported parts lists are compared with the labels of the drawing. A row gets a conflict note and is flagged To review when its section is labelled nowhere on the drawing (”… is not labelled on the drawing”), or when its mark is labelled with another section on the drawing (“on the drawing P5 is labelled HEA 200”). The parse log says how many rows do not match.
Review the lines¶
The tab Lines is an editable list. Change anything that is wrong, add lines with Add a line and drag the handle to reorder. When you change the Section, the dimensions, family and weight are worked out again.
The lines stay one per row of the drawing or of the parts list. The same piece in the lists of G1, G2 and G3 is three lines, each with its source in the Drawing text. The material summary, the bill of materials and the procurement list add them up (see below).
The colour of a line tells you what to look at:
Orange: To review, for example a quantity that is only a guess.
Red: a Conflict, with the reason in the conflict note (same mark with different sizes, weight on the drawing that differs from the computed weight, a grade that is not in the material master, different quantities in the attributes).
Grey: Excluded, an existing member that is not counted.
- menu
- Manufacturing app --> CAD imports --> (an import) --> Lines
- shows
- The Lines tab with orange, red and grey lines, and the columns Mark, Section, Material, Quantity, Length, Unit weight, Total length and Total weight.
- highlight
- One orange line, one red line and the Quantity and Length columns (red frames).
- data
- The staircase import: marks R1, GM1, PM 2 (orange), PM 3 (red, two sizes) and an excluded existing member.
- module
- mrp_cad_bom_import
- notes
- English UI, light theme, 1440px width.
Use the optional columns for the rest: Family, Height (mm), Width (mm), Thickness (mm), Diameter (mm), Occurrences, Source, Confidence, Weight on drawing (kg), Drawing text and Product action. Quantity on the drawing and Length on the drawing are set when the quantity, or the length of one piece, is written on the drawing (in a parts list, a block attribute or a label); an estimate never changes them. For bolts the grade column becomes the Property class. A grade written on the drawing that is not in the material master is kept as Grade on drawing; the line is flagged and weighed with the density of steel until you choose a material.
When every line is right, click Mark as reviewed. Open conflicts are written in the chatter.
Weights and the steel section catalogue¶
The weight of a line comes from the density of its material and from the mass per metre of the section.
The catalogue under holds the sections with their dimensions and mass per metre: IPE 80 to 600, HEA, HEB and HEM, UPN and UPE channels, and equal and unequal angles. The values follow EN 10365 and EN 10056-1 and are tabulated for steel of 7850 kg/m³. Manufacturing administrators can edit the catalogue.
The tabulated mass is scaled by density of the grade / 7850, so the same section in stainless steel (7900 kg/m³) or aluminium (2700 kg/m³) is weighed correctly. A line without a grade is weighed as steel at 7850 kg/m³.
Hollow sections are calculated from their dimensions with the corner radii of EN 10219-2 (SHS 100x100x4 is 11.73 kg/m); round hollow sections, flat bars and round bars from their geometry.
Plates weigh width x length x thickness x density per piece (300x300x10 is 7.065 kg), and their area is given in m².
Z, C and Σ purlins are calculated from the developed width of the section and its thickness. The generic geometry per height is stored in the catalogue and is editable; the server action Recompute purlin weight from geometry recalculates the mass after you change the flange or lip. Align the values with your supplier.
Bolts are counted in pieces and add no weight to the totals.
For each line the list shows the Unit weight (per metre or per piece), the Total length (m), the Total area (m²) and the Total weight (kg). If nothing can be calculated, the weight written on the drawing is used.
Material summary and the two options¶
The tab Material summary adds the lines up by kind of material, section and grade: pieces, total length, area and weight. Equal pieces from different lists are therefore one row. The bill of materials and the procurement list add the lines up by product. Click Refresh to rebuild it; it is also rebuilt whenever a line changes. The weights block above the tabs shows three totals:
Option 1: without purlins (kg): the total weight without the purlin lines;
Purlins (kg): the weight of the purlins; and
Option 2: with purlins (kg): the total weight including the purlins.
A line is a purlin when its family is Z, C or Σ; the Purlin box can be changed by hand. Excluded lines are in no total.
Use PDF or Print summary for the report Material summary (the summary, option 1, the purlins, option 2 and the lines to check), and XLSX for a spreadsheet with the summary and a sheet with the detailed lines.
Limits¶
A label that does not state a quantity or a length leaves them open. They are left for you to review, or for the AI bridge to suggest. A quantity that was counted from labels is only a guess and stays flagged.
A parts list needs a header with at least three recognised columns. Rotated tables and tables that are split over several areas of the drawing are not joined. Spreadsheets pasted into the drawing are read (
.xlsand.xlsx), but reinforcement schedules are skipped.LibreDWG does not decode every DWG object (for example proxy entities). The contents of an ACAD_TABLE in a DWG are read from the graphics of the table, not from its cells.
Purlin weights are generic until you align the catalogue with the supplier.