private static CcManufacturerProductDetail GetDetailsFromProperty(IfcProperty prop)
        {
            CcManufacturerProductDetail result = null;

            if (prop is IfcPropertySingleValue)
            {
                IfcPropertySingleValue single = prop as IfcPropertySingleValue;
                result = new CcManufacturerProductDetail()
                {
                    AttributeName = single.Name
                };
                result.AttributeValue = GetNominalValue(single.NominalValue);
            }
            else if (prop is IfcPropertyEnumeratedValue)
            {
                IfcPropertyEnumeratedValue enumval = prop as IfcPropertyEnumeratedValue;
                result = new CcManufacturerProductDetail()
                {
                    AttributeName = enumval.Name, AttributeDescription = enumval.Description
                };
                result.AttributeValue = GetEnumeratedValue(enumval.EnumerationValues);
            }
            else
            {
                throw new NotImplementedException();
            }

            return(result);
        }
        private static List <CcManufacturerProductDetail> GetAttributesForProduct(Document document, IfcPropertySet pset)
        {
            List <CcManufacturerProductDetail> details = new List <CcManufacturerProductDetail>();

            foreach (IfcProperty prop in pset.HasProperties.Items)
            {
                CcManufacturerProductDetail det = GetDetailsFromProperty(prop);
                if (det != null)
                {
                    details.Add(det);
                }
            }
            return(details);
        }