public SystemType(IfcSystem ifcSystem, CoBieLiteHelper helper) : this() { externalEntityName = helper.ExternalEntityName(ifcSystem); externalID = helper.ExternalEntityIdentity(ifcSystem); externalSystemName = helper.ExternalSystemName(ifcSystem); SystemName = ifcSystem.Name; SystemDescription = ifcSystem.Description; SystemCategory = helper.GetClassification(ifcSystem); //Attributes var ifcAttributes = helper.GetAttributes(ifcSystem); if (ifcAttributes != null && ifcAttributes.Any()) { SystemAttributes = new AttributeCollectionType { Attribute = ifcAttributes } } ; //TODO: //System Issues //System Documents }
/// <summary> /// Writes out a contact, /// </summary> /// <param name="actor"></param> /// <param name="helper"></param> public ContactType(IfcActorSelect actor, CoBieLiteHelper helper) : this() { var personAndOrganization = actor as IfcPersonAndOrganization; var person = actor as IfcPerson; var organisation = actor as IfcOrganization; if (personAndOrganization != null) { ConvertOrganisation(personAndOrganization.TheOrganization, helper); ConvertPerson(personAndOrganization.ThePerson, helper); } else if (person != null) { ConvertPerson(person, helper); } else if (organisation != null) { ConvertOrganisation(organisation, helper); } ////Attributes //AttributeType[] ifcAttributes = helper.GetAttributes(actor); //if (ifcAttributes != null && ifcAttributes.Length > 0) // ContactAttributes = new AttributeCollectionType { Attribute = ifcAttributes }; }
public ProjectType(IIfcProject ifcProject, CoBieLiteHelper helper) : this() { // _ifcProject = ifcProject; externalEntityName = helper.ExternalEntityName(ifcProject); externalID = helper.ExternalEntityIdentity(ifcProject); externalSystemName = helper.ExternalSystemName(ifcProject); ProjectName = ifcProject.Name; ProjectDescription = ifcProject.Description; }
public SiteType(IIfcSite ifcSite, CoBieLiteHelper helper) : this() { // _ifcSite = ifcSite; externalEntityName = helper.ExternalEntityName(ifcSite); externalID = helper.ExternalEntityIdentity(ifcSite); externalSystemName = helper.ExternalSystemName(ifcSite); SiteName = ifcSite.LongName; SiteDescription = ifcSite.Description; }
private IEnumerable <IfcZone> GetAllZones(IEnumerable <IfcSpace> allSpaces, CoBieLiteHelper helper) { var allZones = new HashSet <IfcZone>(); foreach (var space in allSpaces) { foreach (var zone in helper.GetZones(space)) { allZones.Add(zone); } } return(allZones); }
//private IfcSpace _ifcSpace; public SpaceType(IIfcSpace ifcSpace, CoBieLiteHelper helper) : this() { // _ifcSpace = ifcSpace; externalEntityName = helper.ExternalEntityName(ifcSpace); externalID = helper.ExternalEntityIdentity(ifcSpace); externalSystemName = helper.ExternalSystemName(ifcSpace); SpaceName = ifcSpace.Name; SpaceCategory = helper.GetClassification(ifcSpace); SpaceDescription = ifcSpace.Description; SpaceSignageName = helper.GetCoBieAttribute <StringValueType>("SpaceSignageName", ifcSpace).StringValue; SpaceUsableHeightValue = helper.GetCoBieAttribute <DecimalValueType>("SpaceUsableHeightValue", ifcSpace); SpaceGrossAreaValue = helper.GetCoBieAttribute <DecimalValueType>("SpaceGrossAreaValue", ifcSpace); SpaceNetAreaValue = helper.GetCoBieAttribute <DecimalValueType>("SpaceNetAreaValue", ifcSpace); //Zone Assignment var zones = helper.GetZones(ifcSpace); if (zones != null) { var ifcZones = zones.ToArray(); SpaceZoneAssignments = new ZoneAssignmentCollectionType { ZoneAssignment = new List <ZoneKeyType>(ifcZones.Length) }; for (int i = 0; i < ifcZones.Length; i++) { var zoneAssignment = new ZoneKeyType(); zoneAssignment.ZoneCategory = helper.GetClassification(ifcZones[i]); zoneAssignment.ZoneName = ifcZones[i].Name; zoneAssignment.externalIDReference = helper.ExternalEntityIdentity(ifcZones[i]); SpaceZoneAssignments.Add(zoneAssignment); } } //Attributes var ifcAttributes = helper.GetAttributes(ifcSpace); if (ifcAttributes != null && ifcAttributes.Any()) { SpaceAttributes = new AttributeCollectionType { Attribute = ifcAttributes } } ; //TODO: //Space Issues //Space Documents }
private void SetDefaultUnits(CoBieLiteHelper helper) { if ((FacilityDefaultAreaUnitSpecified = helper.HasAreaUnit) == true) { facilityDefaultAreaUnitField = helper.ModelAreaUnit; } if ((FacilityDefaultLinearUnitSpecified = helper.HasLinearUnit) == true) { facilityDefaultLinearUnitField = helper.ModelLinearUnit; } if ((FacilityDefaultVolumeUnitSpecified = helper.HasVolumeUnit) == true) { facilityDefaultVolumeUnitField = helper.ModelVolumeUnit; } if ((FacilityDefaultCurrencyUnitSpecified = helper.HasCurrencyUnit) == true) { facilityDefaultCurrencyUnitField = helper.ModelCurrencyUnit; } }
public ZoneType(IIfcZone ifcZone, CoBieLiteHelper helper) : this() { externalEntityName = helper.ExternalEntityName(ifcZone); externalID = helper.ExternalEntityIdentity(ifcZone); externalSystemName = helper.ExternalSystemName(ifcZone); ZoneDescription = ifcZone.Description; ZoneCategory = helper.GetClassification(ifcZone); ZoneName = ifcZone.Name; //Attributes var ifcAttributes = helper.GetAttributes(ifcZone); if (ifcAttributes != null && ifcAttributes.Any()) { ZoneAttributes = new AttributeCollectionType { Attribute = ifcAttributes } } ; //TODO: //Space Issues //Space Documents }
public SystemKeyType(IIfcSystem ifcSystem, CoBieLiteHelper helper) { SystemCategory = helper.GetClassification(ifcSystem); SystemName = ifcSystem.Name; externalIDReference = helper.ExternalEntityIdentity(ifcSystem); }
private void ConvertOrganisation(IfcOrganization ifcOrganization, CoBieLiteHelper helper) { if (ifcOrganization.Addresses != null) { var telecom = ifcOrganization.Addresses.OfType <IfcTelecomAddress>(); var postal = ifcOrganization.Addresses.OfType <IfcPostalAddress>(); var ifcTelecomAddresses = telecom as IfcTelecomAddress[] ?? telecom.ToArray(); if (ifcTelecomAddresses.Any()) { var emailAddresses = string.Join(";", ifcTelecomAddresses.SelectMany(t => t.ElectronicMailAddresses)); if (!string.IsNullOrWhiteSpace(emailAddresses)) { ContactEmail = emailAddresses; } var phoneNums = string.Join(";", ifcTelecomAddresses.SelectMany(t => t.TelephoneNumbers)); if (!string.IsNullOrWhiteSpace(phoneNums)) { ContactPhoneNumber = phoneNums; } var url = string.Join(";", ifcTelecomAddresses.Where(p => p.WWWHomePageURL.HasValue).SelectMany(p => p.WWWHomePageURL.ToString())); if (!string.IsNullOrWhiteSpace(url)) { ContactURL = url; } } var ifcPostalAddresses = postal as IfcPostalAddress[] ?? postal.ToArray(); if (ifcPostalAddresses.Any()) { var deptNames = string.Join(";", ifcPostalAddresses.Where(p => p.InternalLocation.HasValue).SelectMany(p => p.InternalLocation.ToString())); if (!string.IsNullOrWhiteSpace(deptNames)) { ContactDepartmentName = deptNames; } var streetNames = string.Join(";", ifcPostalAddresses.Where(p => p.AddressLines != null).SelectMany(p => p.AddressLines.ToString())); if (!string.IsNullOrWhiteSpace(streetNames)) { ContactStreet = streetNames; } var postalBox = string.Join(";", ifcPostalAddresses.Where(p => p.PostalBox.HasValue).SelectMany(p => p.PostalBox.ToString())); if (!string.IsNullOrWhiteSpace(postalBox)) { ContactPostalBoxNumber = postalBox; } var town = string.Join(";", ifcPostalAddresses.Where(p => p.Town.HasValue).SelectMany(p => p.Town.ToString())); if (!string.IsNullOrWhiteSpace(town)) { ContactTownName = town; } var region = string.Join(";", ifcPostalAddresses.Where(p => p.Region.HasValue).SelectMany(p => p.Region.ToString())); if (!string.IsNullOrWhiteSpace(region)) { ContactRegionCode = region; } var postalCode = string.Join(";", ifcPostalAddresses.Where(p => p.PostalCode.HasValue).SelectMany(p => p.PostalCode.ToString())); if (!string.IsNullOrWhiteSpace(postalCode)) { ContactPostalCode = postalCode; } } } if (ifcOrganization.Roles != null) { var roles = string.Join(";", ifcOrganization.Roles.Select(r => r.RoleString)); //deals with User defined roles if (!string.IsNullOrWhiteSpace(roles)) { ContactCategory = roles; } } ContactCompanyName = ifcOrganization.Name; }
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 } }
public FacilityType(IIfcBuilding ifcBuilding, CoBieLiteHelper helper) : this() { // _ifcBuilding = ifcBuilding; var model = ifcBuilding.Model; externalEntityName = helper.ExternalEntityName(ifcBuilding); externalID = helper.ExternalEntityIdentity(ifcBuilding); externalSystemName = helper.ExternalSystemName(ifcBuilding); FacilityName = ifcBuilding.Name; FacilityDescription = ifcBuilding.Description; FacilityCategory = helper.GetClassification(ifcBuilding); var ifcProject = model.Instances.OfType <IIfcProject>().FirstOrDefault(); if (ifcProject != null) { ProjectAssignment = new ProjectType(ifcProject, helper); var ifcSite = ifcProject.SpatialStructuralElements.FirstOrDefault(p => p is IIfcSite) as IIfcSite; if (ifcSite != null) { SiteAssignment = new SiteType(ifcSite, helper); } SetDefaultUnits(helper); FacilityDeliverablePhaseName = ifcProject.Phase; var storeys = ifcBuilding.BuildingStoreys; var ifcBuildingStories = storeys as IList <IIfcBuildingStorey> ?? storeys.ToList(); if (ifcBuildingStories.Any()) { Floors = new FloorCollectionType { Floor = new List <FloorType>(ifcBuildingStories.Count) }; for (int i = 0; i < ifcBuildingStories.Count; i++) { Floors.Add(new FloorType(ifcBuildingStories[i], helper)); } } } //Attributes var ifcAttributes = helper.GetAttributes(ifcBuilding); if (ifcAttributes != null && ifcAttributes.Any()) { FacilityAttributes = new AttributeCollectionType { Attribute = ifcAttributes } } ; //Zones var allSpaces = GetAllSpaces(ifcBuilding); var allZones = GetAllZones(allSpaces, helper); var ifcZones = allZones.ToArray(); if (ifcZones.Any()) { Zones = new ZoneCollectionType { Zone = new List <ZoneType>(ifcZones.Length) }; for (int i = 0; i < ifcZones.Length; i++) { Zones.Add(new ZoneType(ifcZones[i], helper)); } } //Assets var allAssetsinThisFacility = new HashSet <IIfcElement>(helper.GetAllAssets(ifcBuilding)); //AssetTypes //Get all assets that are in this facility/building var allAssetTypesInThisFacility = AllAssetTypesInThisFacility(ifcBuilding, allAssetsinThisFacility, helper); if (allAssetTypesInThisFacility.Any()) { AssetTypes = new AssetTypeCollectionType { AssetType = new List <AssetTypeInfoType>(allAssetTypesInThisFacility.Count) }; for (int i = 0; i < allAssetTypesInThisFacility.Count; i++) { AssetTypes.Add(new AssetTypeInfoType(allAssetTypesInThisFacility[i], helper)); } } //Systems var allSystemsInThisFacility = helper.SystemAssignment .Where(v => v.Value.Any(allAssetsinThisFacility.Contains)) .Select(k => k.Key).ToArray(); if (allSystemsInThisFacility.Any()) { Systems = new SystemCollectionType { System = new List <SystemType>(allSystemsInThisFacility.Length) }; for (int i = 0; i < allSystemsInThisFacility.Length; i++) { Systems.Add(new SystemType(allSystemsInThisFacility[i], helper)); } } //Contacts var contacts = helper.GetContacts(); var ifcActors = contacts as IIfcActorSelect[] ?? contacts.ToArray(); if (ifcActors.Any()) { Contacts = new ContactCollectionType { Contact = new List <ContactType>(ifcActors.Length) }; for (int i = 0; i < ifcActors.Length; i++) { Contacts.Add(new ContactType(ifcActors[i], helper)); } } }
private static List <IIfcTypeObject> AllAssetTypesInThisFacility(IIfcBuilding ifcBuilding, HashSet <IIfcElement> allAssetsinThisFacility, CoBieLiteHelper helper) { var allAssetTypes = helper.DefiningTypeObjectMap; var allAssetTypesInThisFacility = new List <IIfcTypeObject>(allAssetTypes.Count); foreach (var assetTypeKeyValue in allAssetTypes) { //if any defining type has an object in this building/facility then we need to include it if (assetTypeKeyValue.Value.Any(allAssetsinThisFacility.Contains)) { allAssetTypesInThisFacility.Add(assetTypeKeyValue.Key); } } return(allAssetTypesInThisFacility); }
//[System.Xml.Serialization.XmlIgnoreAttribute()] //private IfcBuildingStorey _ifcBuildingStorey; public FloorType(IfcBuildingStorey ifcBuildingStorey, CoBieLiteHelper helper) : this() { // _ifcBuildingStorey = ifcBuildingStorey; externalEntityName = helper.ExternalEntityName(ifcBuildingStorey); externalID = helper.ExternalEntityIdentity(ifcBuildingStorey); externalSystemName = helper.ExternalSystemName(ifcBuildingStorey); FloorName = ifcBuildingStorey.Name; FloorCategory = helper.GetClassification(ifcBuildingStorey); FloorDescription = ifcBuildingStorey.Description; //set the fall backs if (ifcBuildingStorey.Elevation.HasValue) { FloorElevationValue = new DecimalValueType { DecimalValue = ifcBuildingStorey.Elevation.Value, DecimalValueSpecified = true }; //TODO: work out if the units can change //FloorElevationValue.UnitName = } FloorHeightValue = helper.GetCoBieAttribute <DecimalValueType>("FloorHeightValue", ifcBuildingStorey); //var heightProperty = ifcBuildingStorey.GetTotalHeightProperty(); //if (heightProperty != null) //{ // FloorHeightValue = new DecimalValueType // { // DecimalValue = heightProperty.LengthValue, // DecimalValueSpecified = true, // UnitName = heightProperty.Unit.GetName() // }; //} var spaces = ifcBuildingStorey.GetSpaces(); var ifcSpaces = spaces as IList <IfcSpace> ?? spaces.ToList(); if (ifcSpaces.Any()) { Spaces = new SpaceCollectionType { Space = new List <SpaceType>(ifcSpaces.Count) }; for (var i = 0; i < ifcSpaces.Count; i++) { Spaces.Add(new SpaceType(ifcSpaces[i], helper)); } } //Attributes var ifcAttributes = helper.GetAttributes(ifcBuildingStorey); if (ifcAttributes != null && ifcAttributes.Any()) { FloorAttributes = new AttributeCollectionType { Attribute = ifcAttributes } } ; //TODO: //Space Issues //Space Documents }
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 } } ; }
private void ConvertPerson(IfcPerson ifcPerson, CoBieLiteHelper helper) { ContactFamilyName = ifcPerson.FamilyName; ContactGivenName = ifcPerson.GivenName; if (ifcPerson.Addresses != null) { var telecom = ifcPerson.Addresses.OfType <IfcTelecomAddress>(); var postal = ifcPerson.Addresses.OfType <IfcPostalAddress>(); var ifcTelecomAddresses = telecom as IfcTelecomAddress[] ?? telecom.ToArray(); if (ifcTelecomAddresses.Any()) { var emailAddresses = string.Join(";", ifcTelecomAddresses.SelectMany(t => t.ElectronicMailAddresses)); if (!string.IsNullOrWhiteSpace(emailAddresses)) { ContactEmail = string.Join(";", emailAddresses, ContactEmail ?? ""); } var phoneNums = string.Join(";", ifcTelecomAddresses.SelectMany(t => t.TelephoneNumbers)); if (!string.IsNullOrWhiteSpace(phoneNums)) { ContactPhoneNumber = string.Join(";", phoneNums, ContactPhoneNumber ?? ""); } var url = string.Join(";", ifcTelecomAddresses.Where(p => p.WWWHomePageURL.HasValue).SelectMany(p => p.WWWHomePageURL.ToString())); if (!string.IsNullOrWhiteSpace(url)) { ContactURL = string.Join(";", url, ContactURL ?? ""); } ; } var ifcPostalAddresses = postal as IfcPostalAddress[] ?? postal.ToArray(); if (ifcPostalAddresses.Any()) { var deptNames = string.Join(";", ifcPostalAddresses.Where(p => p.InternalLocation.HasValue).SelectMany(p => p.InternalLocation.ToString())); if (!string.IsNullOrWhiteSpace(deptNames)) { ContactDepartmentName = string.Join(";", deptNames, ContactDepartmentName ?? ""); } var streetNames = string.Join(";", ifcPostalAddresses.Where(p => p.AddressLines != null).SelectMany(p => p.AddressLines.ToString())); if (!string.IsNullOrWhiteSpace(streetNames)) { ContactStreet = string.Join(";", streetNames, ContactStreet ?? ""); } var postalBox = string.Join(";", ifcPostalAddresses.Where(p => p.PostalBox.HasValue).SelectMany(p => p.PostalBox.ToString())); if (!string.IsNullOrWhiteSpace(postalBox)) { ContactPostalBoxNumber = string.Join(";", postalBox, ContactPostalBoxNumber ?? ""); } var town = string.Join(";", ifcPostalAddresses.Where(p => p.Town.HasValue).SelectMany(p => p.Town.ToString())); if (!string.IsNullOrWhiteSpace(town)) { ContactTownName = string.Join(";", town, ContactTownName ?? ""); } var region = string.Join(";", ifcPostalAddresses.Where(p => p.Region.HasValue).SelectMany(p => p.Region.ToString())); if (!string.IsNullOrWhiteSpace(region)) { ContactRegionCode = string.Join(";", region, ContactRegionCode ?? ""); } var postalCode = string.Join(";", ifcPostalAddresses.Where(p => p.PostalCode.HasValue).SelectMany(p => p.PostalCode.ToString())); if (!string.IsNullOrWhiteSpace(postalCode)) { ContactPostalCode = string.Join(";", postalCode, ContactPostalCode ?? ""); } } } if (ifcPerson.Roles != null) { var roles = string.Join(";", ifcPerson.Roles.SelectMany(r => r.RoleString)); //deals with User defined roles if (!string.IsNullOrWhiteSpace(roles)) { ContactCategory = string.Join(";", roles, ContactCategory ?? ""); } } }
public SpaceKeyType(IfcSpace ifcSpace, CoBieLiteHelper helper) : this() { FloorName = helper.SpaceFloorLookup[ifcSpace].Name; SpaceName = ifcSpace.Name; }