Skip to content

Commit e6ceeb3

Browse files
BIMvoiceclaude
andcommitted
ifc5d: quantify IfcGeographicElement via EQto_GeographicElementBaseQuantities IfcOpenShell#6508
IfcGeographicElement has no base-quantity set in IFC4/IFC4.3 and no ifc5d rule, so Perform Quantity Take-off reported it as not quantified. Add a Bonsai-custom EQto_GeographicElementBaseQuantities rule (both IfcOpenShell and Blender engines, IFC4 and IFC4X3) mirroring IfcSlab, computing Depth, GrossArea, NetArea, GrossVolume, NetVolume and Perimeter. Property set follows the maintainer wishlist from the thread (Depth, GrossArea, GrossVolume, NetArea, NetVolume, Perimeter); Length and Width are omitted as not standardisable for geographic elements. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 644b922 commit e6ceeb3

4 files changed

Lines changed: 40 additions & 0 deletions

File tree

src/ifc5d/ifc5d/IFC4QtoBaseQuantities.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,16 @@
326326
"Width": null
327327
}
328328
},
329+
"IfcGeographicElement": {
330+
"EQto_GeographicElementBaseQuantities": {
331+
"Depth": "net_get_z",
332+
"GrossArea": "gross_get_footprint_area",
333+
"GrossVolume": "gross_get_volume",
334+
"NetArea": "net_get_footprint_area",
335+
"NetVolume": "net_get_volume",
336+
"Perimeter": "net_get_footprint_perimeter"
337+
}
338+
},
329339
"IfcHeatExchanger": {
330340
"Qto_HeatExchangerBaseQuantities": {
331341
"GrossWeight": null

src/ifc5d/ifc5d/IFC4QtoBaseQuantitiesBlender.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,16 @@
326326
"Width": "get_width"
327327
}
328328
},
329+
"IfcGeographicElement": {
330+
"EQto_GeographicElementBaseQuantities": {
331+
"Depth": "get_height",
332+
"GrossArea": "get_gross_footprint_area",
333+
"GrossVolume": "get_gross_volume",
334+
"NetArea": "get_net_footprint_area",
335+
"NetVolume": "get_net_volume",
336+
"Perimeter": "get_gross_perimeter"
337+
}
338+
},
329339
"IfcHeatExchanger": {
330340
"Qto_HeatExchangerBaseQuantities": {
331341
"GrossWeight": null

src/ifc5d/ifc5d/IFC4X3QtoBaseQuantities.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,16 @@
371371
"Width": null
372372
}
373373
},
374+
"IfcGeographicElement + IfcGeographicElementType": {
375+
"EQto_GeographicElementBaseQuantities": {
376+
"Depth": "net_get_z",
377+
"GrossArea": "gross_get_footprint_area",
378+
"GrossVolume": "gross_get_volume",
379+
"NetArea": "net_get_footprint_area",
380+
"NetVolume": "net_get_volume",
381+
"Perimeter": "net_get_footprint_perimeter"
382+
}
383+
},
374384
"IfcGeotechnicalStratum": {
375385
"Qto_ArealStratumBaseQuantities": {
376386
"Area": null,

src/ifc5d/ifc5d/IFC4X3QtoBaseQuantitiesBlender.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,16 @@
371371
"Width": "get_width"
372372
}
373373
},
374+
"IfcGeographicElement + IfcGeographicElementType": {
375+
"EQto_GeographicElementBaseQuantities": {
376+
"Depth": "get_height",
377+
"GrossArea": "get_gross_footprint_area",
378+
"GrossVolume": "get_gross_volume",
379+
"NetArea": "get_net_footprint_area",
380+
"NetVolume": "get_net_volume",
381+
"Perimeter": "get_gross_perimeter"
382+
}
383+
},
374384
"IfcGeotechnicalStratum": {
375385
"Qto_ArealStratumBaseQuantities": {
376386
"Area": null,

0 commit comments

Comments
 (0)