diff --git a/src/assets/ifc_detailed_objects 1.json b/src/assets/ifc_detailed_objects 1.json new file mode 100644 index 0000000..c0743ae --- /dev/null +++ b/src/assets/ifc_detailed_objects 1.json @@ -0,0 +1,2204 @@ +{ + "224": { + "class": "IfcBuildingElementProxy", + "name": "HOM_00_SI_nulpunt:nulpunt:2719896", + "globalId": "25NgEvvMDArQb1XNKc728G", + "psets": { + "Pset_BuildingElementProxyCommon": { + "Reference": "nulpunt" + }, + "Pset_ProductRequirements": { + "Category": "Site" + }, + "Pset_QuantityTakeOff": { + "Reference": "nulpunt" + }, + "Pset_ProvisionForVoid": { + "Width": 1000.0000000000001, + "Height": 1000.0000000000002, + "Depth": 1000.0000000000002 + }, + "ASML": { + "3.4 Entiteit": "Site", + "3.5 Naamgeving element": "nulpunt", + "3.5 Omschrijving": "Project nulpunt", + "3.6 NL-SfB code": "0.0" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond" + } + } + }, + "9572": { + "class": "IfcBuildingElementProxy", + "name": "Mileu container:Mileu container:8494062", + "globalId": "0ah_Oqfr1BAe1bMGUY3W$h", + "psets": { + "Pset_BuildingElementProxyCommon": { + "Reference": "Mileu container" + }, + "Pset_ProductRequirements": { + "Category": "Generic Models" + }, + "Pset_QuantityTakeOff": { + "Reference": "Mileu container" + }, + "Pset_ProvisionForVoid": { + "Width": 2959.999999999999, + "Height": 125.00000000000028, + "Depth": 125.00000000000028 + }, + "ASML": { + "3.4 Entiteit": "Generic Models", + "3.5 Naamgeving element": "Mileu container" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 0.0 + } + } + }, + "159003": { + "class": "IfcBuildingElementProxy", + "name": "WBEVR 800x800:Type 1:8533085", + "globalId": "0HMnQrktvAywf7bj1W10pY", + "psets": { + "Pset_BuildingElementProxyCommon": { + "Reference": "Type 1" + }, + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "Type 1" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.5 Naamgeving element": "Type 1", + "3.5 Type": "-", + "4.7 Materiaal": "Material ", + "4.8 Leverancier/fabrikant": "WBFP", + "Q Gewicht": 11.0 + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 1100.0 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "WBFP" + } + } + }, + "159042": { + "class": "IfcBuildingElementProxy", + "name": "WBEVR 800x800:Type 1:8533099", + "globalId": "0HMnQrktvAywf7bj1W10pK", + "psets": { + "Pset_BuildingElementProxyCommon": { + "Reference": "Type 1" + }, + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "Type 1" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.5 Naamgeving element": "Type 1", + "3.5 Type": "-", + "4.7 Materiaal": "Material ", + "4.8 Leverancier/fabrikant": "WBFP", + "Q Gewicht": 11.0 + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 1100.0 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "WBFP" + } + } + }, + "159068": { + "class": "IfcBuildingElementProxy", + "name": "WBEVR 800x800:Type 1:8533138", + "globalId": "0HMnQrktvAywf7bj1W10mj", + "psets": { + "Pset_BuildingElementProxyCommon": { + "Reference": "Type 1" + }, + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "Type 1" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.5 Naamgeving element": "Type 1", + "3.5 Type": "-", + "4.7 Materiaal": "Material ", + "4.8 Leverancier/fabrikant": "WBFP", + "Q Gewicht": 11.0 + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 1100.0 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "WBFP" + } + } + }, + "159094": { + "class": "IfcBuildingElementProxy", + "name": "WBEVR 800x800:Type 1:8533169", + "globalId": "0HMnQrktvAywf7bj1W10mE", + "psets": { + "Pset_BuildingElementProxyCommon": { + "Reference": "Type 1" + }, + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "Type 1" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.5 Naamgeving element": "Type 1", + "3.5 Type": "-", + "4.7 Materiaal": "Material ", + "4.8 Leverancier/fabrikant": "WBFP", + "Q Gewicht": 11.0 + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 2908.3494074944547 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "WBFP" + } + } + }, + "159120": { + "class": "IfcBuildingElementProxy", + "name": "WBEVR 800x800:Type 1:8533209", + "globalId": "0HMnQrktvAywf7bj1W10nc", + "psets": { + "Pset_BuildingElementProxyCommon": { + "Reference": "Type 1" + }, + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "Type 1" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.5 Naamgeving element": "Type 1", + "3.5 Type": "-", + "4.7 Materiaal": "Material ", + "4.8 Leverancier/fabrikant": "WBFP", + "Q Gewicht": 11.0 + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 2908.3494074944547 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "WBFP" + } + } + }, + "159423": { + "class": "IfcBuildingElementProxy", + "name": "Filterbox-flf-125, f7 filter:Filterbox-flf-125, f7 filter:8537160", + "globalId": "00krGEx4z21PrJFA26NmMJ", + "psets": { + "Pset_BuildingElementProxyCommon": { + "Reference": "Filterbox-flf-125, f7 filter" + }, + "Pset_ProductRequirements": { + "Category": "Duct Accessories" + }, + "Pset_QuantityTakeOff": { + "Reference": "Filterbox-flf-125, f7 filter" + }, + "Pset_ProvisionForVoid": { + "Width": 205.0, + "Height": 212.0, + "Depth": 212.0 + }, + "ASML": { + "3.4 Entiteit": "Duct Accessories", + "3.5 Naamgeving element": "Filterbox-flf-125, f7 filter", + "4.8 B Merk": "Filterbox-flf-125, F7 filter" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 1500.0488789558253 + } + } + }, + "9378": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond bocht_Luka:gladde_bocht verzinkt_staal:8463397", + "globalId": "2eqJmstJj2Seg4CHQrDdVR", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "gladde_bocht verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "gladde_bocht verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "BEND", + "3.5 Naamgeving element": "gladde_bocht verzinkt_staal", + "3.5 Omschrijving": "Rond - bochtstuk, radius 100 of D of 1,5xD", + "3.5 Omschrijving_Ifc": "Rond - bochtstuk, radius 100 of D of 1,5xD", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.0000000000036 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "9424": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond bocht_Luka:gladde_bocht verzinkt_staal:8463399", + "globalId": "2eqJmstJj2Seg4CHQrDdVP", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "gladde_bocht verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "gladde_bocht verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "BEND", + "3.5 Naamgeving element": "gladde_bocht verzinkt_staal", + "3.5 Omschrijving": "Rond - bochtstuk, radius 100 of D of 1,5xD", + "3.5 Omschrijving_Ifc": "Rond - bochtstuk, radius 100 of D of 1,5xD", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 362.4999999984531 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "10224": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond bocht_Luka:gladde_bocht verzinkt_staal:8502955", + "globalId": "1uoH3P9D17Awy11r$ze3ea", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "gladde_bocht verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "gladde_bocht verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "BEND", + "3.5 Naamgeving element": "gladde_bocht verzinkt_staal", + "3.5 Omschrijving": "Rond - bochtstuk, radius 100 of D of 1,5xD", + "3.5 Omschrijving_Ifc": "Rond - bochtstuk, radius 100 of D of 1,5xD", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.0000000000045 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "10444": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond verloop buis_Luka:verzinkt_staal:8502957", + "globalId": "1uoH3P9D17Awy11r$ze3eY", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "TRANSITION", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - verloopstuk tbv kanalen", + "3.5 Omschrijving_Ifc": "Rond - verloopstuk tbv kanalen", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "12316": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond koppelstuk-SH_Luka:verzinkt_staal:8502959", + "globalId": "1uoH3P9D17Awy11r$ze3eW", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "CONNECTOR", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - koppelstuk tbv hulpstukken", + "3.5 Omschrijving_Ifc": "Rond - koppelstuk tbv hulpstukken", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_roestvast staal 304(1.4301)", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "19468": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond verloop buis_Luka:verzinkt_staal:8503045", + "globalId": "1uoH3P9D17Awy11r$ze3kA", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "TRANSITION", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - verloopstuk tbv kanalen", + "3.5 Omschrijving_Ifc": "Rond - verloopstuk tbv kanalen", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.000000000034 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "19499": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond koppelstuk-SH_Luka:verzinkt_staal:8503047", + "globalId": "1uoH3P9D17Awy11r$ze3k8", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "CONNECTOR", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - koppelstuk tbv hulpstukken", + "3.5 Omschrijving_Ifc": "Rond - koppelstuk tbv hulpstukken", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_roestvast staal 304(1.4301)", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "19757": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond verloop buis_Luka:verzinkt_staal:8503050", + "globalId": "1uoH3P9D17Awy11r$ze3k5", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "TRANSITION", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - verloopstuk tbv kanalen", + "3.5 Omschrijving_Ifc": "Rond - verloopstuk tbv kanalen", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.0000000000055 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "21634": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond koppelstuk-SH_Luka:verzinkt_staal:8503052", + "globalId": "1uoH3P9D17Awy11r$ze3k3", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "CONNECTOR", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - koppelstuk tbv hulpstukken", + "3.5 Omschrijving_Ifc": "Rond - koppelstuk tbv hulpstukken", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_roestvast staal 304(1.4301)", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000002 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "32837": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond verloop buis_Luka:verzinkt_staal:8504556", + "globalId": "1uoH3P9D17Awy11r$ze41Z", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "TRANSITION", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - verloopstuk tbv kanalen", + "3.5 Omschrijving_Ifc": "Rond - verloopstuk tbv kanalen", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.000000000034 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "34699": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond koppelstuk-SH_Luka:verzinkt_staal:8504558", + "globalId": "1uoH3P9D17Awy11r$ze41X", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "CONNECTOR", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - koppelstuk tbv hulpstukken", + "3.5 Omschrijving_Ifc": "Rond - koppelstuk tbv hulpstukken", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_roestvast staal 304(1.4301)", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "34970": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond verloop buis_Luka:verzinkt_staal:8504561", + "globalId": "1uoH3P9D17Awy11r$ze41_", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "TRANSITION", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - verloopstuk tbv kanalen", + "3.5 Omschrijving_Ifc": "Rond - verloopstuk tbv kanalen", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.0000000000055 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "36847": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond koppelstuk-SH_Luka:verzinkt_staal:8504563", + "globalId": "1uoH3P9D17Awy11r$ze41y", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "CONNECTOR", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - koppelstuk tbv hulpstukken", + "3.5 Omschrijving_Ifc": "Rond - koppelstuk tbv hulpstukken", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_roestvast staal 304(1.4301)", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000002 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159189": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond verloop buis_Luka:verzinkt_staal:8535961", + "globalId": "00krGEx4z21PrJFA26Ntv2", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "TRANSITION", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - verloopstuk tbv kanalen", + "3.5 Omschrijving_Ifc": "Rond - verloopstuk tbv kanalen", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000002 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159220": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond koppelstuk-SH_Luka:verzinkt_staal:8535963", + "globalId": "00krGEx4z21PrJFA26Ntv0", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "CONNECTOR", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - koppelstuk tbv hulpstukken", + "3.5 Omschrijving_Ifc": "Rond - koppelstuk tbv hulpstukken", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_roestvast staal 304(1.4301)", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000002 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159332": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond verloop buis_Luka:verzinkt_staal:8537153", + "globalId": "00krGEx4z21PrJFA26NmMQ", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "TRANSITION", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - verloopstuk tbv kanalen", + "3.5 Omschrijving_Ifc": "Rond - verloopstuk tbv kanalen", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 1781.8789813598557 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159363": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond koppelstuk-SH_Luka:verzinkt_staal:8537156", + "globalId": "00krGEx4z21PrJFA26NmMV", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "CONNECTOR", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - koppelstuk tbv hulpstukken", + "3.5 Omschrijving_Ifc": "Rond - koppelstuk tbv hulpstukken", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_roestvast staal 304(1.4301)", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 2379.228981359857 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159508": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond verloop buis_Luka:verzinkt_staal:8537251", + "globalId": "00krGEx4z21PrJFA26NmLu", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "TRANSITION", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - verloopstuk tbv kanalen", + "3.5 Omschrijving_Ifc": "Rond - verloopstuk tbv kanalen", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_staal Sendzimir verzinkt", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 1220.0895026278201 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159539": { + "class": "IfcFlowFitting", + "name": "NLRS_57_DUF_UN_rond koppelstuk-SH_Luka:verzinkt_staal:8537253", + "globalId": "00krGEx4z21PrJFA26NmL_", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "verzinkt_staal" + }, + "Pset_ProductRequirements": { + "Category": "Duct Fittings" + }, + "Pset_QuantityTakeOff": { + "Reference": "verzinkt_staal" + }, + "ASML": { + "3.4 Entiteit": "Duct Fittings", + "3.4 Entiteittype": "CONNECTOR", + "3.5 Naamgeving element": "verzinkt_staal", + "3.5 Omschrijving": "Rond - koppelstuk tbv hulpstukken", + "3.5 Omschrijving_Ifc": "Rond - koppelstuk tbv hulpstukken", + "3.6 NL-SfB code": "57.5", + "4.7 Materiaal": "NLRS_A_roestvast staal 304(1.4301)", + "4.8 Leverancier/fabrikant": "Luka" + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 1449.9395026278196 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "1546": { + "class": "IfcFlowMovingDevice", + "name": "VE_Fan Rectangular_Round Connections_MEPcontent_Inatherm_IRB_INT-EN:IRB 125 B1:8411550", + "globalId": "0ti6n8ppj4BeyjsGYLQxfg", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "IRB 125 B1" + }, + "Pset_ProductRequirements": { + "Category": "Duct Accessories" + }, + "Pset_QuantityTakeOff": { + "Reference": "IRB 125 B1" + }, + "ASML": { + "3.4 Entiteit": "Duct Accessories", + "3.5 Naamgeving element": "IRB 125 B1", + "3.5 Omschrijving": "Round fan rectangular box", + "4.8 Leverancier/fabrikant": "Inatherm", + "4.8 B Merk": "IRB-125-B1", + "Q Hoogte": 266.0, + "Q Breedte/Dikte": 438.0 + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3539.000000000002 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Inatherm" + } + } + }, + "22886": { + "class": "IfcFlowMovingDevice", + "name": "VE_Fan Rectangular_Round Connections_MEPcontent_Inatherm_IRE_INT-EN:IRE 125 C1:8503379", + "globalId": "1uoH3P9D17Awy11r$ze4JS", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "IRE 125 C1" + }, + "Pset_ProductRequirements": { + "Category": "Duct Accessories" + }, + "Pset_QuantityTakeOff": { + "Reference": "IRE 125 C1" + }, + "ASML": { + "3.4 Entiteit": "Duct Accessories", + "3.5 Naamgeving element": "IRE 125 C1", + "3.5 Omschrijving": "Round fan rectangular box", + "4.8 Leverancier/fabrikant": "Inatherm", + "4.8 B Merk": "VeB 125", + "Q Hoogte": 245.0, + "Q Breedte/Dikte": 367.0 + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3272.0000000000064 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Inatherm" + } + } + }, + "38094": { + "class": "IfcFlowMovingDevice", + "name": "VE_Fan Rectangular_Round Connections_MEPcontent_Inatherm_IRE_INT-EN:IRE 125 C1:8504564", + "globalId": "1uoH3P9D17Awy11r$ze41x", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "IRE 125 C1" + }, + "Pset_ProductRequirements": { + "Category": "Duct Accessories" + }, + "Pset_QuantityTakeOff": { + "Reference": "IRE 125 C1" + }, + "ASML": { + "3.4 Entiteit": "Duct Accessories", + "3.5 Naamgeving element": "IRE 125 C1", + "3.5 Omschrijving": "Round fan rectangular box", + "4.8 Leverancier/fabrikant": "Inatherm", + "4.8 B Merk": "VeB 125", + "Q Hoogte": 245.0, + "Q Breedte/Dikte": 367.0 + }, + "ASML sparingen": { + "SP.01 Verdieping": "68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3272.0000000000064 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Inatherm" + } + } + }, + "277": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8411544", + "globalId": "0ti6n8ppj4BeyjsGYLQxfi", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 600.0000000000368 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 600.0000000000368 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 600.0000000000368 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "8620": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8446659", + "globalId": "10vlb4EM91XwZwTkzX_vo5", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 124.99999999671947 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 124.99999999671947 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 124.99999999671947 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "8920": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8463151", + "globalId": "2eqJmstJj2Seg4CHQrDd3H", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 600.0895026293697 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 600.0895026293697 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 600.0895026293697 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "8963": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8463304", + "globalId": "2eqJmstJj2Seg4CHQrDd0s", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 1771.999999996473 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 1771.999999996473 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 1771.999999996473 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "12360": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8502988", + "globalId": "1uoH3P9D17Awy11r$ze3f3", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 661.9999999999881 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 661.9999999999881 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 661.9999999999881 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "12407": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8503034", + "globalId": "1uoH3P9D17Awy11r$ze3fr", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 600.0000000000022 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 600.0000000000022 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 600.0000000000022 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "12450": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8503037", + "globalId": "1uoH3P9D17Awy11r$ze3fo", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 318.50000000000557 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 318.50000000000557 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 318.50000000000557 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "12493": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8503039", + "globalId": "1uoH3P9D17Awy11r$ze3fm", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 380.50000000007174 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 380.50000000007174 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 380.50000000007174 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "19530": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8503048", + "globalId": "1uoH3P9D17Awy11r$ze3k7", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 599.9999999998983 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 599.9999999998983 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 599.9999999998983 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "25663": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8504547", + "globalId": "1uoH3P9D17Awy11r$ze41i", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 600.0000000000022 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 600.0000000000022 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 600.0000000000022 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "25706": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8504549", + "globalId": "1uoH3P9D17Awy11r$ze41g", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 318.50000000000557 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 318.50000000000557 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 318.50000000000557 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "25749": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8504551", + "globalId": "1uoH3P9D17Awy11r$ze41e", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 380.50000000007174 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 380.50000000007174 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 380.50000000007174 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "34743": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8504559", + "globalId": "1uoH3P9D17Awy11r$ze41W", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 599.9999999998983 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 599.9999999998983 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 599.9999999998983 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159151": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8535853", + "globalId": "00krGEx4z21PrJFA26Ntxs", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 349.3371685740108 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 349.3371685740108 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 349.3371685740108 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159251": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8536008", + "globalId": "00krGEx4z21PrJFA26NtuJ", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 227.66283142601398 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 227.66283142601398 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 227.66283142601398 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159294": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8537070", + "globalId": "00krGEx4z21PrJFA26Nm8r", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 1506.1210186401463 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 1506.1210186401463 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 1506.1210186401463 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159470": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8537217", + "globalId": "00krGEx4z21PrJFA26NmLQ", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 2.95937632800321 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 2.95937632800321 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 2.95937632800321 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "159570": { + "class": "IfcFlowSegment", + "name": "Round Duct:NLRS_57_DU_verz staal (T-stuk)_Luka:8537264", + "globalId": "00krGEx4z21PrJFA26NmLh", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "Pset_FlowSegmentDuctSegment": { + "Length": 9.330102404031935 + }, + "Pset_FlowSegmentPipeSegment": { + "Length": 9.330102404031935 + }, + "Pset_ProductRequirements": { + "Category": "Ducts" + }, + "Pset_QuantityTakeOff": { + "Reference": "NLRS_57_DU_verz staal (T-stuk)_Luka" + }, + "ASML": { + "3.4 Entiteit": "Ducts", + "3.4 Entiteittype": "RIGIDSEGMENT", + "3.5 Naamgeving element": "NLRS_57_DU_verz staal (T-stuk)_Luka", + "3.5 Omschrijving": "Rond kanaal (verzinkt staal, config. T-stuk)", + "3.6 NL-SfB code": "57.41", + "3.6 NL-SfB omschrijving": "luchtbehandeling; distributie, kanalen", + "4.8 Leverancier/fabrikant": "Luka" + }, + "Pset_DuctSegmentTypeCommon": { + "Shape": null, + "Length": 9.330102404031935 + }, + "Pset_ElementShading": { + "Roughness": 0.09144 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Luka" + } + } + }, + "8578": { + "class": "IfcFlowTerminal", + "name": "Plenum:Plenum:8446658", + "globalId": "10vlb4EM91XwZwTkzX_vo4", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "Plenum" + }, + "Pset_ProductRequirements": { + "Category": "Air Terminals" + }, + "Pset_QuantityTakeOff": { + "Reference": "Plenum" + }, + "ASML": { + "3.4 Entiteit": "Air Terminals", + "3.5 Naamgeving element": "Plenum" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 200.0000000000049 + } + } + }, + "8852": { + "class": "IfcFlowTerminal", + "name": "Rooster hoog 1200x2000:Rooster hoog 1200x2000:8462018", + "globalId": "0iA3iHri56Zg1MA5tSTY0s", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "Rooster hoog 1200x2000" + }, + "Pset_ProductRequirements": { + "Category": "Air Terminals" + }, + "Pset_QuantityTakeOff": { + "Reference": "Rooster hoog 1200x2000" + }, + "ASML": { + "3.4 Entiteit": "Air Terminals", + "3.5 Naamgeving element": "Rooster hoog 1200x2000", + "4.8 Leverancier/fabrikant": "Rooster plenum" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": -310.0000000000259, + "SP.32 Homij Comments": "Hoog plenum.Zie detail B" + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Rooster plenum" + } + } + }, + "8888": { + "class": "IfcFlowTerminal", + "name": "Rooster hoog 1200x2000:Rooster hoog 1200x2000:8462040", + "globalId": "0iA3iHri56Zg1MA5tSTY0i", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "Rooster hoog 1200x2000" + }, + "Pset_ProductRequirements": { + "Category": "Air Terminals" + }, + "Pset_QuantityTakeOff": { + "Reference": "Rooster hoog 1200x2000" + }, + "ASML": { + "3.4 Entiteit": "Air Terminals", + "3.5 Naamgeving element": "Rooster hoog 1200x2000", + "4.8 Leverancier/fabrikant": "Rooster plenum" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": -309.9999999999999, + "SP.32 Homij Comments": "Hoog plenum.Zie detail B" + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Rooster plenum" + } + } + }, + "9903": { + "class": "IfcFlowTerminal", + "name": "Rooster laag 1200x2000:Rooster laag 1200x2000:8494551", + "globalId": "1cGRw8VgD9fQ3MgeraQGX6", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "Rooster laag 1200x2000" + }, + "Pset_ProductRequirements": { + "Category": "Air Terminals" + }, + "Pset_QuantityTakeOff": { + "Reference": "Rooster laag 1200x2000" + }, + "ASML": { + "3.4 Entiteit": "Air Terminals", + "3.5 Naamgeving element": "Rooster laag 1200x2000", + "4.8 Leverancier/fabrikant": "Rooster plenum" + }, + "ASML sparingen": { + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 0.0, + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.32 Homij Comments": "Laag plenum.Zie detail A" + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Rooster plenum" + } + } + }, + "10190": { + "class": "IfcFlowTerminal", + "name": "Rooster laag 1200x2000:Rooster laag 1200x2000:8494972", + "globalId": "1cGRw8VgD9fQ3MgeraQGhj", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "Rooster laag 1200x2000" + }, + "Pset_ProductRequirements": { + "Category": "Air Terminals" + }, + "Pset_QuantityTakeOff": { + "Reference": "Rooster laag 1200x2000" + }, + "ASML": { + "3.4 Entiteit": "Air Terminals", + "3.5 Naamgeving element": "Rooster laag 1200x2000", + "4.8 Leverancier/fabrikant": "Rooster plenum" + }, + "ASML sparingen": { + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 0.0, + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.32 Homij Comments": "Laag plenum.Zie detail A" + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "Rooster plenum" + } + } + }, + "24254": { + "class": "IfcFlowTerminal", + "name": "300_57_ISR_rozet_afzuig:kanaal_200:8504138", + "globalId": "1uoH3P9D17Awy11r$ze4V5", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "kanaal_200" + }, + "Pset_ProductRequirements": { + "Category": "Air Terminals" + }, + "Pset_QuantityTakeOff": { + "Reference": "kanaal_200" + }, + "ASML": { + "3.4 Entiteit": "Air Terminals", + "3.5 Naamgeving element": "kanaal_200", + "3.5 Omschrijving": "afzuigrooster rozet", + "3.6 NL-SfB code": "57.20", + "3.6 NL-SfB omschrijving": "luchtbehandeling; mechanisch lokaal, algemeen (verzamelniveau)" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.0000000000055 + } + } + }, + "25619": { + "class": "IfcFlowTerminal", + "name": "300_57_ISR_rozet_afzuig:kanaal_200:8504364", + "globalId": "1uoH3P9D17Awy11r$ze42Z", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "kanaal_200" + }, + "Pset_ProductRequirements": { + "Category": "Air Terminals" + }, + "Pset_QuantityTakeOff": { + "Reference": "kanaal_200" + }, + "ASML": { + "3.4 Entiteit": "Air Terminals", + "3.5 Naamgeving element": "kanaal_200", + "3.5 Omschrijving": "afzuigrooster rozet", + "3.6 NL-SfB code": "57.20", + "3.6 NL-SfB omschrijving": "luchtbehandeling; mechanisch lokaal, algemeen (verzamelniveau)" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.000000000002 + } + } + }, + "39461": { + "class": "IfcFlowTerminal", + "name": "300_57_ISR_rozet_afzuig:kanaal_200:8504565", + "globalId": "1uoH3P9D17Awy11r$ze41w", + "psets": { + "Pset_DistributionFlowElementCommon": { + "Reference": "kanaal_200" + }, + "Pset_ProductRequirements": { + "Category": "Air Terminals" + }, + "Pset_QuantityTakeOff": { + "Reference": "kanaal_200" + }, + "ASML": { + "3.4 Entiteit": "Air Terminals", + "3.5 Naamgeving element": "kanaal_200", + "3.5 Omschrijving": "afzuigrooster rozet", + "3.6 NL-SfB code": "57.20", + "3.6 NL-SfB omschrijving": "luchtbehandeling; mechanisch lokaal, algemeen (verzamelniveau)" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.0000000000055 + } + } + }, + "4978": { + "class": "IfcMechanicalFastener", + "name": "MUEPRO_Ventilation_Duct-clamp-lining-orange_A2_V1:ø50mm - ø400mm - M8:8420404", + "globalId": "18Az15rEr58eKRddbxnxyY", + "psets": { + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "ø50mm - ø400mm - M8" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.4 Entiteittype": "USERDEFINED", + "3.5 Naamgeving element": "ø50mm - ø400mm - M8", + "3.5 Omschrijving": "Muepro ventilation duct clamp lining orange A2", + "3.5 Omschrijving_Ifc": "Muepro ventilation duct clamp lining orange A2", + "4.8 Leverancier/fabrikant": "MUEPRO" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.0000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "MUEPRO" + } + } + }, + "8511": { + "class": "IfcMechanicalFastener", + "name": "MUEPRO_Ventilation_Duct-clamp-lining-orange_A2_V1:ø50mm - ø400mm - M8:8420406", + "globalId": "18Az15rEr58eKRddbxnxyW", + "psets": { + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "ø50mm - ø400mm - M8" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.4 Entiteittype": "USERDEFINED", + "3.5 Naamgeving element": "ø50mm - ø400mm - M8", + "3.5 Omschrijving": "Muepro ventilation duct clamp lining orange A2", + "3.5 Omschrijving_Ifc": "Muepro ventilation duct clamp lining orange A2", + "4.8 Leverancier/fabrikant": "MUEPRO" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3550.0000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "MUEPRO" + } + } + }, + "15900": { + "class": "IfcMechanicalFastener", + "name": "MUEPRO_Ventilation_Duct-clamp-lining-orange_A2_V1:ø50mm - ø400mm - M8:8503042", + "globalId": "1uoH3P9D17Awy11r$ze3kD", + "psets": { + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "ø50mm - ø400mm - M8" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.4 Entiteittype": "USERDEFINED", + "3.5 Naamgeving element": "ø50mm - ø400mm - M8", + "3.5 Omschrijving": "Muepro ventilation duct clamp lining orange A2", + "3.5 Omschrijving_Ifc": "Muepro ventilation duct clamp lining orange A2", + "4.8 Leverancier/fabrikant": "MUEPRO" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.0000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "MUEPRO" + } + } + }, + "19432": { + "class": "IfcMechanicalFastener", + "name": "MUEPRO_Ventilation_Duct-clamp-lining-orange_A2_V1:ø50mm - ø400mm - M8:8503043", + "globalId": "1uoH3P9D17Awy11r$ze3kC", + "psets": { + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "ø50mm - ø400mm - M8" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.4 Entiteittype": "USERDEFINED", + "3.5 Naamgeving element": "ø50mm - ø400mm - M8", + "3.5 Omschrijving": "Muepro ventilation duct clamp lining orange A2", + "3.5 Omschrijving_Ifc": "Muepro ventilation duct clamp lining orange A2", + "4.8 Leverancier/fabrikant": "MUEPRO" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.0000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "MUEPRO" + } + } + }, + "29069": { + "class": "IfcMechanicalFastener", + "name": "MUEPRO_Ventilation_Duct-clamp-lining-orange_A2_V1:ø50mm - ø400mm - M8:8504553", + "globalId": "1uoH3P9D17Awy11r$ze41c", + "psets": { + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "ø50mm - ø400mm - M8" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.4 Entiteittype": "USERDEFINED", + "3.5 Naamgeving element": "ø50mm - ø400mm - M8", + "3.5 Omschrijving": "Muepro ventilation duct clamp lining orange A2", + "3.5 Omschrijving_Ifc": "Muepro ventilation duct clamp lining orange A2", + "4.8 Leverancier/fabrikant": "MUEPRO" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.0000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "MUEPRO" + } + } + }, + "32612": { + "class": "IfcMechanicalFastener", + "name": "MUEPRO_Ventilation_Duct-clamp-lining-orange_A2_V1:ø50mm - ø400mm - M8:8504554", + "globalId": "1uoH3P9D17Awy11r$ze41b", + "psets": { + "Pset_ProductRequirements": { + "Category": "Mechanical Equipment" + }, + "Pset_QuantityTakeOff": { + "Reference": "ø50mm - ø400mm - M8" + }, + "ASML": { + "3.4 Entiteit": "Mechanical Equipment", + "3.4 Entiteittype": "USERDEFINED", + "3.5 Naamgeving element": "ø50mm - ø400mm - M8", + "3.5 Omschrijving": "Muepro ventilation duct clamp lining orange A2", + "3.5 Omschrijving_Ifc": "Muepro ventilation duct clamp lining orange A2", + "4.8 Leverancier/fabrikant": "MUEPRO" + }, + "ASML sparingen": { + "SP.01 Verdieping": "Level : 68_00 begane grond", + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 3285.0000000000005 + }, + "Pset_ManufacturerTypeInformation": { + "Manufacturer": "MUEPRO" + } + } + }, + "9585": { + "class": "IfcOpeningElement", + "name": "Mileu container:Mileu container:8494062:1", + "globalId": "3a66bd314LQ39gAOu1I6$4", + "psets": { + "BaseQuantities": { + "Depth": 250.00000000000003, + "Height": 125.00000000000028, + "Width": 2959.999999999999 + }, + "Pset_OpeningElementCommon": { + "Reference": "Mileu container" + }, + "Pset_ProductRequirements": { + "Category": "Generic Models" + }, + "Pset_QuantityTakeOff": { + "Reference": "Mileu container" + }, + "ASML": { + "3.3 Bouwlaag": "68_00 begane grond", + "3.4 Entiteit": "Generic Models", + "3.5 Type": "Mileu container", + "4.8 A Project Fase": "2. Fase 1", + "Q Offset component": "0", + "Q Offset from Level": "0" + }, + "ASML sparingen": { + "SP.13 Sparing hoogte hart t.o.v. verdieping ": 0.0, + "SP.01 Verdieping": "Level : 68_00 begane grond" + } + } + }, + "94": { + "class": "IfcBuilding", + "name": "68", + "globalId": "3BnN0CGXz8OQyjbwZrXYuI", + "psets": { + "Pset_BuildingCommon": { + "NumberOfStoreys": 1, + "IsLandmarked": false + }, + "Pset_ProductRequirements": { + "Category": "Project Information" + } + } + }, + "97": { + "class": "IfcBuildingStorey", + "name": "68_00 begane grond", + "globalId": "3BnN0CGXz8OQyjbwWALADc", + "psets": { + "Pset_AirSideSystemInformation": { + "Name": "68_00 begane grond" + }, + "Pset_BuildingStoreyCommon": { + "AboveGround": false + }, + "Pset_ProductRequirements": { + "Name": "68_00 begane grond", + "Category": "Levels" + } + } + }, + "101": { + "class": "IfcBuildingStorey", + "name": "68_01 dakvlier sprinklergebouw", + "globalId": "3BnN0CGXz8OQyjbwWALABQ", + "psets": { + "Pset_AirSideSystemInformation": { + "Name": "68_01 dakvlier sprinklergebouw" + }, + "Pset_BuildingStoreyCommon": { + "AboveGround": false + }, + "Pset_ProductRequirements": { + "Name": "68_01 dakvlier sprinklergebouw", + "Category": "Levels" + } + } + }, + "105": { + "class": "IfcBuildingStorey", + "name": "68_02 sprinklertanks", + "globalId": "3BnN0CGXz8OQyjbwWALAAX", + "psets": { + "Pset_AirSideSystemInformation": { + "Name": "68_02 sprinklertanks" + }, + "Pset_BuildingStoreyCommon": { + "AboveGround": false + }, + "Pset_ProductRequirements": { + "Name": "68_02 sprinklertanks", + "Category": "Levels" + } + } + }, + "109": { + "class": "IfcSite", + "name": "Industrial Hub ASML Veldhoven", + "globalId": "3BnN0CGXz8OQyjbwZrXYuH", + "psets": { + "Pset_ProductRequirements": { + "Category": "Project Information" + } + } + } +} \ No newline at end of file diff --git a/src/bim-components/CompleteQTO/index.ts b/src/bim-components/CompleteQTO/index.ts new file mode 100644 index 0000000..3bd16e1 --- /dev/null +++ b/src/bim-components/CompleteQTO/index.ts @@ -0,0 +1 @@ +export * from "./src"; diff --git a/src/bim-components/CompleteQTO/src/BuildingTypes.ts b/src/bim-components/CompleteQTO/src/BuildingTypes.ts new file mode 100644 index 0000000..84bd0fa --- /dev/null +++ b/src/bim-components/CompleteQTO/src/BuildingTypes.ts @@ -0,0 +1,60 @@ +import * as WEBIFC from "web-ifc"; + +export const BUILDING_ELEMENT_TYPES = [ + // Structural elements + WEBIFC.IFCWALL, + WEBIFC.IFCWALLSTANDARDCASE, + WEBIFC.IFCSLAB, + WEBIFC.IFCSLABSTANDARDCASE, + WEBIFC.IFCBEAM, + WEBIFC.IFCBEAMSTANDARDCASE, + WEBIFC.IFCCOLUMN, + WEBIFC.IFCCOLUMNSTANDARDCASE, + WEBIFC.IFCFOOTING, + WEBIFC.IFCPILE, + + // Openings + WEBIFC.IFCDOOR, + WEBIFC.IFCDOORSTANDARDCASE, + WEBIFC.IFCWINDOW, + WEBIFC.IFCWINDOWSTANDARDCASE, + WEBIFC.IFCOPENINGELEMENT, + WEBIFC.IFCOPENINGSTANDARDCASE, + + // Building services + WEBIFC.IFCDUCTSEGMENT, + WEBIFC.IFCDUCTFITTING, + WEBIFC.IFCPIPESEGMENT, + WEBIFC.IFCPIPEFITTING, + WEBIFC.IFCAIRTERMINAL, + WEBIFC.IFCDISTRIBUTIONPORT, + + // Architectural elements + WEBIFC.IFCSTAIR, + WEBIFC.IFCSTAIRFLIGHT, + WEBIFC.IFCRAMP, + WEBIFC.IFCRAMPFLIGHT, + WEBIFC.IFCRAILING, + WEBIFC.IFCROOF, + WEBIFC.IFCCURTAINWALL, + WEBIFC.IFCMEMBER, + WEBIFC.IFCPLATE, + WEBIFC.IFCCOVERING, + + // Furniture and equipment + WEBIFC.IFCFURNISHINGELEMENT, + WEBIFC.IFCFURNITURE, + WEBIFC.IFCSYSTEMFURNITUREELEMENT, + WEBIFC.IFCEQUIPMENTELEMENT, + + // Special elements + WEBIFC.IFCBUILDINGELEMENTPROXY, + WEBIFC.IFCBUILDINGELEMENTPART, + WEBIFC.IFCVIRTUALELEMENT, + WEBIFC.IFCTRANSPORTELEMENT, + + // IFC4 additions + WEBIFC.IFCCHIMNEY, + WEBIFC.IFCSHADINGDEVICE, + WEBIFC.IFCSOLARDEVICE, +]; diff --git a/src/bim-components/CompleteQTO/src/CompleteQTO.ts b/src/bim-components/CompleteQTO/src/CompleteQTO.ts new file mode 100644 index 0000000..81eba0e --- /dev/null +++ b/src/bim-components/CompleteQTO/src/CompleteQTO.ts @@ -0,0 +1,180 @@ +import * as OBC from "@thatopen/components"; +import * as BUI from "@thatopen/ui"; +import * as WEBIFC from "web-ifc"; +// import { BUILDING_ELEMENT_TYPES } from "./BuildingTypes"; + +type CategoryTableGroupData = { + data: { + category?: string; + }; + children?: CategoryTableGroupData[]; +}; + +// type QTOTableGroupData = { +// [modelUUID: string]: { +// modelName: string; +// elements: { +// [expressID: string]: { +// type: string; +// name: string; +// globalId: string; +// category?: string; +// psets: { +// [psetName: string]: { +// [propName: string]: any; +// }; +// }; +// quantitysets: { +// [psetName: string]: { +// [propName: string]: any; +// }; +// }; +// }; +// }; +// }; +// }; + +export class CompleteQTO extends OBC.Component implements OBC.Disposable { + static uuid = "663bebd3-ed4b-49fb-81ec-2be7c31ce2c2"; + enabled = true; + onDisposed: OBC.Event = new OBC.Event(); + private _categories: string[] = []; + categoriesTable: BUI.Table | undefined; + fullQTOTable: BUI.Table | undefined; + private mainCategory = "Category"; + // private mainCategory = "Name"; + + get categories(): string[] { + return this._categories; + } + + constructor(components: OBC.Components) { + super(components); + this.components.add(CompleteQTO.uuid, this); + } + + resetCategories() { + this._categories = []; + } + + async getCategories() { + this.resetCategories(); + const fragmentManager = this.components.get(OBC.FragmentsManager); + const models = fragmentManager.groups.values(); + + for (const model of models) { + if (!model || !model.hasProperties) continue; + + const propertyIDs = model.getAllPropertiesIDs(); + if (!propertyIDs || propertyIDs.length === 0) continue; + + await OBC.IfcPropertiesUtils.getRelationMap( + model, + WEBIFC.IFCRELDEFINESBYPROPERTIES, + async (setID) => { + const set = await model.getProperties(setID); + + if (set?.type !== WEBIFC.IFCPROPERTYSET) return; + await OBC.IfcPropertiesUtils.getPsetProps( + model, + setID, + async (propertyID) => { + const name = await OBC.IfcPropertiesUtils.getEntityName( + model, + propertyID, + ); + + if (!name.name) return; + if (name.name === this.mainCategory) { + const value = await OBC.IfcPropertiesUtils.getQuantityValue( + model, + propertyID, + ); + if (!value.value) return; + const valueAsString = value.value.toString(); + if (!this._categories.includes(valueAsString)) { + this._categories.push(valueAsString); + } + } + }, + ); + }, + ); + } + setTimeout(async () => { + this.updateCategoriesTable(); + }, 50); + } + + updateCategoriesTable() { + if (!this.categoriesTable) return; + + const categoriesData: CategoryTableGroupData[] = []; + + // Sort categories alphabetically + const sortedCategories = [...this._categories].sort((a, b) => + a.localeCompare(b), + ); + + // Create table data structure + for (const category of sortedCategories) { + categoriesData.push({ + data: { + category, + }, + }); + } + + this.categoriesTable.data = categoriesData; + } + + // Work in progress + async getCleanElementsJSON(category?: string) { + const fragmentManager = this.components.get(OBC.FragmentsManager); + const models = fragmentManager.groups.values(); + const result: {} = {}; + + for (const model of models) { + if (!model || !model.hasProperties) continue; + const propertyIDs = model.getAllPropertiesIDs(); + if (!propertyIDs || propertyIDs.length === 0) continue; + + await OBC.IfcPropertiesUtils.getRelationMap( + model, + WEBIFC.IFCRELDEFINESBYPROPERTIES, + async (setID) => { + // const set = await model.getProperties(setID); + await OBC.IfcPropertiesUtils.getPsetProps( + model, + setID, + async (propertyID) => { + // const name = await OBC.IfcPropertiesUtils.getEntityName( + // model, + // propertyID, + // ); + const value = await OBC.IfcPropertiesUtils.getQuantityValue( + model, + propertyID, + ); + if (!value.value) return; + if (value.value.toString() === category) { + console.log( + await OBC.IfcPropertiesUtils.getPsetProps(model, propertyID), + ); + } + }, + ); + }, + ); + } + + return result; + } + + dispose() { + this.resetCategories(); + this.categoriesTable = undefined; + this.onDisposed.trigger(); + this.onDisposed.reset(); + } +} diff --git a/src/bim-components/CompleteQTO/src/Template.ts b/src/bim-components/CompleteQTO/src/Template.ts new file mode 100644 index 0000000..4c06a7c --- /dev/null +++ b/src/bim-components/CompleteQTO/src/Template.ts @@ -0,0 +1,357 @@ +import * as OBC from "@thatopen/components"; +import * as BUI from "@thatopen/ui"; +import { CompleteQTO } from "./CompleteQTO"; +import tableData from "../../../assets/ifc_detailed_objects 1.json"; + +export interface CompleteQTOUIState { + components: OBC.Components; +} + +export const categoriesTable = (state: CompleteQTOUIState) => { + const { components } = state; + const completeQto = components.get(CompleteQTO); + + const categories: BUI.TableGroupData[] = [ + { data: { category: "Site" } }, + { data: { category: "Levels" } }, + { data: { category: "Project Information" } }, + { data: { category: "Mechanical Equipment" } }, + { data: { category: "Duct Fittings" } }, + { data: { category: "Duct Accessories" } }, + { data: { category: "Air Terminals" } }, + { data: { category: "Ducts" } }, + { data: { category: "Generic Models" } }, + ]; + + const categoriesTable = BUI.Component.create(() => { + return BUI.html` + + `; + }); + + categoriesTable.data = categories; + categoriesTable.headersHidden = true; + categoriesTable.addEventListener("rowcreated", (e) => { + const { row } = e.detail; + const rowData = row.data as { category?: string }; + + // Hover effect + row.onmouseover = () => { + row.style.backgroundColor = "var(--bim-ui_bg-contrast-20)"; + row.style.cursor = "pointer"; + }; + + row.onmouseout = () => { + row.style.backgroundColor = ""; + }; + + // Click handler + row.onclick = () => { + if (rowData.category) { + console.log("Category clicked:", rowData.category); + // Add more click logic here + completeQto.getCleanElementsJSON(rowData.category); + } + }; + }); + + // completeQto.categoriesTable = categoriesTable; + + completeQto.onDisposed.add(() => { + categoriesTable.remove(); + }); + + return categoriesTable; +}; + +export const QTOTable = (state: CompleteQTOUIState) => { + const { components } = state; + const completeQto = components.get(CompleteQTO); + + // Define interfaces for your data structure + interface ElementData { + class: string; + name: string; + globalId: string; + psets: { + Pset_ProductRequirements?: { + Category: string; + }; + Pset_QuantityTakeOff?: { + Reference: string; + }; + ASML?: { + "Q Gewicht"?: number; + "3.4 Entiteit"?: string; + "3.5 Naamgeving element"?: string; + [key: string]: any; + }; + [key: string]: any; + }; + } + + // Define the table row types + type TableRowData = Record; + type QTORowData = { + id: string; + class: string; + name: string; + globalId: string; + category: string; + entityType?: string; + elementName?: string; + reference: string; + quantity?: number; + unit?: string; + floor?: string; + height?: number; + manufacturer?: string; + }; + + // Create the table component + const fullQTOTable = BUI.Component.create(() => { + return BUI.html` + +
+ No data to display! +
+
+ `; + }); + + // Transform JSON data to table format + const transformDataToTable = (jsonData: Record) => { + const tableData: BUI.TableGroupData[] = []; + + for (const [id, elementData] of Object.entries(jsonData)) { + const category = + elementData.psets?.Pset_ProductRequirements?.Category || "Unknown"; + const reference = + elementData.psets?.Pset_QuantityTakeOff?.Reference || ""; + const asmlData = elementData.psets?.ASML || {}; + const sparingenData = elementData.psets?.["ASML sparingen"] || {}; + + const rowData: QTORowData = { + id, + class: elementData.class, + name: elementData.name, + globalId: elementData.globalId, + category, + entityType: asmlData["3.4 Entiteit"], + elementName: asmlData["3.5 Naamgeving element"], + reference, + quantity: asmlData["Q Gewicht"], + unit: asmlData["Q Gewicht"] ? "kg" : undefined, + floor: sparingenData["SP.01 Verdieping"], + height: sparingenData["SP.13 Sparing hoogte hart t.o.v. verdieping "], + manufacturer: + elementData.psets?.Pset_ManufacturerTypeInformation?.Manufacturer, + }; + + tableData.push({ + data: rowData as unknown as TableRowData, + }); + } + + return tableData; + }; + + // Set the transformed data to the table + fullQTOTable.data = transformDataToTable(tableData); + + // Configure columns with custom widths and ordering + fullQTOTable.columns = [ + { name: "id", width: "80px" }, + { name: "class", width: "120px" }, + { name: "name", width: "200px" }, + { name: "category", width: "150px" }, + { name: "entityType", width: "150px" }, + { name: "elementName", width: "150px" }, + { name: "quantity", width: "80px" }, + { name: "unit", width: "60px" }, + { name: "floor", width: "200px" }, + { name: "height", width: "100px" }, + { name: "manufacturer", width: "150px" }, + ]; + + fullQTOTable.hiddenColumns = [ + "entityType", + "elementName", + "quantity", + "unit", + "floor", + "height", + "manufacturer", + "globalId", + ]; + + // Add data transformations for better display + fullQTOTable.dataTransform = { + quantity: (value: unknown) => (value ? `${value}` : "-"), + height: (value: unknown) => { + const numValue = + typeof value === "number" ? value : parseFloat(String(value)); + return Number.isNaN(numValue) ? "-" : `${numValue.toFixed(2)} mm`; + }, + class: (value: unknown) => { + const strValue = String(value); + const colorMap: Record = { + IfcBuildingElementProxy: "#cc0000", + }; + const color = colorMap[strValue] || "#9E9E9E"; + return BUI.html` + ${strValue} + `; + }, + }; + + // Add search functionality + const searchBox = BUI.Component.create(() => { + const onInput = (e: Event) => { + const input = e.target; + if (!(input instanceof BUI.TextInput)) return; + fullQTOTable.queryString = input.value; + }; + + return BUI.html` + + `; + }); + + // Add column visibility toggle + const addColumnVisibilityControls = () => { + const columnToggleBtn = BUI.Component.create(() => { + return BUI.html` + + `; + }); + + const columnMenu = BUI.Component.create(() => { + return BUI.html``; + }); + + // Create menu items for each column + const allColumns = [ + { name: "id", label: "ID" }, + { name: "class", label: "Class" }, + { name: "name", label: "Name" }, + { name: "category", label: "Category" }, + { name: "entityType", label: "Entity Type" }, + { name: "elementName", label: "Element Name" }, + { name: "quantity", label: "Quantity" }, + { name: "unit", label: "Unit" }, + { name: "floor", label: "Floor" }, + { name: "height", label: "Height" }, + { name: "manufacturer", label: "Manufacturer" }, + { name: "globalId", label: "Global ID" }, + ]; + + allColumns.forEach((column) => { + const isHidden = fullQTOTable.hiddenColumns.includes(column.name); + const menuItem = BUI.Component.create(() => { + const onChange = (e: Event) => { + const checkbox = e.target as HTMLInputElement; + if (checkbox.checked) { + fullQTOTable.hiddenColumns = fullQTOTable.hiddenColumns.filter( + (col) => col !== column.name, + ); + } else { + fullQTOTable.hiddenColumns = [ + ...fullQTOTable.hiddenColumns, + column.name, + ]; + } + }; + + return BUI.html` + +
+ + ${column.label} +
+
+ `; + }); + columnMenu.appendChild(menuItem); + }); + + columnToggleBtn.addEventListener("click", () => { + columnMenu.setAttribute( + "open", + columnMenu.hasAttribute("open") ? "" : "true", + ); + }); + + return BUI.html` +
+ ${columnToggleBtn} + ${columnMenu} +
+ `; + }; + + // Add export functionality + const addExportControls = () => { + const formatDropdown = BUI.Component.create( + () => BUI.html` + + + + + + `, + ); + + const fileNameInput = BUI.Component.create( + () => + BUI.html``, + ); + + const downloadBtn = BUI.Component.create(() => { + const onClick = () => { + const format = formatDropdown.value[0] as "csv" | "tsv" | "json"; + if (!format) return; + const fileName = fileNameInput.value.trim() || undefined; + fullQTOTable.downloadData(fileName, format); + }; + + return BUI.html` + + `; + }); + + return BUI.html` +
+ ${fileNameInput} + ${formatDropdown} + ${downloadBtn} +
+ `; + }; + + completeQto.fullQTOTable = fullQTOTable; + completeQto.onDisposed.add(() => fullQTOTable.remove()); + + // Return the complete table with controls + return BUI.Component.create(() => { + return BUI.html` +
+
+ ${searchBox} + ${addColumnVisibilityControls()} + ${addExportControls()} +
+ ${fullQTOTable} +
+ `; + }); +}; diff --git a/src/bim-components/CompleteQTO/src/index.ts b/src/bim-components/CompleteQTO/src/index.ts new file mode 100644 index 0000000..6817970 --- /dev/null +++ b/src/bim-components/CompleteQTO/src/index.ts @@ -0,0 +1,2 @@ +export * from "./CompleteQTO"; +export * from "./Template"; diff --git a/src/bim-components/SimpleQTO/src/SimpleQTO.ts b/src/bim-components/SimpleQTO/src/SimpleQTO.ts index 9bd7438..f2a01f0 100644 --- a/src/bim-components/SimpleQTO/src/SimpleQTO.ts +++ b/src/bim-components/SimpleQTO/src/SimpleQTO.ts @@ -98,6 +98,7 @@ export class SimpleQTO extends OBC.Component implements OBC.Disposable { if (!qtoName || value === undefined) return; + // CHANGE FOR OBC.IfcPropertiesUtils.getUnits const unit = this.detectUnit(qtoName); if (!(qtoName in this._qtoResult[setName])) { diff --git a/src/bim-components/SimpleQTO/src/Template.ts b/src/bim-components/SimpleQTO/src/Template.ts index 667d860..ae7f02c 100644 --- a/src/bim-components/SimpleQTO/src/Template.ts +++ b/src/bim-components/SimpleQTO/src/Template.ts @@ -6,14 +6,14 @@ export interface QTOUIState { components: OBC.Components; } -export const qtoTool = (state: QTOUIState) => { +export const simpleQTOTool = (state: QTOUIState) => { const { components } = state; const simpleQto = components.get(SimpleQTO); const qtoTable = BUI.Component.create(() => { return BUI.html` - - `; + + `; }); qtoTable.headersHidden = true; diff --git a/src/components/Panels/CompleteQTO.ts b/src/components/Panels/CompleteQTO.ts new file mode 100644 index 0000000..86540df --- /dev/null +++ b/src/components/Panels/CompleteQTO.ts @@ -0,0 +1,22 @@ +import * as OBC from "@thatopen/components"; +import * as BUI from "@thatopen/ui"; +import { categoriesTable } from "../../bim-components/CompleteQTO/src/Template"; + +export default (components: OBC.Components) => { + const completeQTOTable = categoriesTable({ components }); + + return BUI.Component.create(() => { + return BUI.html` + + + ${completeQTOTable} + + + `; + }); +}; diff --git a/src/components/Panels/CustomRelTree.ts b/src/components/Panels/CustomRelTree.ts index 9bcdcc7..829f341 100644 --- a/src/components/Panels/CustomRelTree.ts +++ b/src/components/Panels/CustomRelTree.ts @@ -3,7 +3,7 @@ import * as BUI from "@thatopen/ui"; import { customTreeTemplate } from "../../bim-components/CustomTree"; // Example usage component -export const customRelTree = (components: OBC.Components) => { +export default (components: OBC.Components) => { const customTree = customTreeTemplate({ components, models: [], diff --git a/src/components/Panels/ElementsTable.ts b/src/components/Panels/ElementsTable.ts new file mode 100644 index 0000000..402c940 --- /dev/null +++ b/src/components/Panels/ElementsTable.ts @@ -0,0 +1,22 @@ +import * as OBC from "@thatopen/components"; +import * as BUI from "@thatopen/ui"; +import { QTOTable } from "../../bim-components/CompleteQTO/src/Template"; + +export default (components: OBC.Components) => { + const elementsQTOTable = QTOTable({ components }); + + return BUI.Component.create(() => { + return BUI.html` + + + ${elementsQTOTable} + + + `; + }); +}; diff --git a/src/components/Panels/QTO.ts b/src/components/Panels/SimpleQTO.ts similarity index 91% rename from src/components/Panels/QTO.ts rename to src/components/Panels/SimpleQTO.ts index 9b262d7..a97c1f1 100644 --- a/src/components/Panels/QTO.ts +++ b/src/components/Panels/SimpleQTO.ts @@ -1,11 +1,11 @@ import * as OBC from "@thatopen/components"; import * as BUI from "@thatopen/ui"; import * as OBF from "@thatopen/components-front"; -import { qtoTool } from "../../bim-components/SimpleQTO/src/Template"; +import { simpleQTOTool } from "../../bim-components/SimpleQTO/src/Template"; export default (components: OBC.Components) => { const highlighter = components.get(OBF.Highlighter); - const qtoTable = qtoTool({ components }); + const qtoTable = simpleQTOTool({ components }); highlighter.events.select.onHighlight.add(() => { qtoTable.expanded = true; diff --git a/src/main.ts b/src/main.ts index c5acc57..c1c9fe6 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,19 +2,25 @@ import * as THREE from "three"; import * as OBC from "@thatopen/components"; import * as OBF from "@thatopen/components-front"; import * as BUI from "@thatopen/ui"; + import projectInformation from "./components/Panels/ProjectInformation"; import elementData from "./components/Panels/Selection"; import settings from "./components/Panels/Settings"; +import simpleQtoPanel from "./components/Panels/SimpleQTO"; +import customRelTree from "./components/Panels/CustomRelTree"; +import CompleteQTOPanel from "./components/Panels/CompleteQTO"; +import elementsTable from "./components/Panels/ElementsTable"; + import load from "./components/Toolbars/Sections/Import"; import camera from "./components/Toolbars/Sections/Camera"; import selection from "./components/Toolbars/Sections/Selection"; -import { AppManager } from "./bim-components"; -import { SimpleQTO } from "./bim-components/SimpleQTO/src/SimpleQTO"; + +import { AppManager } from "./bim-components/AppManager"; +import { SimpleQTO } from "./bim-components/SimpleQTO"; +// import { CustomTree } from "./bim-components/CustomTree"; import "./style.css"; -import QTO from "./components/Panels/QTO"; -import { customRelTree } from "./components/Panels/CustomRelTree"; -import { CustomTree } from "./bim-components/CustomTree"; +import { CompleteQTO } from "./bim-components/CompleteQTO"; // Initialize application (async () => { @@ -118,16 +124,20 @@ import { CustomTree } from "./bim-components/CustomTree"; }); // When models are loaded or changed - fragments.onFragmentsLoaded.add(() => { - const customTree = components.get(CustomTree); - customTree.update({ models: fragments.groups.values() }); + fragments.onFragmentsLoaded.add(async () => { + // const customTree = components.get(CustomTree); + // customTree.update({ models: fragments.groups.values() }); + const completeQTO = components.get(CompleteQTO); + await completeQTO.getCategories(); }); // Setup UI components const projectInformationPanel = projectInformation(components); const elementDataPanel = elementData(components); - const qtoPanel = QTO(components); + const qtoPanel = simpleQtoPanel(components); + const completeQTOPanel = CompleteQTOPanel(components); const customTreePanel = customRelTree(components); + const tablePanel = elementsTable(components); const leftPanel = BUI.Component.create(() => { return BUI.html` @@ -152,7 +162,7 @@ import { CustomTree } from "./bim-components/CustomTree"; } }; - const onShowQuantity = async () => { + const onShowSimpleQuantity = async () => { if (!components) return; const highlighter = components.get(OBF.Highlighter); @@ -183,6 +193,19 @@ import { CustomTree } from "./bim-components/CustomTree"; } }; + const onShowCompleteQuantity = async () => { + if (!viewportGrid) { + console.warn("QTO panel not ready yet"); + return; + } + + if (viewportGrid.layout !== "qtoCategories") { + viewportGrid.layout = "qtoCategories"; + } else { + viewportGrid.layout = "main"; + } + }; + const toolbar = BUI.Component.create(() => { return BUI.html` @@ -191,21 +214,27 @@ import { CustomTree } from "./bim-components/CustomTree"; - + > ${camera(world)} ${selection(components, world)} @@ -237,10 +266,11 @@ import { CustomTree } from "./bim-components/CustomTree"; main: { template: ` "empty" 1fr + "tablePanel" 1fr "toolbar" auto /1fr `, - elements: { toolbar }, + elements: { toolbar, tablePanel }, }, second: { template: ` @@ -275,6 +305,17 @@ import { CustomTree } from "./bim-components/CustomTree"; customTreePanel, }, }, + qtoCategories: { + template: ` + "empty completeQTOPanel" 1fr + "toolbar toolbar" auto + /1fr 24rem + `, + elements: { + toolbar, + completeQTOPanel, + }, + }, }; viewportGrid.layout = "main";