/// <summary> /// Initializes COBIE space level quantities. /// </summary> /// <param name="cobieQuantities">List to store quantities.</param> private static void InitCOBIESpaceLevelQuantities(IList<QuantityDescription> cobieQuantities) { QuantityDescription ifcCOBIEQuantity = new QuantityDescription(); ifcCOBIEQuantity.Name = "BaseQuantities"; ifcCOBIEQuantity.EntityTypes.Add(IFCEntityType.IfcSpace); ifcCOBIEQuantity.DescriptionCalculator = SpaceLevelDescriptionCalculator.Instance; QuantityEntry ifcQE = new QuantityEntry("GrossFloorArea"); ifcQE.MethodOfMeasurement = "area measured in geometry"; ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SpaceLevelAreaCalculator.Instance; ifcCOBIEQuantity.AddEntry(ifcQE); cobieQuantities.Add(ifcCOBIEQuantity); }
/// <summary> /// Initializes COBIE BM space quantities. /// </summary> /// <param name="cobieQuantities">List to store quantities.</param> private static void InitCOBIEPMSpaceQuantities(IList<QuantityDescription> cobieQuantities) { QuantityDescription ifcCOBIEQuantity = new QuantityDescription(); ifcCOBIEQuantity.Name = "Space Quantities (Property Management)"; ifcCOBIEQuantity.MethodOfMeasurement = "As defined by BOMA (see www.boma.org)"; ifcCOBIEQuantity.EntityTypes.Add(IFCEntityType.IfcSpace); QuantityEntry ifcQE = new QuantityEntry("NetFloorArea_BOMA"); ifcQE.MethodOfMeasurement = "area measured in geometry"; ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SpaceAreaCalculator.Instance; ifcCOBIEQuantity.AddEntry(ifcQE); cobieQuantities.Add(ifcCOBIEQuantity); }
/// <summary> /// Initializes Door base quantity /// </summary> /// <param name="baseQuantities"></param> private static void InitDoorBaseQuantities(IList<QuantityDescription> baseQuantities) { QuantityDescription ifcBaseQuantity = new QuantityDescription(); ifcBaseQuantity.Name = "BaseQuantities"; ifcBaseQuantity.EntityTypes.Add(IFCEntityType.IfcDoor); QuantityEntry ifcQE = new QuantityEntry("Height"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitBuiltInParameter = BuiltInParameter.DOOR_HEIGHT; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("Width"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitBuiltInParameter = BuiltInParameter.DOOR_WIDTH; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("Area"); ifcQE.MethodOfMeasurement = "area measured in geometry"; ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = DoorAreaCalculator.Instance; ifcBaseQuantity.AddEntry(ifcQE); baseQuantities.Add(ifcBaseQuantity); }
/// <summary> /// Initializes COBIE space quantities. /// </summary> /// <param name="cobieQuantities">List to store quantities.</param> private static void InitCOBIESpaceQuantities(IList<QuantityDescription> cobieQuantities) { QuantityDescription ifcCOBIEQuantity = new QuantityDescription(); ifcCOBIEQuantity.Name = "BaseQuantities"; ifcCOBIEQuantity.EntityTypes.Add(IFCEntityType.IfcSpace); QuantityEntry ifcQE = new QuantityEntry("Height"); ifcQE.MethodOfMeasurement = "length measured in geometry"; ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.PropertyCalculator = SpaceHeightCalculator.Instance; ifcCOBIEQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossPerimeter"); ifcQE.MethodOfMeasurement = "length measured in geometry"; ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.PropertyCalculator = SpacePerimeterCalculator.Instance; ifcCOBIEQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossFloorArea"); ifcQE.MethodOfMeasurement = "area measured in geometry"; ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SpaceAreaCalculator.Instance; ifcCOBIEQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("NetFloorArea"); ifcQE.MethodOfMeasurement = "area measured in geometry"; ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SpaceAreaCalculator.Instance; ifcCOBIEQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossVolume"); ifcQE.MethodOfMeasurement = "volume measured in geometry"; ifcQE.QuantityType = QuantityType.Volume; ifcQE.PropertyCalculator = SpaceVolumeCalculator.Instance; ifcCOBIEQuantity.AddEntry(ifcQE); cobieQuantities.Add(ifcCOBIEQuantity); }
/// <summary> /// Initializes Space base quantity /// </summary> /// <param name="baseQuantities"></param> private static void InitSpaceBaseQuantities(IList<QuantityDescription> baseQuantities) { QuantityDescription ifcBaseQuantity = new QuantityDescription(); ifcBaseQuantity.Name = "BaseQuantities"; ifcBaseQuantity.EntityTypes.Add(IFCEntityType.IfcSpace); QuantityEntry ifcQE = new QuantityEntry("NetFloorArea"); ifcQE.MethodOfMeasurement = "area measured in geometry"; ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SpaceAreaCalculator.Instance; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("FinishCeilingHeight"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitParameterName = "IfcQtyFinishCeilingHeight"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("NetCeilingArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.RevitParameterName = "IfcQtyNetCeilingArea"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossCeilingArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.RevitParameterName = "IfcQtyGrossCeilingArea"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("NetWallArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.RevitParameterName = "IfcQtyNetWallArea"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossWallArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.RevitParameterName = "IfcQtyGrossWallArea"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("Height"); ifcQE.MethodOfMeasurement = "length measured in geometry"; ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.PropertyCalculator = SpaceHeightCalculator.Instance; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("NetPerimeter"); ifcQE.MethodOfMeasurement = "length measured in geometry"; ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitParameterName = "IfcQtyNetPerimeter"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossPerimeter"); ifcQE.MethodOfMeasurement = "length measured in geometry"; ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.PropertyCalculator = SpacePerimeterCalculator.Instance; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossFloorArea"); ifcQE.MethodOfMeasurement = "area measured in geometry"; ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SpaceAreaCalculator.Instance; ifcBaseQuantity.AddEntry(ifcQE); ExportOptionsCache exportOptionsCache = ExporterCacheManager.ExportOptionsCache; if (!ExporterUtil.IsFMHandoverView()) // FMHandOver view exclude GrossVolumne, FinishFloorHeight { ifcQE = new QuantityEntry("GrossVolume"); ifcQE.MethodOfMeasurement = "volume measured in geometry"; ifcQE.QuantityType = QuantityType.Volume; ifcQE.PropertyCalculator = SpaceVolumeCalculator.Instance; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("FinishFloorHeight"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitParameterName = "IfcQtyFinishFloorHeight"; ifcBaseQuantity.AddEntry(ifcQE); } baseQuantities.Add(ifcBaseQuantity); }
/// <summary> /// Initializes Covering base quantity /// </summary> /// <param name="baseQuantities"></param> private static void InitCoveringBaseQuantities(IList<QuantityDescription> baseQuantities) { QuantityDescription ifcBaseQuantity = new QuantityDescription(); ifcBaseQuantity.Name = "BaseQuantities"; ifcBaseQuantity.EntityTypes.Add(IFCEntityType.IfcCovering); QuantityEntry ifcQE = new QuantityEntry("GrossArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.RevitParameterName = "IfcQtyGrossArea"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("NetArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.RevitParameterName = "IfcQtyNetArea"; ifcBaseQuantity.AddEntry(ifcQE); baseQuantities.Add(ifcBaseQuantity); }
/// <summary> /// Initializes Building Storey base quantity /// </summary> /// <param name="baseQuantities"></param> private static void InitBuildingStoreyBaseQuantities(IList<QuantityDescription> baseQuantities) { QuantityDescription ifcBaseQuantity = new QuantityDescription(); ifcBaseQuantity.Name = "BaseQuantities"; ifcBaseQuantity.EntityTypes.Add(IFCEntityType.IfcBuildingStorey); QuantityEntry ifcQE = new QuantityEntry("NetHeight"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitParameterName = "IfcQtyNetHeight"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossHeight"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitParameterName = "IfcQtyGrossHeight"; ifcBaseQuantity.AddEntry(ifcQE); ExportOptionsCache exportOptionsCache = ExporterCacheManager.ExportOptionsCache; if (!ExporterUtil.IsFMHandoverView()) // FMHandOver view exclude NetArea, GrossArea, NetVolume and GrossVolumne { ifcQE = new QuantityEntry("NetFloorArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SpaceLevelAreaCalculator.Instance; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossFloorArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SpaceLevelAreaCalculator.Instance; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossPerimeter"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitParameterName = "IfcQtyGrossPerimeter"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("NetVolume"); ifcQE.QuantityType = QuantityType.Volume; ifcQE.RevitParameterName = "IfcQtyNetVolume"; ifcBaseQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossVolume"); ifcQE.QuantityType = QuantityType.Volume; ifcQE.RevitParameterName = "IfcQtyGrossVolume"; ifcBaseQuantity.AddEntry(ifcQE); } baseQuantities.Add(ifcBaseQuantity); }
/// <summary> /// Initializes ramp flight base quantities. /// </summary> /// <param name="baseQuantities">List to store quantities.</param> private static void InitRampFlightBaseQuantities(IList<QuantityDescription> baseQuantities) { QuantityDescription ifcBaseQuantity = new QuantityDescription(); ifcBaseQuantity.Name = "BaseQuantities"; ifcBaseQuantity.EntityTypes.Add(IFCEntityType.IfcRampFlight); QuantityEntry ifcQE = new QuantityEntry("Width"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitBuiltInParameter = BuiltInParameter.STAIRS_ATTR_TREAD_WIDTH; ifcBaseQuantity.AddEntry(ifcQE); baseQuantities.Add(ifcBaseQuantity); }
/// <summary> /// Initializes slab base quantities. /// </summary> /// <param name="baseQuantities">List to store quantities.</param> private static void InitSlabBaseQuantities(IList<QuantityDescription> baseQuantities) { QuantityDescription ifcSlabQuantity = new QuantityDescription(); ifcSlabQuantity.Name = "BaseQuantities"; ifcSlabQuantity.EntityTypes.Add(IFCEntityType.IfcSlab); QuantityEntry ifcQE = new QuantityEntry("GrossArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.PropertyCalculator = SlabGrossAreaCalculator.Instance; ifcSlabQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("GrossVolume"); ifcQE.QuantityType = QuantityType.Volume; ifcQE.PropertyCalculator = SlabGrossVolumeCalculator.Instance; ifcSlabQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("Perimeter"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.PropertyCalculator = SlabPerimeterCalculator.Instance; ifcSlabQuantity.AddEntry(ifcQE); ifcQE = new QuantityEntry("Width"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.PropertyCalculator = SlabWidthCalculator.Instance; ifcSlabQuantity.AddEntry(ifcQE); baseQuantities.Add(ifcSlabQuantity); }
/// <summary> /// Initializes railing base quantities. /// </summary> /// <param name="baseQuantities">List to store quantities.</param> private static void InitRailingBaseQuantities(IList<QuantityDescription> baseQuantities) { QuantityDescription ifcRailingQuantity = new QuantityDescription(); ifcRailingQuantity.Name = "BaseQuantities"; ifcRailingQuantity.EntityTypes.Add(IFCEntityType.IfcRailing); QuantityEntry ifcQE = new QuantityEntry("Length"); ifcQE.QuantityType = QuantityType.PositiveLength; ifcQE.RevitBuiltInParameter = BuiltInParameter.CURVE_ELEM_LENGTH; ifcRailingQuantity.AddEntry(ifcQE); baseQuantities.Add(ifcRailingQuantity); }
// Quantities /// <summary> /// Initializes ceiling base quantities. /// </summary> /// <param name="baseQuantities">List to store quantities.</param> private static void InitCeilingBaseQuantities(IList<QuantityDescription> baseQuantities) { QuantityDescription ifcCeilingQuantity = new QuantityDescription(); ifcCeilingQuantity.Name = "BaseQuantities"; ifcCeilingQuantity.EntityTypes.Add(IFCEntityType.IfcCovering); QuantityEntry ifcQE = new QuantityEntry("GrossCeilingArea"); ifcQE.QuantityType = QuantityType.Area; ifcQE.RevitBuiltInParameter = BuiltInParameter.HOST_AREA_COMPUTED; ifcCeilingQuantity.AddEntry(ifcQE); baseQuantities.Add(ifcCeilingQuantity); }