From 87283874a16563c948110ddf61d7d5380869f150 Mon Sep 17 00:00:00 2001 From: Massimo Fabbro Date: Sat, 22 Nov 2025 08:34:26 +0100 Subject: [PATCH] Add simple examples for ifc5d import from csv --- src/ifc5d/Ex1 - BoQ without query.csv | 10 ++++++++++ src/ifc5d/Ex2 - SoR.csv | 7 +++++++ src/ifc5d/Ex3 - BoQ with query.csv | 10 ++++++++++ src/ifc5d/Ex4 - BoQ with description.csv | 10 ++++++++++ src/ifc5d/Ex5 - SoR_with_description.csv | 7 +++++++ src/ifc5d/Ex6 - BoQ with categories.csv | 10 ++++++++++ src/ifc5d/Ex7 - BoQ with Rates.csv | 10 ++++++++++ src/ifc5d/README.md | 9 ++++++++- 8 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 src/ifc5d/Ex1 - BoQ without query.csv create mode 100644 src/ifc5d/Ex2 - SoR.csv create mode 100644 src/ifc5d/Ex3 - BoQ with query.csv create mode 100644 src/ifc5d/Ex4 - BoQ with description.csv create mode 100644 src/ifc5d/Ex5 - SoR_with_description.csv create mode 100644 src/ifc5d/Ex6 - BoQ with categories.csv create mode 100644 src/ifc5d/Ex7 - BoQ with Rates.csv diff --git a/src/ifc5d/Ex1 - BoQ without query.csv b/src/ifc5d/Ex1 - BoQ without query.csv new file mode 100644 index 0000000000..85dc89019e --- /dev/null +++ b/src/ifc5d/Ex1 - BoQ without query.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Value,Quantity +1,E.01,Walls,m3,, +2,E.01.01,Ground floor walls,m3,100,42 +2,E.01.02,First floor walls,m3,200,35 +1,A.02,Paintings,m2,, +2,A.03,Paintings with water,m2,, +3,B.05,White paintings,m2,25,45 +3,B.06,Colored paintings,m2,32,33 +2,C-01,Paintings with machine,m2,17,133 +2,C-02,Decorated paintings,m2,40,8 diff --git a/src/ifc5d/Ex2 - SoR.csv b/src/ifc5d/Ex2 - SoR.csv new file mode 100644 index 0000000000..07615e4f7d --- /dev/null +++ b/src/ifc5d/Ex2 - SoR.csv @@ -0,0 +1,7 @@ +Index,Identification,Name,Unit,Value,Quantity +1,A,Group A,,, +2,A.02,Paintings,m2,20,1 +2,A.03,Paintings with water,m2,23,1 +1,C,Group C,,, +2,C-01,Paintings with machine,m2,32,1 +2,C-02,Decorated paintings,m2,40,2 diff --git a/src/ifc5d/Ex3 - BoQ with query.csv b/src/ifc5d/Ex3 - BoQ with query.csv new file mode 100644 index 0000000000..d96d1adcd8 --- /dev/null +++ b/src/ifc5d/Ex3 - BoQ with query.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Value,Quantity,Query,Property +1,E.01,Walls,m3,,,, +2,E.01.01,Ground floor walls,m3,100,,"IfcWall, location=""Ground Floor""",GrossVolume +2,E.01.02,First floor walls,m3,200,,"IfcWall, location=""First Floor""",GrossVolume +1,A.02,Paintings,m2,,,, +2,A.03,Paintings with water,m2,,,, +3,B.05,White paintings,m2,25,45,, +3,B.06,Colored paintings,m2,32,33,, +2,C-01,Paintings with machine,m2,17,133,, +2,C-02,Decorated paintings,m2,40,8,, diff --git a/src/ifc5d/Ex4 - BoQ with description.csv b/src/ifc5d/Ex4 - BoQ with description.csv new file mode 100644 index 0000000000..ce3d5350cc --- /dev/null +++ b/src/ifc5d/Ex4 - BoQ with description.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Value,Quantity,Description +1,E.01,Walls,m3,,, +2,E.01.01,Ground floor walls,m3,100,42,"Semi-solid blocks of plain-faced common brick, with an apparent density (excluding holes) of 800 kg/m³; minor drilling 45%; apparent thermal conductivity 0.21 W/mK; characteristic mechanical strength parallel to the holes greater than or equal to 10 N/mm2, perpendicular to the holes greater than or equal to 2N/mm2" +2,E.01.02,First floor walls,m3,200,35,"Semi-solid blocks of plain-faced common brick, with an apparent density (excluding holes) of 800 kg/m³; minor drilling 45%; apparent thermal conductivity 0.21 W/mK; characteristic mechanical strength parallel to the holes greater than or equal to 10 N/mm2, perpendicular to the holes greater than or equal to 2N/mm2" +1,A.02,Painting,m2,,,"Painting with washable water-based wall paint for indoor/outdoor. The price includes and compensates the costs for the supply of paint, any scaffolding up to a maximum height of 4 m from the support surface, the costs for the protection of furniture, fixed systems or the protection of floors, the cleaning of the surfaces to be treated through the use of rags or net purposes in order to remove residues that can be easily removed. The cost of occasional and partial grouting of surfaces, in order to eliminate any small scratches, including sanding of the grouted parts, is also to be considered included and compensated. For 2 coats with brush or roller." +2,A.03,Washable painting,m2,,,"Supply and installation of washable tempera paint for interiors and exteriors. The price includes and compensates for the costs of supplying the paint, any scaffolding up to a maximum height of 4 meters from the support surface, the costs of protecting furnishings, fixed installations, or floors, and cleaning the surfaces to be treated using rags or clean brushes to remove easily removable residues. On previously prepared plaster. Apply two coats with a brush or roller. (Tempera colors from the color chart)." +3,B.05,White paintings,m2,25,45, +3,B.06,Colored paintings,m2,32,33, +2,C-01,External painting,m2,17,133,"Painting with plastic coating. The price includes and compensates for the costs of supplying the paint, any scaffolding up to a maximum height of 4 meters from the support surface, the costs of protecting furnishings, fixed systems, or floors, and cleaning the surfaces to be treated using rags or clean brushes to remove easily removable residues. On already prepared plaster. For 2 coats (interior textured finish)." +2,C-02,Decorated paintings,m2,40,8, diff --git a/src/ifc5d/Ex5 - SoR_with_description.csv b/src/ifc5d/Ex5 - SoR_with_description.csv new file mode 100644 index 0000000000..0517abcbde --- /dev/null +++ b/src/ifc5d/Ex5 - SoR_with_description.csv @@ -0,0 +1,7 @@ +Index,Identification,Name,Unit,Value,Quantity,Description +1,A,Group A,,,, +2,A.02,Paintings,m2,20,1,Paint made by the best painter in the world +2,A.03,Paintings with water,m2,23,1, +1,C,Group C,,,, +2,C-01,Paintings with machine,m2,32,1,Best painting in the world painted with the best painted machine accordingly with ISO9001 +2,C-02,Decorated paintings,m2,40,2, diff --git a/src/ifc5d/Ex6 - BoQ with categories.csv b/src/ifc5d/Ex6 - BoQ with categories.csv new file mode 100644 index 0000000000..b87f708333 --- /dev/null +++ b/src/ifc5d/Ex6 - BoQ with categories.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Material,Labor,Quantity +1,E.01,Walls,m3,,, +2,E.01.01,Ground floor walls,m3,55,45,42 +2,E.01.02,First floor walls,m3,120,80,35 +1,A.02,Painting,m2,,, +2,A.03,Washable painting,m2,,, +3,B.05,White paintings,m2,,,45 +3,B.06,Colored paintings,m2,,,33 +2,C-01,External painting,m2,,,133 +2,C-02,Decorated paintings,m2,,,8 diff --git a/src/ifc5d/Ex7 - BoQ with Rates.csv b/src/ifc5d/Ex7 - BoQ with Rates.csv new file mode 100644 index 0000000000..c7875efd38 --- /dev/null +++ b/src/ifc5d/Ex7 - BoQ with Rates.csv @@ -0,0 +1,10 @@ +Index,Identification,Name,Unit,Value,Quantity,RateSchedule,RateID +1,E.01,Walls,m3,,,, +2,E.01.01,Ground floor walls,m3,100,42,, +2,E.01.02,First floor walls,m3,200,35,, +1,A.02,Paintings,m2,,,, +2,A.03,Paintings with water,m2,,,, +3,B.05,White paintings,m2,,45,Ex2 - SoR,A.03 +3,B.06,Colored paintings,m2,32,33,, +2,C-01,Paintings with machine,m2,17,133,, +2,C-02,Decorated paintings,m2,40,8,, diff --git a/src/ifc5d/README.md b/src/ifc5d/README.md index 63e133463e..ba37664a88 100644 --- a/src/ifc5d/README.md +++ b/src/ifc5d/README.md @@ -32,6 +32,13 @@ csv2ifc.execute() ``` See example files as a CSV file format reference: +- Ex1 - BoQ without query.csv (a simple Bill of Quantities) +- Ex2 - SoR.csv (a simple Schedule of Rates) +- Ex3 - BoQ with query.csv (a simple BoQ with the query function) +- Ex4 - BoQ with description.csv (a simple BoQ with description column) +- Ex5 - SoR_with_description.csv (a simple SoR with description column) +- Ex6 - BoQ with categories.csv (a simple BoQ with categories columns) +- Ex7 - BoQ with Rates.csv (a simple BoQ that connect to an existing SoR. It needs an already loaded SoR.) - `sample_cost_schedule_house_FR.csv` / `.ods` - `schedule.csv`, `rates.csv` (schedule of rates example) @@ -124,4 +131,4 @@ path = "directory/cost_schedule" writer = Ifc5DOdsWriter(file=file, output=path) writer.write() -``` \ No newline at end of file +```