public AssetTypeInfoType(IIfcTypeObject ifcTypeObject, CoBieLiteHelper helper) : this() { externalEntityName = helper.ExternalEntityName(ifcTypeObject); externalID = helper.ExternalEntityIdentity(ifcTypeObject); externalSystemName = helper.ExternalSystemName(ifcTypeObject); AssetTypeName = ifcTypeObject.Name; AssetTypeCategory = helper.GetClassification(ifcTypeObject); string accCategoryString = helper.GetCoBieProperty("AssetTypeAccountingCategory", ifcTypeObject); AssetPortabilitySimpleType accCategoryEnum; if (Enum.TryParse(accCategoryString, true, out accCategoryEnum)) { AssetTypeAccountingCategory = accCategoryEnum; } else { CoBieLiteHelper.Logger.WarnFormat("AssetTypeAccountingCategory: An illegal value of [{0}] has been passed for the category of #{1}={2}. It has been replaced with a value of 'Item'", accCategoryString, ifcTypeObject.EntityLabel, ifcTypeObject.GetType().Name); AssetTypeAccountingCategory = AssetPortabilitySimpleType.Item; } if (string.IsNullOrWhiteSpace(AssetTypeCategory)) //try the asset assignment { IIfcAsset ifcAsset; if (helper.AssetAsignments.TryGetValue(ifcTypeObject, out ifcAsset)) { AssetTypeCategory = helper.GetCoBieAttribute <StringValueType>("AssetTypeAccountingCategory", ifcAsset).StringValue; } } AssetTypeDescription = ifcTypeObject.Description; AssetTypeModelNumber = helper.GetCoBieProperty("AssetTypeModelNumber", ifcTypeObject); AssetTypeReplacementCostValue = helper.GetCoBieAttribute <DecimalValueType>("AssetTypeReplacementCostValue", ifcTypeObject); AssetTypeExpectedLifeValue = helper.GetCoBieAttribute <IntegerValueType>("AssetTypeExpectedLifeValue", ifcTypeObject); AssetTypeNominalLength = helper.GetCoBieAttribute <DecimalValueType>("AssetTypeNominalLength", ifcTypeObject); AssetTypeNominalWidth = helper.GetCoBieAttribute <DecimalValueType>("AssetTypeNominalWidth", ifcTypeObject); AssetTypeNominalHeight = helper.GetCoBieAttribute <DecimalValueType>("AssetTypeNominalHeight", ifcTypeObject); AssetTypeAccessibilityText = helper.GetCoBieProperty("AssetTypeAccessibilityText", ifcTypeObject); AssetTypeColorCode = helper.GetCoBieProperty("AssetTypeColorCode", ifcTypeObject); AssetTypeConstituentsDescription = helper.GetCoBieProperty("AssetTypeConstituentsDescription", ifcTypeObject); AssetTypeFeaturesDescription = helper.GetCoBieProperty("AssetTypeFeaturesDescription", ifcTypeObject); AssetTypeGradeDescription = helper.GetCoBieProperty("AssetTypeGradeDescription", ifcTypeObject); AssetTypeMaterialDescription = helper.GetCoBieProperty("AssetTypeMaterialDescription", ifcTypeObject); AssetTypeShapeDescription = helper.GetCoBieProperty("AssetTypeShapeDescription", ifcTypeObject); AssetTypeSizeDescription = helper.GetCoBieProperty("AssetTypeSizeDescription", ifcTypeObject); AssetTypeSustainabilityPerformanceDescription = helper.GetCoBieProperty("AssetTypeSustainabilityPerformanceDescription", ifcTypeObject); //The Assets List <IIfcElement> allAssetsofThisType; if (helper.DefiningTypeObjectMap.TryGetValue(ifcTypeObject, out allAssetsofThisType)) //should always work { Assets = new AssetCollectionType { Asset = new List <AssetInfoType>(allAssetsofThisType.Count) }; foreach (IIfcElement t in allAssetsofThisType) { Assets.Add(new AssetInfoType(t, helper)); } } else { //just in case we have a problem CoBieLiteHelper.Logger.ErrorFormat("Asset Type: Failed to locate Asset Type #{0}={1}", ifcTypeObject.EntityLabel, ifcTypeObject.GetType().Name); } //Attributes var ifcAttributes = helper.GetAttributes(ifcTypeObject); if (ifcAttributes != null && ifcAttributes.Any()) { AssetTypeAttributes = new AttributeCollectionType { Attribute = ifcAttributes } } ; }
public AssetInfoType(IfcElement ifcElement, CoBieLiteHelper helper) : this() { externalEntityName = helper.ExternalEntityName(ifcElement); externalID = helper.ExternalEntityIdentity(ifcElement); externalSystemName = helper.ExternalSystemName(ifcElement); AssetName = ifcElement.Name; AssetDescription = ifcElement.Description; AssetSerialNumber = helper.GetCoBieProperty("AssetSerialNumber", ifcElement); AssetInstallationDate = helper.GetCoBieProperty <DateTime>("AssetInstallationDate", ifcElement); AssetInstallationDateSpecified = AssetInstallationDate != default(DateTime); AssetInstalledModelNumber = helper.GetCoBieProperty("AssetInstalledModelNumber", ifcElement); AssetWarrantyStartDate = helper.GetCoBieProperty <DateTime>("AssetWarrantyStartDate", ifcElement); AssetWarrantyStartDateSpecified = AssetWarrantyStartDate != default(DateTime); AssetStartDate = helper.GetCoBieProperty("AssetStartDate", ifcElement); //why isn't this a date in the schema? AssetTagNumber = helper.GetCoBieProperty("AssetTagNumber", ifcElement); AssetBarCode = helper.GetCoBieProperty("AssetBarCode", ifcElement); AssetIdentifier = helper.GetCoBieProperty("AssetIdentifier", ifcElement); AssetLocationDescription = helper.GetCoBieProperty("AssetLocationDescription", ifcElement); //Attributes AttributeType[] ifcAttributes = helper.GetAttributes(ifcElement); if (ifcAttributes != null && ifcAttributes.Length > 0) { AssetAttributes = new AttributeCollectionType { Attribute = ifcAttributes } } ; //System Assignments List <IfcSystem> systems; if (helper.SystemLookup.TryGetValue(ifcElement, out systems)) { AssetSystemAssignments = new SystemAssignmentCollectionType { SystemAssignment = new SystemKeyType[systems.Count] }; for (int i = 0; i < systems.Count; i++) { AssetSystemAssignments.SystemAssignment[i] = new SystemKeyType(systems[i], helper); } } //Space Assignments List <IfcSpace> spaces; if (helper.SpaceAssetLookup.TryGetValue(ifcElement, out spaces)) { AssetSpaceAssignments = new SpaceAssignmentCollectionType { SpaceAssignment = new SpaceKeyType[spaces.Count] }; for (int i = 0; i < spaces.Count; i++) { AssetSpaceAssignments.SpaceAssignment[i] = new SpaceKeyType(spaces[i], helper); } } //Issues //Documents } }