/// <summary> /// Create IFC Address from the saved data obtained by the UI and saved in the extensible storage /// </summary> /// <param name="file"></param> /// <param name="document"></param> /// <returns>The handle of IFC file.</returns> private IFCAnyHandle CreateIFCAddressFromExtStorage(IFCFile file, Document document) { IFCAddress savedAddress = new IFCAddress(); IFCAddressItem savedAddressItem; if (savedAddress.GetSavedAddress(document, out savedAddressItem) == true) { IFCAnyHandle postalAddress; // We have address saved in the extensible storage List<string> addressLines = new List<string>(); if (!String.IsNullOrEmpty(savedAddressItem.AddressLine1)) { addressLines.Add(savedAddressItem.AddressLine1); if (!String.IsNullOrEmpty(savedAddressItem.AddressLine2)) addressLines.Add(savedAddressItem.AddressLine2); } IFCAddressType? addressPurpose = null; if (!String.IsNullOrEmpty(savedAddressItem.Purpose)) { addressPurpose = IFCAddressType.UserDefined; // set this as default value if (String.Compare(savedAddressItem.Purpose, "OFFICE", true) == 0) addressPurpose = Toolkit.IFCAddressType.Office; else if (String.Compare(savedAddressItem.Purpose, "SITE", true) == 0) addressPurpose = Toolkit.IFCAddressType.Site; else if (String.Compare(savedAddressItem.Purpose, "HOME", true) == 0) addressPurpose = Toolkit.IFCAddressType.Home; else if (String.Compare(savedAddressItem.Purpose, "DISTRIBUTIONPOINT", true) == 0) addressPurpose = Toolkit.IFCAddressType.DistributionPoint; else if (String.Compare(savedAddressItem.Purpose, "USERDEFINED", true) == 0) addressPurpose = Toolkit.IFCAddressType.UserDefined; } postalAddress = IFCInstanceExporter.CreatePostalAddress(file, addressPurpose, savedAddressItem.Description, savedAddressItem.UserDefinedPurpose, savedAddressItem.InternalLocation, addressLines, savedAddressItem.POBox, savedAddressItem.TownOrCity, savedAddressItem.RegionOrState, savedAddressItem.PostalCode, savedAddressItem.Country); return postalAddress; } return null; }