mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 17:58:20 +00:00
ifc5d - add ifc4x3 base quantities #6325
This commit is contained in:
@@ -17,6 +17,7 @@
|
|||||||
# along with Bonsai. If not, see <http://www.gnu.org/licenses/>.
|
# along with Bonsai. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
|
import bonsai.tool as tool
|
||||||
import ifc5d.qto
|
import ifc5d.qto
|
||||||
from bonsai.bim.prop import StrProperty, Attribute
|
from bonsai.bim.prop import StrProperty, Attribute
|
||||||
from bpy.types import PropertyGroup
|
from bpy.types import PropertyGroup
|
||||||
@@ -33,8 +34,12 @@ from bpy.props import (
|
|||||||
|
|
||||||
|
|
||||||
def get_qto_rule(self, context):
|
def get_qto_rule(self, context):
|
||||||
|
ifc_file = tool.Ifc.get()
|
||||||
|
is_ifc4x3 = ifc_file.schema == "IFC4X3"
|
||||||
results = []
|
results = []
|
||||||
for rule_id, rule in ifc5d.qto.rules.items():
|
for rule_id, rule in ifc5d.qto.rules.items():
|
||||||
|
if rule_id.startswith("IFC4X3") != is_ifc4x3:
|
||||||
|
continue
|
||||||
results.append((rule_id, rule["name"], rule["description"]))
|
results.append((rule_id, rule["name"], rule["description"]))
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,12 @@
|
|||||||
|
"""Update ifc5d json files with qtos from the provided pset templates path."""
|
||||||
|
|
||||||
import json
|
import json
|
||||||
import ifcopenshell.util.pset
|
import ifcopenshell.util.pset
|
||||||
import ifcopenshell.util.type
|
import ifcopenshell.util.type
|
||||||
|
import ifc5d
|
||||||
|
from collections import defaultdict
|
||||||
|
from pathlib import Path
|
||||||
|
from typing import Union
|
||||||
|
|
||||||
|
|
||||||
def order_dict(dictionary):
|
def order_dict(dictionary):
|
||||||
@@ -8,20 +14,110 @@ def order_dict(dictionary):
|
|||||||
return {k: order_dict(v) if isinstance(v, dict) else v for k, v in sorted(dictionary.items())}
|
return {k: order_dict(v) if isinstance(v, dict) else v for k, v in sorted(dictionary.items())}
|
||||||
|
|
||||||
|
|
||||||
results = {}
|
PSET_TEMPLATES_FOLDER = Path(ifcopenshell.util.__file__).parent / "schema"
|
||||||
|
JSON_FOLDER = Path(ifc5d.__file__).parent
|
||||||
|
QueriesData = dict[str, dict[str, dict[str, Union[str, None]]]]
|
||||||
|
|
||||||
psetqto = ifcopenshell.util.pset.get_template("IFC4")
|
|
||||||
for template in psetqto.templates:
|
def main() -> None:
|
||||||
for pset_template in template.by_type("IfcPropertySetTemplate"):
|
# Update IFC4X3 json files from pset templates.
|
||||||
if not pset_template.Name.startswith("Qto_"):
|
update_json_with_qtos_from_template_file(
|
||||||
|
JSON_FOLDER / "IFC4X3QtoBaseQuantities.json", PSET_TEMPLATES_FOLDER / "Pset_IFC4X3.ifc"
|
||||||
|
)
|
||||||
|
update_json_with_qtos_from_template_file(
|
||||||
|
JSON_FOLDER / "IFC4X3QtoBaseQuantitiesBlender.json", PSET_TEMPLATES_FOLDER / "Pset_IFC4X3.ifc"
|
||||||
|
)
|
||||||
|
# Reuse methods defined in IFC4 in IFC4X3 calculators.
|
||||||
|
reuse_methods_from_other_json_file(
|
||||||
|
JSON_FOLDER / "IFC4QtoBaseQuantities.json", JSON_FOLDER / "IFC4X3QtoBaseQuantities.json"
|
||||||
|
)
|
||||||
|
reuse_methods_from_other_json_file(
|
||||||
|
JSON_FOLDER / "IFC4QtoBaseQuantitiesBlender.json", JSON_FOLDER / "IFC4X3QtoBaseQuantitiesBlender.json"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def update_json_with_qtos_from_template_file(json_filepath: Path, ifc_filepath: Path) -> None:
|
||||||
|
"""Add missing qtos and properties to the json file from the provided pset template file."""
|
||||||
|
qto_templates: dict[str, list[ifcopenshell.entity_instance]] = defaultdict(list)
|
||||||
|
qto_props: dict[str, set[str]] = defaultdict(set)
|
||||||
|
ifc_file: ifcopenshell.file
|
||||||
|
ifc_file = ifcopenshell.open(ifc_filepath)
|
||||||
|
for template in ifc_file.by_type("IfcPropertySetTemplate"):
|
||||||
|
template_name = template.Name
|
||||||
|
if not template_name.startswith("Qto_"):
|
||||||
continue
|
continue
|
||||||
query = pset_template.ApplicableEntity
|
qto_templates[template_name].append(template)
|
||||||
results.setdefault(query, {})
|
for prop in template.HasPropertyTemplates:
|
||||||
results[query].setdefault(pset_template.Name, {})
|
qto_props[template_name].add(prop.Name)
|
||||||
for quantity in pset_template.HasPropertyTemplates:
|
|
||||||
results[query][pset_template.Name][quantity.Name] = None
|
|
||||||
|
|
||||||
results = order_dict(results)
|
qto_base_quantities_data = json.loads(json_filepath.read_text())
|
||||||
print(results)
|
|
||||||
with open("results.json", "w") as f:
|
calculator_queries_data: QueriesData
|
||||||
json.dump(results, f, indent=4)
|
added_qtos: set[str] = set()
|
||||||
|
|
||||||
|
for calculator, calculator_queries_data in qto_base_quantities_data["calculators"].items():
|
||||||
|
# Gather all supported QTOs.
|
||||||
|
calculator_supported_qtos: set[str] = set()
|
||||||
|
for selector_query, query_qtos_data in calculator_queries_data.items():
|
||||||
|
for qto_name in query_qtos_data:
|
||||||
|
calculator_supported_qtos.add(qto_name)
|
||||||
|
|
||||||
|
# Check for missing QTOs.
|
||||||
|
for template_name in qto_templates:
|
||||||
|
template = qto_templates[template_name][0]
|
||||||
|
|
||||||
|
applicable_entity_value: str
|
||||||
|
applicable_entity_value = template.ApplicableEntity
|
||||||
|
applicable_entities = ifcopenshell.util.pset.parse_applicable_entity(applicable_entity_value)
|
||||||
|
|
||||||
|
selector_query = ifcopenshell.util.pset.convert_applicable_entities_to_query(applicable_entities)
|
||||||
|
# Add missing selector queries and qtos.
|
||||||
|
query_qtos_data = calculator_queries_data.setdefault(selector_query, {})
|
||||||
|
qto_props_data = query_qtos_data.setdefault(template_name, {})
|
||||||
|
|
||||||
|
# Add missing properties.
|
||||||
|
for prop_name in qto_props[template_name]:
|
||||||
|
if prop_name in qto_props_data:
|
||||||
|
continue
|
||||||
|
qto_props_data[prop_name] = None
|
||||||
|
added_qtos.add(template_name)
|
||||||
|
|
||||||
|
if not added_qtos:
|
||||||
|
print(f"No Qtos updates for calculator '{calculator}'.")
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Sort dict alphabetically to keep it looking nice.
|
||||||
|
# Don't sort the entire json to keep the header structure.
|
||||||
|
qto_base_quantities_data["calculators"][calculator] = order_dict(calculator_queries_data)
|
||||||
|
print(f"Added Qtos for {calculator}: {added_qtos}")
|
||||||
|
json_filepath.write_text(json.dumps(qto_base_quantities_data, indent=4) + "\n")
|
||||||
|
|
||||||
|
|
||||||
|
def reuse_methods_from_other_json_file(json_source_filepath: Path, json_target_filepath: Path) -> None:
|
||||||
|
json_source_data = json.loads(json_source_filepath.read_text())
|
||||||
|
json_target_data = json.loads(json_target_filepath.read_text())
|
||||||
|
queries_data: QueriesData
|
||||||
|
queries_data_target: QueriesData
|
||||||
|
for calculator, queries_data in json_source_data["calculators"].items():
|
||||||
|
for selector_query, query_qtos_data in queries_data.items():
|
||||||
|
queries_data_target = json_target_data["calculators"][calculator]
|
||||||
|
# Don't match exactly since queries between IFC4 and IFC4X3 are not in sync currently.
|
||||||
|
target_query = next((q for q in queries_data_target if q.startswith(selector_query)), None)
|
||||||
|
if target_query is None:
|
||||||
|
continue
|
||||||
|
query_qtos_data_target = queries_data_target[target_query]
|
||||||
|
for qto_name in query_qtos_data:
|
||||||
|
if qto_name not in query_qtos_data_target:
|
||||||
|
continue
|
||||||
|
props_data = query_qtos_data[qto_name]
|
||||||
|
props_data_target = query_qtos_data_target[qto_name]
|
||||||
|
for prop_name in props_data:
|
||||||
|
if prop_name not in props_data_target:
|
||||||
|
continue
|
||||||
|
props_data_target[prop_name] = props_data[prop_name]
|
||||||
|
|
||||||
|
json_target_filepath.write_text(json.dumps(json_target_data, indent=4) + "\n")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|||||||
@@ -3,39 +3,39 @@
|
|||||||
"description": "This ruleset quantifies every single possible standardised base quantity in IFC4X3 using only IfcOpenShell as a geometry processor.",
|
"description": "This ruleset quantifies every single possible standardised base quantity in IFC4X3 using only IfcOpenShell as a geometry processor.",
|
||||||
"calculators": {
|
"calculators": {
|
||||||
"IfcOpenShell": {
|
"IfcOpenShell": {
|
||||||
"IfcActuator": {
|
"IfcActuator + IfcActuatorType": {
|
||||||
"Qto_ActuatorBaseQuantities": {
|
"Qto_ActuatorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAirTerminal": {
|
"IfcAirTerminal + IfcAirTerminalType": {
|
||||||
"Qto_AirTerminalBaseQuantities": {
|
"Qto_AirTerminalBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"Perimeter": null,
|
"Perimeter": null,
|
||||||
"TotalSurfaceArea": null
|
"TotalSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAirTerminalBox": {
|
"IfcAirTerminalBox + IfcAirTerminalBoxType": {
|
||||||
"Qto_AirTerminalBoxTypeBaseQuantities": {
|
"Qto_AirTerminalBoxTypeBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAirToAirHeatRecovery": {
|
"IfcAirToAirHeatRecovery + IfcAirToAirHeatRecoveryType": {
|
||||||
"Qto_AirToAirHeatRecoveryBaseQuantities": {
|
"Qto_AirToAirHeatRecoveryBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAlarm": {
|
"IfcAlarm + IfcAlarmType": {
|
||||||
"Qto_AlarmBaseQuantities": {
|
"Qto_AlarmBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAudioVisualAppliance": {
|
"IfcAudioVisualAppliance + IfcAudioVisualApplianceType": {
|
||||||
"Qto_AudioVisualApplianceBaseQuantities": {
|
"Qto_AudioVisualApplianceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcBeam": {
|
"IfcBeam + IfcBeamType": {
|
||||||
"Qto_BeamBaseQuantities": {
|
"Qto_BeamBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossSurfaceArea": "gross_get_area",
|
"GrossSurfaceArea": "gross_get_area",
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"OuterSurfaceArea": "net_get_outer_surface_area"
|
"OuterSurfaceArea": "net_get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcBoiler": {
|
"IfcBoiler + IfcBoilerType": {
|
||||||
"Qto_BoilerBaseQuantities": {
|
"Qto_BoilerBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NetWeight": null,
|
"NetWeight": null,
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
"IfcBuilding": {
|
"IfcBuilding": {
|
||||||
"Qto_BuildingBaseQuantities": {
|
"Qto_BuildingBaseQuantities": {
|
||||||
"EavesHeight": null,
|
"EavesHeight": null,
|
||||||
"FootprintArea": null,
|
"FootPrintArea": null,
|
||||||
"GrossFloorArea": null,
|
"GrossFloorArea": null,
|
||||||
"GrossVolume": null,
|
"GrossVolume": null,
|
||||||
"Height": null,
|
"Height": null,
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
"NetVolume": null
|
"NetVolume": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcBuildingElementProxy": {
|
"IfcBuildingElementProxy + IfcBuildingElementProxyType": {
|
||||||
"Qto_BuildingElementProxyQuantities": {
|
"Qto_BuildingElementProxyQuantities": {
|
||||||
"NetSurfaceArea": null,
|
"NetSurfaceArea": null,
|
||||||
"NetVolume": null
|
"NetVolume": null
|
||||||
@@ -79,21 +79,21 @@
|
|||||||
"GrossPerimeter": null,
|
"GrossPerimeter": null,
|
||||||
"GrossVolume": null,
|
"GrossVolume": null,
|
||||||
"NetFloorArea": null,
|
"NetFloorArea": null,
|
||||||
"NetHeigtht": null,
|
"NetHeight": null,
|
||||||
"NetVolume": null
|
"NetVolume": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcBurner": {
|
"IfcBurner + IfcBurnerType": {
|
||||||
"Qto_BurnerBaseQuantities": {
|
"Qto_BurnerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCableCarrierFitting": {
|
"IfcCableCarrierFitting + IfcCableCarrierFittingType": {
|
||||||
"Qto_CableCarrierFittingBaseQuantities": {
|
"Qto_CableCarrierFittingBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCableCarrierSegment": {
|
"IfcCableCarrierSegment + IfcCableCarrierSegmentType": {
|
||||||
"Qto_CableCarrierSegmentBaseQuantities": {
|
"Qto_CableCarrierSegmentBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -101,12 +101,18 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCableFitting": {
|
"IfcCableCarrierSegment, PredefinedType=\"CONDUITSEGMENT\" + IfcCableCarrierSegmentType, PredefinedType=\"CONDUITSEGMENT\"": {
|
||||||
|
"Qto_ConduitSegmentBaseQuantities": {
|
||||||
|
"InnerDiameter": null,
|
||||||
|
"OuterDiameter": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcCableFitting + IfcCableFittingType": {
|
||||||
"Qto_CableFittingBaseQuantities": {
|
"Qto_CableFittingBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCableSegment": {
|
"IfcCableSegment + IfcCableSegmentType": {
|
||||||
"Qto_CableSegmentBaseQuantities": {
|
"Qto_CableSegmentBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -114,22 +120,22 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcChiller": {
|
"IfcChiller + IfcChillerType": {
|
||||||
"Qto_ChillerBaseQuantities": {
|
"Qto_ChillerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcChimney": {
|
"IfcChimney + IfcChimneyType": {
|
||||||
"Qto_ChimneyBaseQuantities": {
|
"Qto_ChimneyBaseQuantities": {
|
||||||
"Length": "net_get_max_xyz"
|
"Length": "net_get_max_xyz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCoil": {
|
"IfcCoil + IfcCoilType": {
|
||||||
"Qto_CoilBaseQuantities": {
|
"Qto_CoilBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcColumn": {
|
"IfcColumn + IfcColumnType": {
|
||||||
"Qto_ColumnBaseQuantities": {
|
"Qto_ColumnBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossSurfaceArea": "gross_get_area",
|
"GrossSurfaceArea": "gross_get_area",
|
||||||
@@ -142,28 +148,28 @@
|
|||||||
"OuterSurfaceArea": "net_get_outer_surface_area"
|
"OuterSurfaceArea": "net_get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCommunicationsAppliance": {
|
"IfcCommunicationsAppliance + IfcCommunicationsApplianceType": {
|
||||||
"Qto_CommunicationsApplianceBaseQuantities": {
|
"Qto_CommunicationsApplianceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCompressor": {
|
"IfcCompressor + IfcCompressorType": {
|
||||||
"Qto_CompressorBaseQuantities": {
|
"Qto_CompressorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCondenser": {
|
"IfcCondenser + IfcCondenserType": {
|
||||||
"Qto_CondenserBaseQuantities": {
|
"Qto_CondenserBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcConstructionEquipmentResource": {
|
"IfcConstructionEquipmentResource + IfcConstructionEquipmentResourceType": {
|
||||||
"Qto_ConstructionEquipmentResourceBaseQuantities": {
|
"Qto_ConstructionEquipmentResourceBaseQuantities": {
|
||||||
"OperatingTime": null,
|
"OperatingTime": null,
|
||||||
"UsageTime": null
|
"UsageTime": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcConstructionMaterialResource": {
|
"IfcConstructionMaterialResource + IfcConstructionMaterialResourceType": {
|
||||||
"Qto_ConstructionMaterialResourceBaseQuantities": {
|
"Qto_ConstructionMaterialResourceBaseQuantities": {
|
||||||
"GrossVolume": null,
|
"GrossVolume": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -171,29 +177,39 @@
|
|||||||
"NetWeight": null
|
"NetWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcController": {
|
"IfcController + IfcControllerType": {
|
||||||
"Qto_ControllerBaseQuantities": {
|
"Qto_ControllerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCooledBeam": {
|
"IfcCooledBeam + IfcCooledBeamType": {
|
||||||
"Qto_CooledBeamBaseQuantities": {
|
"Qto_CooledBeamBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCoolingTower": {
|
"IfcCoolingTower + IfcCoolingTowerType": {
|
||||||
"Qto_CoolingTowerBaseQuantities": {
|
"Qto_CoolingTowerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCovering": {
|
"IfcCourse + IfcCourseType": {
|
||||||
|
"Qto_CourseBaseQuantities": {
|
||||||
|
"GrossVolume": null,
|
||||||
|
"Length": null,
|
||||||
|
"Thickness": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Weight": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcCovering + IfcCoveringType": {
|
||||||
"Qto_CoveringBaseQuantities": {
|
"Qto_CoveringBaseQuantities": {
|
||||||
"GrossArea": "gross_get_max_side_area",
|
"GrossArea": "gross_get_max_side_area",
|
||||||
"NetArea": "net_get_max_side_area",
|
"NetArea": "net_get_max_side_area",
|
||||||
"Width": "gross_get_min_xyz"
|
"Width": "gross_get_min_xyz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCurtainWall": {
|
"IfcCurtainWall + IfcCurtainWallType": {
|
||||||
"Qto_CurtainWallQuantities": {
|
"Qto_CurtainWallQuantities": {
|
||||||
"GrossSideArea": null,
|
"GrossSideArea": null,
|
||||||
"Height": null,
|
"Height": null,
|
||||||
@@ -202,20 +218,21 @@
|
|||||||
"Width": null
|
"Width": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDamper": {
|
"IfcDamper + IfcDamperType": {
|
||||||
"Qto_DamperBaseQuantities": {
|
"Qto_DamperBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDistributionChamberElement": {
|
"IfcDistributionChamberElement + IfcDistributionChamberElementType": {
|
||||||
"Qto_DistributionChamberElementBaseQuantities": {
|
"Qto_DistributionChamberElementBaseQuantities": {
|
||||||
|
"Depth": null,
|
||||||
"GrossSurfaceArea": null,
|
"GrossSurfaceArea": null,
|
||||||
"GrossVolume": null,
|
"GrossVolume": null,
|
||||||
"NetSurfaceArea": null,
|
"NetSurfaceArea": null,
|
||||||
"NetVolume": null
|
"NetVolume": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDoor": {
|
"IfcDoor + IfcDoorType": {
|
||||||
"Qto_DoorBaseQuantities": {
|
"Qto_DoorBaseQuantities": {
|
||||||
"Area": null,
|
"Area": null,
|
||||||
"Height": null,
|
"Height": null,
|
||||||
@@ -223,7 +240,7 @@
|
|||||||
"Width": null
|
"Width": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDuctFitting": {
|
"IfcDuctFitting + IfcDuctFittingType": {
|
||||||
"Qto_DuctFittingBaseQuantities": {
|
"Qto_DuctFittingBaseQuantities": {
|
||||||
"GrossCrossSectionArea": null,
|
"GrossCrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -232,7 +249,7 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDuctSegment": {
|
"IfcDuctSegment + IfcDuctSegmentType": {
|
||||||
"Qto_DuctSegmentBaseQuantities": {
|
"Qto_DuctSegmentBaseQuantities": {
|
||||||
"GrossCrossSectionArea": null,
|
"GrossCrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -241,78 +258,106 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDuctSilencer": {
|
"IfcDuctSilencer + IfcDuctSilencerType": {
|
||||||
"Qto_DuctSilencerBaseQuantities": {
|
"Qto_DuctSilencerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricAppliance": {
|
"IfcEarthworksCut": {
|
||||||
|
"Qto_EarthworksCutBaseQuantities": {
|
||||||
|
"Depth": null,
|
||||||
|
"Length": null,
|
||||||
|
"LooseVolume": null,
|
||||||
|
"UndisturbedVolume": null,
|
||||||
|
"Weight": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcEarthworksFill": {
|
||||||
|
"Qto_EarthworksFillBaseQuantities": {
|
||||||
|
"CompactedVolume": null,
|
||||||
|
"Depth": null,
|
||||||
|
"Length": null,
|
||||||
|
"LooseVolume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcElectricAppliance + IfcElectricApplianceType": {
|
||||||
"Qto_ElectricApplianceBaseQuantities": {
|
"Qto_ElectricApplianceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricDistributionBoard": {
|
"IfcElectricDistributionBoard + IfcElectricDistributionBoardType": {
|
||||||
"Qto_ElectricDistributionBoardBaseQuantities": {
|
"Qto_DistributionBoardBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NumberOfCircuits": null
|
"NumberOfCircuits": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricFlowStorageDevice": {
|
"IfcElectricFlowStorageDevice + IfcElectricFlowStorageDeviceType": {
|
||||||
"Qto_ElectricFlowStorageDeviceBaseQuantities": {
|
"Qto_ElectricFlowStorageDeviceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricGenerator": {
|
"IfcElectricGenerator + IfcElectricGeneratorType": {
|
||||||
"Qto_ElectricGeneratorBaseQuantities": {
|
"Qto_ElectricGeneratorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricMotor": {
|
"IfcElectricMotor + IfcElectricMotorType": {
|
||||||
"Qto_ElectricMotorBaseQuantities": {
|
"Qto_ElectricMotorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricTimeControl": {
|
"IfcElectricTimeControl + IfcElectricTimeControlType": {
|
||||||
"Qto_ElectricTimeControlBaseQuantities": {
|
"Qto_ElectricTimeControlBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcEvaporativeCooler": {
|
"IfcEvaporativeCooler + IfcEvaporativeCoolerType": {
|
||||||
"Qto_EvaporativeCoolerBaseQuantities": {
|
"Qto_EvaporativeCoolerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcEvaporator": {
|
"IfcEvaporator + IfcEvaporatorType": {
|
||||||
"Qto_EvaporatorBaseQuantities": {
|
"Qto_EvaporatorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFan": {
|
"IfcFacilityPart": {
|
||||||
|
"Qto_FacilityPartBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcFan + IfcFanType": {
|
||||||
"Qto_FanBaseQuantities": {
|
"Qto_FanBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFilter": {
|
"IfcFilter + IfcFilterType": {
|
||||||
"Qto_FilterBaseQuantities": {
|
"Qto_FilterBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFireSuppressionTerminal": {
|
"IfcFireSuppressionTerminal + IfcFireSuppressionTerminalType": {
|
||||||
"Qto_FireSuppressionTerminalBaseQuantities": {
|
"Qto_FireSuppressionTerminalBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFlowInstrument": {
|
"IfcFlowInstrument + IfcFlowInstrumentType": {
|
||||||
"Qto_FlowInstrumentBaseQuantities": {
|
"Qto_FlowInstrumentBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFlowMeter": {
|
"IfcFlowMeter + IfcFlowMeterType": {
|
||||||
"Qto_FlowMeterBaseQuantities": {
|
"Qto_FlowMeterBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFooting": {
|
"IfcFooting + IfcFootingType": {
|
||||||
"Qto_FootingBaseQuantities": {
|
"Qto_FootingBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossSurfaceArea": null,
|
"GrossSurfaceArea": null,
|
||||||
@@ -326,44 +371,88 @@
|
|||||||
"Width": null
|
"Width": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcHeatExchanger": {
|
"IfcGeotechnicalStratum": {
|
||||||
|
"Qto_ArealStratumBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Length": null,
|
||||||
|
"PlanLength": null
|
||||||
|
},
|
||||||
|
"Qto_LinearStratumBaseQuantities": {
|
||||||
|
"Diameter": null,
|
||||||
|
"Length": null
|
||||||
|
},
|
||||||
|
"Qto_VolumetricStratumBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Mass": null,
|
||||||
|
"PlanArea": null,
|
||||||
|
"Volume": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcHeatExchanger + IfcHeatExchangerType": {
|
||||||
"Qto_HeatExchangerBaseQuantities": {
|
"Qto_HeatExchangerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcHumidifier": {
|
"IfcHumidifier + IfcHumidifierType": {
|
||||||
"Qto_HumidifierBaseQuantities": {
|
"Qto_HumidifierBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcInterceptor": {
|
"IfcImpactProtectionDevice + IfcImpactProtectionDeviceType": {
|
||||||
|
"Qto_ImpactProtectionDeviceBaseQuantities": {
|
||||||
|
"Weight": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcInterceptor + IfcInterceptorType": {
|
||||||
"Qto_InterceptorBaseQuantities": {
|
"Qto_InterceptorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcJunctionBox": {
|
"IfcJunctionBox + IfcJunctionBoxType": {
|
||||||
"Qto_JunctionBoxBaseQuantities": {
|
"Qto_JunctionBoxBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NumberOfGangs": null
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"NumberOfGangs": null,
|
||||||
|
"Width": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcLaborResource": {
|
"IfcKerb + IfcKerbType": {
|
||||||
|
"Qto_KerbBaseQuantities": {
|
||||||
|
"Depth": null,
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Weight": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcLaborResource + IfcLaborResourceType": {
|
||||||
"Qto_LaborResourceBaseQuantities": {
|
"Qto_LaborResourceBaseQuantities": {
|
||||||
"OvertimeWork": null,
|
"OvertimeWork": null,
|
||||||
"StandardWork": null
|
"StandardWork": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcLamp": {
|
"IfcLamp + IfcLampType": {
|
||||||
"Qto_LampBaseQuantities": {
|
"Qto_LampBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcLightFixture": {
|
"IfcLightFixture + IfcLightFixtureType": {
|
||||||
"Qto_LightFixtureBaseQuantities": {
|
"Qto_LightFixtureBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcMember": {
|
"IfcMarineFacility": {
|
||||||
|
"Qto_MarineFacilityBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcMember + IfcMemberType": {
|
||||||
"Qto_MemberBaseQuantities": {
|
"Qto_MemberBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossSurfaceArea": "gross_get_area",
|
"GrossSurfaceArea": "gross_get_area",
|
||||||
@@ -376,7 +465,7 @@
|
|||||||
"OuterSurfaceArea": "net_get_outer_surface_area"
|
"OuterSurfaceArea": "net_get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcMotorConnection": {
|
"IfcMotorConnection + IfcMotorConnectionType": {
|
||||||
"Qto_MotorConnectionBaseQuantities": {
|
"Qto_MotorConnectionBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
@@ -390,12 +479,23 @@
|
|||||||
"Width": "gross_get_x"
|
"Width": "gross_get_x"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcOutlet": {
|
"IfcOutlet + IfcOutletType": {
|
||||||
"Qto_OutletBaseQuantities": {
|
"Qto_OutletBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPile": {
|
"IfcPavement + IfcPavementType": {
|
||||||
|
"Qto_PavementBaseQuantities": {
|
||||||
|
"Depth": null,
|
||||||
|
"GrossArea": null,
|
||||||
|
"GrossVolume": null,
|
||||||
|
"Length": null,
|
||||||
|
"NetArea": null,
|
||||||
|
"NetVolume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcPile + IfcPileType": {
|
||||||
"Qto_PileBaseQuantities": {
|
"Qto_PileBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossSurfaceArea": null,
|
"GrossSurfaceArea": null,
|
||||||
@@ -407,7 +507,7 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPipeFitting": {
|
"IfcPipeFitting + IfcPipeFittingType": {
|
||||||
"Qto_PipeFittingBaseQuantities": {
|
"Qto_PipeFittingBaseQuantities": {
|
||||||
"GrossCrossSectionArea": null,
|
"GrossCrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -417,8 +517,9 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPipeSegment": {
|
"IfcPipeSegment + IfcPipeSegmentType": {
|
||||||
"Qto_PipeSegmentBaseQuantities": {
|
"Qto_PipeSegmentBaseQuantities": {
|
||||||
|
"FootPrintArea": null,
|
||||||
"GrossCrossSectionArea": null,
|
"GrossCrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"Length": "net_get_segment_length",
|
"Length": "net_get_segment_length",
|
||||||
@@ -427,7 +528,7 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPlate": {
|
"IfcPlate + IfcPlateType": {
|
||||||
"Qto_PlateBaseQuantities": {
|
"Qto_PlateBaseQuantities": {
|
||||||
"GrossArea": "gross_get_max_side_area",
|
"GrossArea": "gross_get_max_side_area",
|
||||||
"GrossVolume": "gross_get_volume",
|
"GrossVolume": "gross_get_volume",
|
||||||
@@ -439,33 +540,50 @@
|
|||||||
"Width": "net_get_min_xyz"
|
"Width": "net_get_min_xyz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"IfcProduct": {
|
||||||
|
"Qto_BodyGeometryValidation": {
|
||||||
|
"GrossSurfaceArea": null,
|
||||||
|
"GrossVolume": null,
|
||||||
|
"NetSurfaceArea": null,
|
||||||
|
"NetVolume": null,
|
||||||
|
"SurfaceGenusAfterFeatures": null,
|
||||||
|
"SurfaceGenusBeforeFeatures": null
|
||||||
|
}
|
||||||
|
},
|
||||||
"IfcProjectionElement": {
|
"IfcProjectionElement": {
|
||||||
"Qto_ProjectionElementBaseQuantities": {
|
"Qto_ProjectionElementBaseQuantities": {
|
||||||
"Area": null,
|
"Area": null,
|
||||||
"Volume": null
|
"Volume": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcProtectiveDevice": {
|
"IfcProtectiveDevice + IfcProtectiveDeviceType": {
|
||||||
"Qto_ProtectiveDeviceBaseQuantities": {
|
"Qto_ProtectiveDeviceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcProtectiveDeviceTrippingUnit": {
|
"IfcProtectiveDeviceTrippingUnit + IfcProtectiveDeviceTrippingUnitType": {
|
||||||
"Qto_ProtectiveDeviceTrippingUnitBaseQuantities": {
|
"Qto_ProtectiveDeviceTrippingUnitBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPump": {
|
"IfcPump + IfcPumpType": {
|
||||||
"Qto_PumpBaseQuantities": {
|
"Qto_PumpBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcRailing": {
|
"IfcRail + IfcRailType": {
|
||||||
|
"Qto_RailBaseQuantities": {
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Weight": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcRailing + IfcRailingType": {
|
||||||
"Qto_RailingBaseQuantities": {
|
"Qto_RailingBaseQuantities": {
|
||||||
"Length": null
|
"Length": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcRampFlight": {
|
"IfcRampFlight + IfcRampFlightType": {
|
||||||
"Qto_RampFlightBaseQuantities": {
|
"Qto_RampFlightBaseQuantities": {
|
||||||
"GrossArea": null,
|
"GrossArea": null,
|
||||||
"GrossVolume": null,
|
"GrossVolume": null,
|
||||||
@@ -475,37 +593,65 @@
|
|||||||
"Width": null
|
"Width": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcReinforcingElement": {
|
"IfcReinforcedSoil": {
|
||||||
|
"Qto_ReinforcedSoilBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Depth": null,
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcReinforcingElement + IfcReinforcingElementType": {
|
||||||
"Qto_ReinforcingElementBaseQuantities": {
|
"Qto_ReinforcingElementBaseQuantities": {
|
||||||
"Count": null,
|
"Count": null,
|
||||||
"Length": null,
|
"Length": null,
|
||||||
"Weight": null
|
"Weight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcRoof": {
|
"IfcRoof + IfcRoofType": {
|
||||||
"Qto_RoofBaseQuantities": {
|
"Qto_RoofBaseQuantities": {
|
||||||
"GrossArea": "gross_get_top_area",
|
"GrossArea": "gross_get_top_area",
|
||||||
"NetArea": "net_get_top_area",
|
"NetArea": "net_get_top_area",
|
||||||
"ProjectedArea": null
|
"ProjectedArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSanitaryTerminal": {
|
"IfcSanitaryTerminal + IfcSanitaryTerminalType": {
|
||||||
"Qto_SanitaryTerminalBaseQuantities": {
|
"Qto_SanitaryTerminalBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSensor": {
|
"IfcSensor + IfcSensorType": {
|
||||||
"Qto_SensorBaseQuantities": {
|
"Qto_SensorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"IfcSign + IfcSignType": {
|
||||||
|
"Qto_SignBaseQuantities": {
|
||||||
|
"Height": null,
|
||||||
|
"Thickness": null,
|
||||||
|
"Weight": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcSign, PredefinedType=\"PICTORAL\" + IfcSignType, PredefinedType=\"PICTORAL\"": {
|
||||||
|
"Qto_PictorialSignQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"SignArea": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcSignal + IfcSignalType": {
|
||||||
|
"Qto_SignalBaseQuantities": {
|
||||||
|
"Weight": null
|
||||||
|
}
|
||||||
|
},
|
||||||
"IfcSite": {
|
"IfcSite": {
|
||||||
"Qto_SiteBaseQuantities": {
|
"Qto_SiteBaseQuantities": {
|
||||||
"GrossArea": null,
|
"GrossArea": null,
|
||||||
"GrossPerimeter": null
|
"GrossPerimeter": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSlab": {
|
"IfcSlab + IfcSlabType": {
|
||||||
"Qto_SlabBaseQuantities": {
|
"Qto_SlabBaseQuantities": {
|
||||||
"Depth": "net_get_z",
|
"Depth": "net_get_z",
|
||||||
"GrossArea": "gross_get_footprint_area",
|
"GrossArea": "gross_get_footprint_area",
|
||||||
@@ -519,13 +665,13 @@
|
|||||||
"Width": "net_get_y"
|
"Width": "net_get_y"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSolarDevice": {
|
"IfcSolarDevice + IfcSolarDeviceType": {
|
||||||
"Qto_SolarDeviceBaseQuantities": {
|
"Qto_SolarDeviceBaseQuantities": {
|
||||||
"GrossArea": null,
|
"GrossArea": null,
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSpace": {
|
"IfcSpace + IfcSpaceType": {
|
||||||
"Qto_SpaceBaseQuantities": {
|
"Qto_SpaceBaseQuantities": {
|
||||||
"FinishCeilingHeight": null,
|
"FinishCeilingHeight": null,
|
||||||
"FinishFloorHeight": null,
|
"FinishFloorHeight": null,
|
||||||
@@ -542,89 +688,116 @@
|
|||||||
"NetWallArea": null
|
"NetWallArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSpaceHeater": {
|
"IfcSpaceHeater + IfcSpaceHeaterType": {
|
||||||
"Qto_SpaceHeaterBaseQuantities": {
|
"Qto_SpaceHeaterBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"Length": null,
|
"Length": null,
|
||||||
"NetWeight": null
|
"NetWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcStackTerminal": {
|
"IfcSpatialZone + IfcSpatialZoneType": {
|
||||||
|
"Qto_SpatialZoneBaseQuantities": {
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcStackTerminal + IfcStackTerminalType": {
|
||||||
"Qto_StackTerminalBaseQuantities": {
|
"Qto_StackTerminalBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcStairFlight": {
|
"IfcStairFlight + IfcStairFlightType": {
|
||||||
"Qto_StairFlightBaseQuantities": {
|
"Qto_StairFlightBaseQuantities": {
|
||||||
"GrossVolume": null,
|
"GrossVolume": null,
|
||||||
"Length": "net_get_max_xy",
|
"Length": "net_get_max_xy",
|
||||||
"NetVolume": "net_get_volume"
|
"NetVolume": "net_get_volume"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSwitchingDevice": {
|
"IfcSurfaceFeature": {
|
||||||
|
"Qto_SurfaceFeatureBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Length": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcSwitchingDevice + IfcSwitchingDeviceType": {
|
||||||
"Qto_SwitchingDeviceBaseQuantities": {
|
"Qto_SwitchingDeviceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcTank": {
|
"IfcTank + IfcTankType": {
|
||||||
"Qto_TankBaseQuantities": {
|
"Qto_TankBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NetWeight": null,
|
"NetWeight": null,
|
||||||
"TotalSurfaceArea": null
|
"TotalSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcTransformer": {
|
"IfcTrackElement, PredefinedType=\"SLEEPER\" + IfcTrackElementType, PredefinedType=\"SLEEPER\"": {
|
||||||
|
"Qto_SleeperBaseQuantities": {
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcTransformer + IfcTransformerType": {
|
||||||
"Qto_TransformerBaseQuantities": {
|
"Qto_TransformerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcTubeBundle": {
|
"IfcTubeBundle + IfcTubeBundleType": {
|
||||||
"Qto_TubeBundleBaseQuantities": {
|
"Qto_TubeBundleBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NetWeight": null
|
"NetWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcUnitaryControlElement": {
|
"IfcUnitaryControlElement + IfcUnitaryControlElementType": {
|
||||||
"Qto_UnitaryControlElementBaseQuantities": {
|
"Qto_UnitaryControlElementBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcUnitaryEquipment": {
|
"IfcUnitaryEquipment + IfcUnitaryEquipmentType": {
|
||||||
"Qto_UnitaryEquipmentBaseQuantities": {
|
"Qto_UnitaryEquipmentBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcValve": {
|
"IfcValve + IfcValveType": {
|
||||||
"Qto_ValveBaseQuantities": {
|
"Qto_ValveBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcVibrationIsolator": {
|
"IfcVehicle, PredefinedType=\"ROLLINGSTOCK\" + IfcVehicle, PredefinedType=\"VEHICLEAIR\" + IfcVehicle, PredefinedType=\"VEHICLEMARINE\" + IfcVehicle, PredefinedType=\"VEHICLE\" + IfcVehicle, PredefinedType=\"VEHICLETRACKED\" + IfcVehicleType, PredefinedType=\"ROLLINGSTOCK\" + IfcVehicleType, PredefinedType=\"VEHICLEAIR\" + IfcVehicleType, PredefinedType=\"VEHICLEMARINE\" + IfcVehicleType, PredefinedType=\"VEHICLE\" + IfcVehicleType, PredefinedType=\"VEHICLETRACKED\"": {
|
||||||
|
"Qto_VehicleBaseQuantities": {
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcVibrationIsolator + IfcVibrationIsolatorType": {
|
||||||
"Qto_VibrationIsolatorBaseQuantities": {
|
"Qto_VibrationIsolatorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcWall": {
|
"IfcWall + IfcWallType": {
|
||||||
"Qto_WallBaseQuantities": {
|
"Qto_WallBaseQuantities": {
|
||||||
"GrossFootprintArea": null,
|
"GrossFootPrintArea": null,
|
||||||
"GrossSideArea": "gross_get_side_area",
|
"GrossSideArea": "gross_get_side_area",
|
||||||
"GrossVolume": "gross_get_volume",
|
"GrossVolume": "gross_get_volume",
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"Height": "net_get_z",
|
"Height": "net_get_z",
|
||||||
"Length": "net_get_x",
|
"Length": "net_get_x",
|
||||||
"NetFootprintArea": null,
|
"NetFootPrintArea": null,
|
||||||
"NetSideArea": "net_get_side_area",
|
"NetSideArea": "net_get_side_area",
|
||||||
"NetVolume": "net_get_volume",
|
"NetVolume": "net_get_volume",
|
||||||
"NetWeight": null,
|
"NetWeight": null,
|
||||||
"Width": "net_get_y"
|
"Width": "net_get_y"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcWasteTerminal": {
|
"IfcWasteTerminal + IfcWasteTerminalType": {
|
||||||
"Qto_WasteTerminalBaseQuantities": {
|
"Qto_WasteTerminalBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcWindow": {
|
"IfcWindow + IfcWindowType": {
|
||||||
"Qto_WindowBaseQuantities": {
|
"Qto_WindowBaseQuantities": {
|
||||||
"Area": "net_get_max_side_area",
|
"Area": "net_get_max_side_area",
|
||||||
"Height": "net_get_z",
|
"Height": "net_get_z",
|
||||||
|
|||||||
@@ -3,39 +3,39 @@
|
|||||||
"description": "This ruleset quantifies every single possible standardised base quantity in IFC4X3 using Blender.",
|
"description": "This ruleset quantifies every single possible standardised base quantity in IFC4X3 using Blender.",
|
||||||
"calculators": {
|
"calculators": {
|
||||||
"Blender": {
|
"Blender": {
|
||||||
"IfcActuator": {
|
"IfcActuator + IfcActuatorType": {
|
||||||
"Qto_ActuatorBaseQuantities": {
|
"Qto_ActuatorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAirTerminal": {
|
"IfcAirTerminal + IfcAirTerminalType": {
|
||||||
"Qto_AirTerminalBaseQuantities": {
|
"Qto_AirTerminalBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"Perimeter": null,
|
"Perimeter": null,
|
||||||
"TotalSurfaceArea": null
|
"TotalSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAirTerminalBox": {
|
"IfcAirTerminalBox + IfcAirTerminalBoxType": {
|
||||||
"Qto_AirTerminalBoxTypeBaseQuantities": {
|
"Qto_AirTerminalBoxTypeBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAirToAirHeatRecovery": {
|
"IfcAirToAirHeatRecovery + IfcAirToAirHeatRecoveryType": {
|
||||||
"Qto_AirToAirHeatRecoveryBaseQuantities": {
|
"Qto_AirToAirHeatRecoveryBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAlarm": {
|
"IfcAlarm + IfcAlarmType": {
|
||||||
"Qto_AlarmBaseQuantities": {
|
"Qto_AlarmBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcAudioVisualAppliance": {
|
"IfcAudioVisualAppliance + IfcAudioVisualApplianceType": {
|
||||||
"Qto_AudioVisualApplianceBaseQuantities": {
|
"Qto_AudioVisualApplianceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcBeam": {
|
"IfcBeam + IfcBeamType": {
|
||||||
"Qto_BeamBaseQuantities": {
|
"Qto_BeamBaseQuantities": {
|
||||||
"CrossSectionArea": "get_cross_section_area",
|
"CrossSectionArea": "get_cross_section_area",
|
||||||
"GrossSurfaceArea": "get_gross_surface_area",
|
"GrossSurfaceArea": "get_gross_surface_area",
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"OuterSurfaceArea": "get_outer_surface_area"
|
"OuterSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcBoiler": {
|
"IfcBoiler + IfcBoilerType": {
|
||||||
"Qto_BoilerBaseQuantities": {
|
"Qto_BoilerBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NetWeight": null,
|
"NetWeight": null,
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
"IfcBuilding": {
|
"IfcBuilding": {
|
||||||
"Qto_BuildingBaseQuantities": {
|
"Qto_BuildingBaseQuantities": {
|
||||||
"EavesHeight": null,
|
"EavesHeight": null,
|
||||||
"FootprintArea": null,
|
"FootPrintArea": null,
|
||||||
"GrossFloorArea": null,
|
"GrossFloorArea": null,
|
||||||
"GrossVolume": null,
|
"GrossVolume": null,
|
||||||
"Height": null,
|
"Height": null,
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
"NetVolume": null
|
"NetVolume": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcBuildingElementProxy": {
|
"IfcBuildingElementProxy + IfcBuildingElementProxyType": {
|
||||||
"Qto_BuildingElementProxyQuantities": {
|
"Qto_BuildingElementProxyQuantities": {
|
||||||
"NetSurfaceArea": "get_net_surface_area",
|
"NetSurfaceArea": "get_net_surface_area",
|
||||||
"NetVolume": "get_net_volume"
|
"NetVolume": "get_net_volume"
|
||||||
@@ -79,21 +79,21 @@
|
|||||||
"GrossPerimeter": null,
|
"GrossPerimeter": null,
|
||||||
"GrossVolume": null,
|
"GrossVolume": null,
|
||||||
"NetFloorArea": null,
|
"NetFloorArea": null,
|
||||||
"NetHeigtht": null,
|
"NetHeight": null,
|
||||||
"NetVolume": null
|
"NetVolume": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcBurner": {
|
"IfcBurner + IfcBurnerType": {
|
||||||
"Qto_BurnerBaseQuantities": {
|
"Qto_BurnerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCableCarrierFitting": {
|
"IfcCableCarrierFitting + IfcCableCarrierFittingType": {
|
||||||
"Qto_CableCarrierFittingBaseQuantities": {
|
"Qto_CableCarrierFittingBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCableCarrierSegment": {
|
"IfcCableCarrierSegment + IfcCableCarrierSegmentType": {
|
||||||
"Qto_CableCarrierSegmentBaseQuantities": {
|
"Qto_CableCarrierSegmentBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -101,12 +101,18 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCableFitting": {
|
"IfcCableCarrierSegment, PredefinedType=\"CONDUITSEGMENT\" + IfcCableCarrierSegmentType, PredefinedType=\"CONDUITSEGMENT\"": {
|
||||||
|
"Qto_ConduitSegmentBaseQuantities": {
|
||||||
|
"InnerDiameter": null,
|
||||||
|
"OuterDiameter": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcCableFitting + IfcCableFittingType": {
|
||||||
"Qto_CableFittingBaseQuantities": {
|
"Qto_CableFittingBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCableSegment": {
|
"IfcCableSegment + IfcCableSegmentType": {
|
||||||
"Qto_CableSegmentBaseQuantities": {
|
"Qto_CableSegmentBaseQuantities": {
|
||||||
"CrossSectionArea": null,
|
"CrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -114,22 +120,22 @@
|
|||||||
"OuterSurfaceArea": "get_outer_surface_area"
|
"OuterSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcChiller": {
|
"IfcChiller + IfcChillerType": {
|
||||||
"Qto_ChillerBaseQuantities": {
|
"Qto_ChillerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcChimney": {
|
"IfcChimney + IfcChimneyType": {
|
||||||
"Qto_ChimneyBaseQuantities": {
|
"Qto_ChimneyBaseQuantities": {
|
||||||
"Length": "get_height"
|
"Length": "get_height"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCoil": {
|
"IfcCoil + IfcCoilType": {
|
||||||
"Qto_CoilBaseQuantities": {
|
"Qto_CoilBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcColumn": {
|
"IfcColumn + IfcColumnType": {
|
||||||
"Qto_ColumnBaseQuantities": {
|
"Qto_ColumnBaseQuantities": {
|
||||||
"CrossSectionArea": "get_cross_section_area",
|
"CrossSectionArea": "get_cross_section_area",
|
||||||
"GrossSurfaceArea": "get_gross_surface_area",
|
"GrossSurfaceArea": "get_gross_surface_area",
|
||||||
@@ -142,28 +148,28 @@
|
|||||||
"OuterSurfaceArea": "get_outer_surface_area"
|
"OuterSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCommunicationsAppliance": {
|
"IfcCommunicationsAppliance + IfcCommunicationsApplianceType": {
|
||||||
"Qto_CommunicationsApplianceBaseQuantities": {
|
"Qto_CommunicationsApplianceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCompressor": {
|
"IfcCompressor + IfcCompressorType": {
|
||||||
"Qto_CompressorBaseQuantities": {
|
"Qto_CompressorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCondenser": {
|
"IfcCondenser + IfcCondenserType": {
|
||||||
"Qto_CondenserBaseQuantities": {
|
"Qto_CondenserBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcConstructionEquipmentResource": {
|
"IfcConstructionEquipmentResource + IfcConstructionEquipmentResourceType": {
|
||||||
"Qto_ConstructionEquipmentResourceBaseQuantities": {
|
"Qto_ConstructionEquipmentResourceBaseQuantities": {
|
||||||
"OperatingTime": null,
|
"OperatingTime": null,
|
||||||
"UsageTime": null
|
"UsageTime": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcConstructionMaterialResource": {
|
"IfcConstructionMaterialResource + IfcConstructionMaterialResourceType": {
|
||||||
"Qto_ConstructionMaterialResourceBaseQuantities": {
|
"Qto_ConstructionMaterialResourceBaseQuantities": {
|
||||||
"GrossVolume": "get_gross_volume",
|
"GrossVolume": "get_gross_volume",
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -171,29 +177,39 @@
|
|||||||
"NetWeight": null
|
"NetWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcController": {
|
"IfcController + IfcControllerType": {
|
||||||
"Qto_ControllerBaseQuantities": {
|
"Qto_ControllerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCooledBeam": {
|
"IfcCooledBeam + IfcCooledBeamType": {
|
||||||
"Qto_CooledBeamBaseQuantities": {
|
"Qto_CooledBeamBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCoolingTower": {
|
"IfcCoolingTower + IfcCoolingTowerType": {
|
||||||
"Qto_CoolingTowerBaseQuantities": {
|
"Qto_CoolingTowerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCovering": {
|
"IfcCourse + IfcCourseType": {
|
||||||
|
"Qto_CourseBaseQuantities": {
|
||||||
|
"GrossVolume": null,
|
||||||
|
"Length": null,
|
||||||
|
"Thickness": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Weight": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcCovering + IfcCoveringType": {
|
||||||
"Qto_CoveringBaseQuantities": {
|
"Qto_CoveringBaseQuantities": {
|
||||||
"GrossArea": "get_covering_gross_area",
|
"GrossArea": "get_covering_gross_area",
|
||||||
"NetArea": "get_covering_net_area",
|
"NetArea": "get_covering_net_area",
|
||||||
"Width": "get_covering_width"
|
"Width": "get_covering_width"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcCurtainWall": {
|
"IfcCurtainWall + IfcCurtainWallType": {
|
||||||
"Qto_CurtainWallQuantities": {
|
"Qto_CurtainWallQuantities": {
|
||||||
"GrossSideArea": null,
|
"GrossSideArea": null,
|
||||||
"Height": null,
|
"Height": null,
|
||||||
@@ -202,20 +218,21 @@
|
|||||||
"Width": null
|
"Width": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDamper": {
|
"IfcDamper + IfcDamperType": {
|
||||||
"Qto_DamperBaseQuantities": {
|
"Qto_DamperBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDistributionChamberElement": {
|
"IfcDistributionChamberElement + IfcDistributionChamberElementType": {
|
||||||
"Qto_DistributionChamberElementBaseQuantities": {
|
"Qto_DistributionChamberElementBaseQuantities": {
|
||||||
|
"Depth": null,
|
||||||
"GrossSurfaceArea": "get_gross_surface_area",
|
"GrossSurfaceArea": "get_gross_surface_area",
|
||||||
"GrossVolume": "get_gross_volume",
|
"GrossVolume": "get_gross_volume",
|
||||||
"NetSurfaceArea": "get_net_surface_area",
|
"NetSurfaceArea": "get_net_surface_area",
|
||||||
"NetVolume": "get_net_volume"
|
"NetVolume": "get_net_volume"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDoor": {
|
"IfcDoor + IfcDoorType": {
|
||||||
"Qto_DoorBaseQuantities": {
|
"Qto_DoorBaseQuantities": {
|
||||||
"Area": "get_net_side_area",
|
"Area": "get_net_side_area",
|
||||||
"Height": "get_height",
|
"Height": "get_height",
|
||||||
@@ -223,7 +240,7 @@
|
|||||||
"Width": "get_length"
|
"Width": "get_length"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDuctFitting": {
|
"IfcDuctFitting + IfcDuctFittingType": {
|
||||||
"Qto_DuctFittingBaseQuantities": {
|
"Qto_DuctFittingBaseQuantities": {
|
||||||
"GrossCrossSectionArea": null,
|
"GrossCrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -232,7 +249,7 @@
|
|||||||
"OuterSurfaceArea": "get_outer_surface_area"
|
"OuterSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDuctSegment": {
|
"IfcDuctSegment + IfcDuctSegmentType": {
|
||||||
"Qto_DuctSegmentBaseQuantities": {
|
"Qto_DuctSegmentBaseQuantities": {
|
||||||
"GrossCrossSectionArea": null,
|
"GrossCrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -241,78 +258,106 @@
|
|||||||
"OuterSurfaceArea": "get_outer_surface_area"
|
"OuterSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcDuctSilencer": {
|
"IfcDuctSilencer + IfcDuctSilencerType": {
|
||||||
"Qto_DuctSilencerBaseQuantities": {
|
"Qto_DuctSilencerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricAppliance": {
|
"IfcEarthworksCut": {
|
||||||
|
"Qto_EarthworksCutBaseQuantities": {
|
||||||
|
"Depth": null,
|
||||||
|
"Length": null,
|
||||||
|
"LooseVolume": null,
|
||||||
|
"UndisturbedVolume": null,
|
||||||
|
"Weight": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcEarthworksFill": {
|
||||||
|
"Qto_EarthworksFillBaseQuantities": {
|
||||||
|
"CompactedVolume": null,
|
||||||
|
"Depth": null,
|
||||||
|
"Length": null,
|
||||||
|
"LooseVolume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcElectricAppliance + IfcElectricApplianceType": {
|
||||||
"Qto_ElectricApplianceBaseQuantities": {
|
"Qto_ElectricApplianceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricDistributionBoard": {
|
"IfcElectricDistributionBoard + IfcElectricDistributionBoardType": {
|
||||||
"Qto_ElectricDistributionBoardBaseQuantities": {
|
"Qto_DistributionBoardBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NumberOfCircuits": null
|
"NumberOfCircuits": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricFlowStorageDevice": {
|
"IfcElectricFlowStorageDevice + IfcElectricFlowStorageDeviceType": {
|
||||||
"Qto_ElectricFlowStorageDeviceBaseQuantities": {
|
"Qto_ElectricFlowStorageDeviceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricGenerator": {
|
"IfcElectricGenerator + IfcElectricGeneratorType": {
|
||||||
"Qto_ElectricGeneratorBaseQuantities": {
|
"Qto_ElectricGeneratorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricMotor": {
|
"IfcElectricMotor + IfcElectricMotorType": {
|
||||||
"Qto_ElectricMotorBaseQuantities": {
|
"Qto_ElectricMotorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcElectricTimeControl": {
|
"IfcElectricTimeControl + IfcElectricTimeControlType": {
|
||||||
"Qto_ElectricTimeControlBaseQuantities": {
|
"Qto_ElectricTimeControlBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcEvaporativeCooler": {
|
"IfcEvaporativeCooler + IfcEvaporativeCoolerType": {
|
||||||
"Qto_EvaporativeCoolerBaseQuantities": {
|
"Qto_EvaporativeCoolerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcEvaporator": {
|
"IfcEvaporator + IfcEvaporatorType": {
|
||||||
"Qto_EvaporatorBaseQuantities": {
|
"Qto_EvaporatorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFan": {
|
"IfcFacilityPart": {
|
||||||
|
"Qto_FacilityPartBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcFan + IfcFanType": {
|
||||||
"Qto_FanBaseQuantities": {
|
"Qto_FanBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFilter": {
|
"IfcFilter + IfcFilterType": {
|
||||||
"Qto_FilterBaseQuantities": {
|
"Qto_FilterBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFireSuppressionTerminal": {
|
"IfcFireSuppressionTerminal + IfcFireSuppressionTerminalType": {
|
||||||
"Qto_FireSuppressionTerminalBaseQuantities": {
|
"Qto_FireSuppressionTerminalBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFlowInstrument": {
|
"IfcFlowInstrument + IfcFlowInstrumentType": {
|
||||||
"Qto_FlowInstrumentBaseQuantities": {
|
"Qto_FlowInstrumentBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFlowMeter": {
|
"IfcFlowMeter + IfcFlowMeterType": {
|
||||||
"Qto_FlowMeterBaseQuantities": {
|
"Qto_FlowMeterBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcFooting": {
|
"IfcFooting + IfcFootingType": {
|
||||||
"Qto_FootingBaseQuantities": {
|
"Qto_FootingBaseQuantities": {
|
||||||
"CrossSectionArea": "get_cross_section_area",
|
"CrossSectionArea": "get_cross_section_area",
|
||||||
"GrossSurfaceArea": "get_gross_surface_area",
|
"GrossSurfaceArea": "get_gross_surface_area",
|
||||||
@@ -326,44 +371,88 @@
|
|||||||
"Width": "get_width"
|
"Width": "get_width"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcHeatExchanger": {
|
"IfcGeotechnicalStratum": {
|
||||||
|
"Qto_ArealStratumBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Length": null,
|
||||||
|
"PlanLength": null
|
||||||
|
},
|
||||||
|
"Qto_LinearStratumBaseQuantities": {
|
||||||
|
"Diameter": null,
|
||||||
|
"Length": null
|
||||||
|
},
|
||||||
|
"Qto_VolumetricStratumBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Mass": null,
|
||||||
|
"PlanArea": null,
|
||||||
|
"Volume": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcHeatExchanger + IfcHeatExchangerType": {
|
||||||
"Qto_HeatExchangerBaseQuantities": {
|
"Qto_HeatExchangerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcHumidifier": {
|
"IfcHumidifier + IfcHumidifierType": {
|
||||||
"Qto_HumidifierBaseQuantities": {
|
"Qto_HumidifierBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcInterceptor": {
|
"IfcImpactProtectionDevice + IfcImpactProtectionDeviceType": {
|
||||||
|
"Qto_ImpactProtectionDeviceBaseQuantities": {
|
||||||
|
"Weight": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcInterceptor + IfcInterceptorType": {
|
||||||
"Qto_InterceptorBaseQuantities": {
|
"Qto_InterceptorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcJunctionBox": {
|
"IfcJunctionBox + IfcJunctionBoxType": {
|
||||||
"Qto_JunctionBoxBaseQuantities": {
|
"Qto_JunctionBoxBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NumberOfGangs": null
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"NumberOfGangs": null,
|
||||||
|
"Width": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcLaborResource": {
|
"IfcKerb + IfcKerbType": {
|
||||||
|
"Qto_KerbBaseQuantities": {
|
||||||
|
"Depth": null,
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Weight": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcLaborResource + IfcLaborResourceType": {
|
||||||
"Qto_LaborResourceBaseQuantities": {
|
"Qto_LaborResourceBaseQuantities": {
|
||||||
"OvertimeWork": null,
|
"OvertimeWork": null,
|
||||||
"StandardWork": null
|
"StandardWork": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcLamp": {
|
"IfcLamp + IfcLampType": {
|
||||||
"Qto_LampBaseQuantities": {
|
"Qto_LampBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcLightFixture": {
|
"IfcLightFixture + IfcLightFixtureType": {
|
||||||
"Qto_LightFixtureBaseQuantities": {
|
"Qto_LightFixtureBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcMember": {
|
"IfcMarineFacility": {
|
||||||
|
"Qto_MarineFacilityBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcMember + IfcMemberType": {
|
||||||
"Qto_MemberBaseQuantities": {
|
"Qto_MemberBaseQuantities": {
|
||||||
"CrossSectionArea": "get_cross_section_area",
|
"CrossSectionArea": "get_cross_section_area",
|
||||||
"GrossSurfaceArea": "get_gross_surface_area",
|
"GrossSurfaceArea": "get_gross_surface_area",
|
||||||
@@ -376,7 +465,7 @@
|
|||||||
"OuterSurfaceArea": "get_outer_surface_area"
|
"OuterSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcMotorConnection": {
|
"IfcMotorConnection + IfcMotorConnectionType": {
|
||||||
"Qto_MotorConnectionBaseQuantities": {
|
"Qto_MotorConnectionBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
@@ -390,12 +479,23 @@
|
|||||||
"Width": "get_length"
|
"Width": "get_length"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcOutlet": {
|
"IfcOutlet + IfcOutletType": {
|
||||||
"Qto_OutletBaseQuantities": {
|
"Qto_OutletBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPile": {
|
"IfcPavement + IfcPavementType": {
|
||||||
|
"Qto_PavementBaseQuantities": {
|
||||||
|
"Depth": null,
|
||||||
|
"GrossArea": null,
|
||||||
|
"GrossVolume": null,
|
||||||
|
"Length": null,
|
||||||
|
"NetArea": null,
|
||||||
|
"NetVolume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcPile + IfcPileType": {
|
||||||
"Qto_PileBaseQuantities": {
|
"Qto_PileBaseQuantities": {
|
||||||
"CrossSectionArea": "get_cross_section_area",
|
"CrossSectionArea": "get_cross_section_area",
|
||||||
"GrossSurfaceArea": "get_gross_surface_area",
|
"GrossSurfaceArea": "get_gross_surface_area",
|
||||||
@@ -407,7 +507,7 @@
|
|||||||
"OuterSurfaceArea": "get_outer_surface_area"
|
"OuterSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPipeFitting": {
|
"IfcPipeFitting + IfcPipeFittingType": {
|
||||||
"Qto_PipeFittingBaseQuantities": {
|
"Qto_PipeFittingBaseQuantities": {
|
||||||
"GrossCrossSectionArea": null,
|
"GrossCrossSectionArea": null,
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
@@ -417,8 +517,9 @@
|
|||||||
"OuterSurfaceArea": null
|
"OuterSurfaceArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPipeSegment": {
|
"IfcPipeSegment + IfcPipeSegmentType": {
|
||||||
"Qto_PipeSegmentBaseQuantities": {
|
"Qto_PipeSegmentBaseQuantities": {
|
||||||
|
"FootPrintArea": null,
|
||||||
"GrossCrossSectionArea": null,
|
"GrossCrossSectionArea": null,
|
||||||
"GrossWeight": "get_gross_weight",
|
"GrossWeight": "get_gross_weight",
|
||||||
"Length": "get_length",
|
"Length": "get_length",
|
||||||
@@ -427,7 +528,7 @@
|
|||||||
"OuterSurfaceArea": "get_outer_surface_area"
|
"OuterSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPlate": {
|
"IfcPlate + IfcPlateType": {
|
||||||
"Qto_PlateBaseQuantities": {
|
"Qto_PlateBaseQuantities": {
|
||||||
"GrossArea": "get_gross_footprint_area",
|
"GrossArea": "get_gross_footprint_area",
|
||||||
"GrossVolume": "get_gross_volume",
|
"GrossVolume": "get_gross_volume",
|
||||||
@@ -439,33 +540,50 @@
|
|||||||
"Width": "get_height"
|
"Width": "get_height"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"IfcProduct": {
|
||||||
|
"Qto_BodyGeometryValidation": {
|
||||||
|
"GrossSurfaceArea": null,
|
||||||
|
"GrossVolume": null,
|
||||||
|
"NetSurfaceArea": null,
|
||||||
|
"NetVolume": null,
|
||||||
|
"SurfaceGenusAfterFeatures": null,
|
||||||
|
"SurfaceGenusBeforeFeatures": null
|
||||||
|
}
|
||||||
|
},
|
||||||
"IfcProjectionElement": {
|
"IfcProjectionElement": {
|
||||||
"Qto_ProjectionElementBaseQuantities": {
|
"Qto_ProjectionElementBaseQuantities": {
|
||||||
"Area": "get_net_side_area",
|
"Area": "get_net_side_area",
|
||||||
"Volume": "get_net_volume"
|
"Volume": "get_net_volume"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcProtectiveDevice": {
|
"IfcProtectiveDevice + IfcProtectiveDeviceType": {
|
||||||
"Qto_ProtectiveDeviceBaseQuantities": {
|
"Qto_ProtectiveDeviceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcProtectiveDeviceTrippingUnit": {
|
"IfcProtectiveDeviceTrippingUnit + IfcProtectiveDeviceTrippingUnitType": {
|
||||||
"Qto_ProtectiveDeviceTrippingUnitBaseQuantities": {
|
"Qto_ProtectiveDeviceTrippingUnitBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcPump": {
|
"IfcPump + IfcPumpType": {
|
||||||
"Qto_PumpBaseQuantities": {
|
"Qto_PumpBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcRailing": {
|
"IfcRail + IfcRailType": {
|
||||||
|
"Qto_RailBaseQuantities": {
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Weight": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcRailing + IfcRailingType": {
|
||||||
"Qto_RailingBaseQuantities": {
|
"Qto_RailingBaseQuantities": {
|
||||||
"Length": "get_length"
|
"Length": "get_length"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcRampFlight": {
|
"IfcRampFlight + IfcRampFlightType": {
|
||||||
"Qto_RampFlightBaseQuantities": {
|
"Qto_RampFlightBaseQuantities": {
|
||||||
"GrossArea": "get_gross_stair_area",
|
"GrossArea": "get_gross_stair_area",
|
||||||
"GrossVolume": "get_gross_volume",
|
"GrossVolume": "get_gross_volume",
|
||||||
@@ -475,37 +593,65 @@
|
|||||||
"Width": "get_width"
|
"Width": "get_width"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcReinforcingElement": {
|
"IfcReinforcedSoil": {
|
||||||
|
"Qto_ReinforcedSoilBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Depth": null,
|
||||||
|
"Length": null,
|
||||||
|
"Volume": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcReinforcingElement + IfcReinforcingElementType": {
|
||||||
"Qto_ReinforcingElementBaseQuantities": {
|
"Qto_ReinforcingElementBaseQuantities": {
|
||||||
"Count": null,
|
"Count": null,
|
||||||
"Length": "get_length",
|
"Length": "get_length",
|
||||||
"Weight": null
|
"Weight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcRoof": {
|
"IfcRoof + IfcRoofType": {
|
||||||
"Qto_RoofBaseQuantities": {
|
"Qto_RoofBaseQuantities": {
|
||||||
"GrossArea": "get_gross_top_area",
|
"GrossArea": "get_gross_top_area",
|
||||||
"NetArea": "get_net_top_area",
|
"NetArea": "get_net_top_area",
|
||||||
"ProjectedArea": null
|
"ProjectedArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSanitaryTerminal": {
|
"IfcSanitaryTerminal + IfcSanitaryTerminalType": {
|
||||||
"Qto_SanitaryTerminalBaseQuantities": {
|
"Qto_SanitaryTerminalBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSensor": {
|
"IfcSensor + IfcSensorType": {
|
||||||
"Qto_SensorBaseQuantities": {
|
"Qto_SensorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"IfcSign + IfcSignType": {
|
||||||
|
"Qto_SignBaseQuantities": {
|
||||||
|
"Height": null,
|
||||||
|
"Thickness": null,
|
||||||
|
"Weight": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcSign, PredefinedType=\"PICTORAL\" + IfcSignType, PredefinedType=\"PICTORAL\"": {
|
||||||
|
"Qto_PictorialSignQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"SignArea": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcSignal + IfcSignalType": {
|
||||||
|
"Qto_SignalBaseQuantities": {
|
||||||
|
"Weight": null
|
||||||
|
}
|
||||||
|
},
|
||||||
"IfcSite": {
|
"IfcSite": {
|
||||||
"Qto_SiteBaseQuantities": {
|
"Qto_SiteBaseQuantities": {
|
||||||
"GrossArea": "get_gross_footprint_area",
|
"GrossArea": "get_gross_footprint_area",
|
||||||
"GrossPerimeter": "get_gross_perimeter"
|
"GrossPerimeter": "get_gross_perimeter"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSlab": {
|
"IfcSlab + IfcSlabType": {
|
||||||
"Qto_SlabBaseQuantities": {
|
"Qto_SlabBaseQuantities": {
|
||||||
"Depth": "get_height",
|
"Depth": "get_height",
|
||||||
"GrossArea": "get_gross_footprint_area",
|
"GrossArea": "get_gross_footprint_area",
|
||||||
@@ -519,13 +665,13 @@
|
|||||||
"Width": "get_width"
|
"Width": "get_width"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSolarDevice": {
|
"IfcSolarDevice + IfcSolarDeviceType": {
|
||||||
"Qto_SolarDeviceBaseQuantities": {
|
"Qto_SolarDeviceBaseQuantities": {
|
||||||
"GrossArea": null,
|
"GrossArea": null,
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSpace": {
|
"IfcSpace + IfcSpaceType": {
|
||||||
"Qto_SpaceBaseQuantities": {
|
"Qto_SpaceBaseQuantities": {
|
||||||
"FinishCeilingHeight": "get_finish_ceiling_height",
|
"FinishCeilingHeight": "get_finish_ceiling_height",
|
||||||
"FinishFloorHeight": "get_finish_floor_height",
|
"FinishFloorHeight": "get_finish_floor_height",
|
||||||
@@ -542,89 +688,116 @@
|
|||||||
"NetWallArea": null
|
"NetWallArea": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSpaceHeater": {
|
"IfcSpaceHeater + IfcSpaceHeaterType": {
|
||||||
"Qto_SpaceHeaterBaseQuantities": {
|
"Qto_SpaceHeaterBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"Length": "get_length",
|
"Length": "get_length",
|
||||||
"NetWeight": null
|
"NetWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcStackTerminal": {
|
"IfcSpatialZone + IfcSpatialZoneType": {
|
||||||
|
"Qto_SpatialZoneBaseQuantities": {
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcStackTerminal + IfcStackTerminalType": {
|
||||||
"Qto_StackTerminalBaseQuantities": {
|
"Qto_StackTerminalBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcStairFlight": {
|
"IfcStairFlight + IfcStairFlightType": {
|
||||||
"Qto_StairFlightBaseQuantities": {
|
"Qto_StairFlightBaseQuantities": {
|
||||||
"GrossVolume": "get_gross_volume",
|
"GrossVolume": "get_gross_volume",
|
||||||
"Length": "get_stair_length",
|
"Length": "get_stair_length",
|
||||||
"NetVolume": "get_net_volume"
|
"NetVolume": "get_net_volume"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcSwitchingDevice": {
|
"IfcSurfaceFeature": {
|
||||||
|
"Qto_SurfaceFeatureBaseQuantities": {
|
||||||
|
"Area": null,
|
||||||
|
"Length": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcSwitchingDevice + IfcSwitchingDeviceType": {
|
||||||
"Qto_SwitchingDeviceBaseQuantities": {
|
"Qto_SwitchingDeviceBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcTank": {
|
"IfcTank + IfcTankType": {
|
||||||
"Qto_TankBaseQuantities": {
|
"Qto_TankBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NetWeight": null,
|
"NetWeight": null,
|
||||||
"TotalSurfaceArea": "get_outer_surface_area"
|
"TotalSurfaceArea": "get_outer_surface_area"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcTransformer": {
|
"IfcTrackElement, PredefinedType=\"SLEEPER\" + IfcTrackElementType, PredefinedType=\"SLEEPER\"": {
|
||||||
|
"Qto_SleeperBaseQuantities": {
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcTransformer + IfcTransformerType": {
|
||||||
"Qto_TransformerBaseQuantities": {
|
"Qto_TransformerBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcTubeBundle": {
|
"IfcTubeBundle + IfcTubeBundleType": {
|
||||||
"Qto_TubeBundleBaseQuantities": {
|
"Qto_TubeBundleBaseQuantities": {
|
||||||
"GrossWeight": null,
|
"GrossWeight": null,
|
||||||
"NetWeight": null
|
"NetWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcUnitaryControlElement": {
|
"IfcUnitaryControlElement + IfcUnitaryControlElementType": {
|
||||||
"Qto_UnitaryControlElementBaseQuantities": {
|
"Qto_UnitaryControlElementBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcUnitaryEquipment": {
|
"IfcUnitaryEquipment + IfcUnitaryEquipmentType": {
|
||||||
"Qto_UnitaryEquipmentBaseQuantities": {
|
"Qto_UnitaryEquipmentBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcValve": {
|
"IfcValve + IfcValveType": {
|
||||||
"Qto_ValveBaseQuantities": {
|
"Qto_ValveBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcVibrationIsolator": {
|
"IfcVehicle, PredefinedType=\"ROLLINGSTOCK\" + IfcVehicle, PredefinedType=\"VEHICLEAIR\" + IfcVehicle, PredefinedType=\"VEHICLEMARINE\" + IfcVehicle, PredefinedType=\"VEHICLE\" + IfcVehicle, PredefinedType=\"VEHICLETRACKED\" + IfcVehicleType, PredefinedType=\"ROLLINGSTOCK\" + IfcVehicleType, PredefinedType=\"VEHICLEAIR\" + IfcVehicleType, PredefinedType=\"VEHICLEMARINE\" + IfcVehicleType, PredefinedType=\"VEHICLE\" + IfcVehicleType, PredefinedType=\"VEHICLETRACKED\"": {
|
||||||
|
"Qto_VehicleBaseQuantities": {
|
||||||
|
"Height": null,
|
||||||
|
"Length": null,
|
||||||
|
"Width": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IfcVibrationIsolator + IfcVibrationIsolatorType": {
|
||||||
"Qto_VibrationIsolatorBaseQuantities": {
|
"Qto_VibrationIsolatorBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcWall": {
|
"IfcWall + IfcWallType": {
|
||||||
"Qto_WallBaseQuantities": {
|
"Qto_WallBaseQuantities": {
|
||||||
"GrossFootprintArea": "get_gross_footprint_area",
|
"GrossFootPrintArea": null,
|
||||||
"GrossSideArea": "get_gross_side_area",
|
"GrossSideArea": "get_gross_side_area",
|
||||||
"GrossVolume": "get_gross_volume",
|
"GrossVolume": "get_gross_volume",
|
||||||
"GrossWeight": "get_gross_weight",
|
"GrossWeight": "get_gross_weight",
|
||||||
"Height": "get_height",
|
"Height": "get_height",
|
||||||
"Length": "get_x",
|
"Length": "get_x",
|
||||||
"NetFootprintArea": "get_net_footprint_area",
|
"NetFootPrintArea": null,
|
||||||
"NetSideArea": "get_net_side_area",
|
"NetSideArea": "get_net_side_area",
|
||||||
"NetVolume": "get_net_volume",
|
"NetVolume": "get_net_volume",
|
||||||
"NetWeight": "get_net_weight",
|
"NetWeight": "get_net_weight",
|
||||||
"Width": "get_width"
|
"Width": "get_width"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcWasteTerminal": {
|
"IfcWasteTerminal + IfcWasteTerminalType": {
|
||||||
"Qto_WasteTerminalBaseQuantities": {
|
"Qto_WasteTerminalBaseQuantities": {
|
||||||
"GrossWeight": null
|
"GrossWeight": null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"IfcWindow": {
|
"IfcWindow + IfcWindowType": {
|
||||||
"Qto_WindowBaseQuantities": {
|
"Qto_WindowBaseQuantities": {
|
||||||
"Area": "get_net_side_area",
|
"Area": "get_net_side_area",
|
||||||
"Height": "get_height",
|
"Height": "get_height",
|
||||||
|
|||||||
@@ -35,7 +35,12 @@ from typing import Any, Literal, get_args, Union, Iterable
|
|||||||
|
|
||||||
|
|
||||||
Function = namedtuple("Function", ["measure", "name", "description"])
|
Function = namedtuple("Function", ["measure", "name", "description"])
|
||||||
RULE_SET = Literal["IFC4QtoBaseQuantities", "IFC4QtoBaseQuantitiesBlender"]
|
RULE_SET = Literal[
|
||||||
|
"IFC4QtoBaseQuantities",
|
||||||
|
"IFC4QtoBaseQuantitiesBlender",
|
||||||
|
"IFC4X3QtoBaseQuantities",
|
||||||
|
"IFC4X3QtoBaseQuantitiesBlender",
|
||||||
|
]
|
||||||
rules: dict[RULE_SET, dict[str, Any]] = {}
|
rules: dict[RULE_SET, dict[str, Any]] = {}
|
||||||
ResultsDict = dict[ifcopenshell.entity_instance, dict[str, dict[str, float]]]
|
ResultsDict = dict[ifcopenshell.entity_instance, dict[str, dict[str, float]]]
|
||||||
QtosFormulas = dict[str, dict[str, str]]
|
QtosFormulas = dict[str, dict[str, str]]
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import ifcopenshell.util.schema
|
|||||||
import ifcopenshell.util.type
|
import ifcopenshell.util.type
|
||||||
from ifcopenshell.entity_instance import entity_instance
|
from ifcopenshell.entity_instance import entity_instance
|
||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from typing import Optional, Literal
|
from typing import Optional, Literal, NamedTuple, Union
|
||||||
|
|
||||||
templates: dict[str, "PsetQto"] = {}
|
templates: dict[str, "PsetQto"] = {}
|
||||||
|
|
||||||
@@ -111,11 +111,17 @@ class PsetQto:
|
|||||||
template_type: str = "NOTDEFINED",
|
template_type: str = "NOTDEFINED",
|
||||||
schema: ifcopenshell.util.schema.IFC_SCHEMA = "IFC4",
|
schema: ifcopenshell.util.schema.IFC_SCHEMA = "IFC4",
|
||||||
) -> bool:
|
) -> bool:
|
||||||
"""applicables can have multiple possible patterns :
|
"""
|
||||||
IfcBoilerType (IfcClass)
|
|
||||||
IfcBoilerType/STEAM (IfcClass/PREDEFINEDTYPE)
|
applicables can have multiple possible patterns :
|
||||||
IfcBoilerType[PerformanceHistory] (IfcClass[PerformanceHistory])
|
|
||||||
IfcBoilerType/STEAM[PerformanceHistory] (IfcClass/PREDEFINEDTYPE[PerformanceHistory])
|
.. code-block:: text
|
||||||
|
|
||||||
|
IfcBoilerType (IfcClass)
|
||||||
|
IfcBoilerType/STEAM (IfcClass/PREDEFINEDTYPE)
|
||||||
|
IfcBoilerType[PerformanceHistory] (IfcClass[PerformanceHistory])
|
||||||
|
IfcBoilerType/STEAM[PerformanceHistory] (IfcClass/PREDEFINEDTYPE[PerformanceHistory])
|
||||||
|
|
||||||
"""
|
"""
|
||||||
for applicable in applicables.split(","):
|
for applicable in applicables.split(","):
|
||||||
match = re.match(r"(\w+)(\[\w+\])*/*(\w+)*(\[\w+\])*", applicable)
|
match = re.match(r"(\w+)(\[\w+\])*/*(\w+)*(\[\w+\])*", applicable)
|
||||||
@@ -194,3 +200,37 @@ def get_pset_template_type(pset_template: entity_instance) -> Literal["PSET", "Q
|
|||||||
|
|
||||||
pset_type = next(iter(pset_types)) if len(pset_types) == 1 else None
|
pset_type = next(iter(pset_types)) if len(pset_types) == 1 else None
|
||||||
return pset_type
|
return pset_type
|
||||||
|
|
||||||
|
|
||||||
|
class ApplicableEntity(NamedTuple):
|
||||||
|
value: str
|
||||||
|
ifc_class: str
|
||||||
|
predefined_type: Union[str, None]
|
||||||
|
performance_history: bool
|
||||||
|
|
||||||
|
|
||||||
|
def parse_applicable_entity(applicable_entity: str) -> list[ApplicableEntity]:
|
||||||
|
"""Parse ApplicableEntity string query to tuples.
|
||||||
|
|
||||||
|
:param applicable_entity: IfcPropertySetTemplate.ApplicableEntity query.
|
||||||
|
:return: List of ApplicableEntity tuples.
|
||||||
|
"""
|
||||||
|
items: list[ApplicableEntity] = []
|
||||||
|
for item in applicable_entity.split(","):
|
||||||
|
value = item
|
||||||
|
item, predefined_type = parts if len(parts := item.split("/")) > 1 else (item, None)
|
||||||
|
ifc_class, performance_history = (parts[0], True) if len(parts := item.split("[")) > 1 else (item, False)
|
||||||
|
items.append(ApplicableEntity(value, ifc_class, predefined_type, performance_history))
|
||||||
|
return items
|
||||||
|
|
||||||
|
|
||||||
|
def convert_applicable_entities_to_query(applicable_entities: list[ApplicableEntity]) -> str:
|
||||||
|
"""Get query supported by :func:`ifcopenshell.util.selector.filter_elements`."""
|
||||||
|
parts: list[str] = []
|
||||||
|
for entity in applicable_entities:
|
||||||
|
# NOTE: selector currently doesn't support checking if element has performance history.
|
||||||
|
part = entity.ifc_class
|
||||||
|
if entity.predefined_type:
|
||||||
|
part += f', PredefinedType="{entity.predefined_type}"'
|
||||||
|
parts.append(part)
|
||||||
|
return " + ".join(parts)
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
"""Run this test from src/ifcopenshell-python folder: pytest --durations=0 ifcopenshell/util/test_pset.py"""
|
"""Run this test from src/ifcopenshell-python folder: pytest --durations=0 ifcopenshell/util/test_pset.py"""
|
||||||
from ifcopenshell.util import pset
|
from ifcopenshell.util import pset
|
||||||
from ifcopenshell import util
|
from ifcopenshell import util
|
||||||
|
from ifcopenshell.util.pset import ApplicableEntity
|
||||||
|
|
||||||
|
|
||||||
class TestPsetQto:
|
class TestPsetQto:
|
||||||
@@ -66,3 +67,72 @@ class TestPsetQto:
|
|||||||
assert "Pset_MaterialConcrete" not in names
|
assert "Pset_MaterialConcrete" not in names
|
||||||
names = self.pset_qto.get_applicable_names("IfcMaterial", "concrete")
|
names = self.pset_qto.get_applicable_names("IfcMaterial", "concrete")
|
||||||
assert "Pset_MaterialConcrete" in names
|
assert "Pset_MaterialConcrete" in names
|
||||||
|
|
||||||
|
|
||||||
|
class TestParseApplicableEntity:
|
||||||
|
def test_run(self):
|
||||||
|
assert pset.parse_applicable_entity("IfcBoilerType") == [
|
||||||
|
ApplicableEntity("IfcBoilerType", "IfcBoilerType", None, False)
|
||||||
|
]
|
||||||
|
|
||||||
|
def test_two_entities(self):
|
||||||
|
assert pset.parse_applicable_entity("IfcBoilerType,IfcWallType") == [
|
||||||
|
ApplicableEntity("IfcBoilerType", "IfcBoilerType", None, False),
|
||||||
|
ApplicableEntity("IfcWallType", "IfcWallType", None, False),
|
||||||
|
]
|
||||||
|
|
||||||
|
def test_two_entities_with_performance_history(self):
|
||||||
|
assert pset.parse_applicable_entity("IfcBoilerType[PerformanceHistory],IfcWallType") == [
|
||||||
|
ApplicableEntity("IfcBoilerType[PerformanceHistory]", "IfcBoilerType", None, True),
|
||||||
|
ApplicableEntity("IfcWallType", "IfcWallType", None, False),
|
||||||
|
]
|
||||||
|
|
||||||
|
def test_two_entities_with_predefined_type(self):
|
||||||
|
assert pset.parse_applicable_entity("IfcBoilerType/STEAM,IfcWallType") == [
|
||||||
|
ApplicableEntity("IfcBoilerType/STEAM", "IfcBoilerType", "STEAM", False),
|
||||||
|
ApplicableEntity("IfcWallType", "IfcWallType", None, False),
|
||||||
|
]
|
||||||
|
|
||||||
|
def test_two_entities_with_predefined_type_and_performance_history(self):
|
||||||
|
assert pset.parse_applicable_entity("IfcBoilerType[PerformanceHistory]/STEAM,IfcWallType") == [
|
||||||
|
ApplicableEntity("IfcBoilerType[PerformanceHistory]/STEAM", "IfcBoilerType", "STEAM", True),
|
||||||
|
ApplicableEntity("IfcWallType", "IfcWallType", None, False),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class TestConvertApplicableEntitiesToQuery:
|
||||||
|
def test_run(self):
|
||||||
|
entities = [ApplicableEntity("IfcBoilerType", "IfcBoilerType", None, False)]
|
||||||
|
assert pset.convert_applicable_entities_to_query(entities) == "IfcBoilerType"
|
||||||
|
|
||||||
|
def test_two_entities(self):
|
||||||
|
entities = [
|
||||||
|
ApplicableEntity("IfcBoilerType", "IfcBoilerType", None, False),
|
||||||
|
ApplicableEntity("IfcWallType", "IfcWallType", None, False),
|
||||||
|
]
|
||||||
|
assert pset.convert_applicable_entities_to_query(entities) == "IfcBoilerType + IfcWallType"
|
||||||
|
|
||||||
|
def test_two_entities_with_performance_history(self):
|
||||||
|
entities = [
|
||||||
|
ApplicableEntity("IfcBoilerType[PerformanceHistory]", "IfcBoilerType", None, True),
|
||||||
|
ApplicableEntity("IfcWallType", "IfcWallType", None, False),
|
||||||
|
]
|
||||||
|
assert pset.convert_applicable_entities_to_query(entities) == "IfcBoilerType + IfcWallType"
|
||||||
|
|
||||||
|
def test_two_entities_with_predefined_type(self):
|
||||||
|
entities = [
|
||||||
|
ApplicableEntity("IfcBoilerType/STEAM", "IfcBoilerType", "STEAM", False),
|
||||||
|
ApplicableEntity("IfcWallType", "IfcWallType", None, False),
|
||||||
|
]
|
||||||
|
assert (
|
||||||
|
pset.convert_applicable_entities_to_query(entities) == 'IfcBoilerType, PredefinedType="STEAM" + IfcWallType'
|
||||||
|
)
|
||||||
|
|
||||||
|
def test_two_entities_with_predefined_type_and_performance_history(self):
|
||||||
|
entities = [
|
||||||
|
ApplicableEntity("IfcBoilerType[PerformanceHistory]/STEAM", "IfcBoilerType", "STEAM", True),
|
||||||
|
ApplicableEntity("IfcWallType", "IfcWallType", None, False),
|
||||||
|
]
|
||||||
|
assert (
|
||||||
|
pset.convert_applicable_entities_to_query(entities) == 'IfcBoilerType, PredefinedType="STEAM" + IfcWallType'
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user