public override bool Equals(object obj)
        {
            // Check for null
            if (obj == null)
            {
                return(false);
            }

            // Check for type
            if (this.GetType() != obj.GetType())
            {
                return(false);
            }

            // Cast as IfcRoot
            IfcProfileProperties root = (IfcProfileProperties)obj;

            return(this == root);
        }
        public override void IfcParse(int propIndex, IPropertyValue value)
        {
            switch (propIndex)
            {
                case 0:
                case 1:
                case 2:
                case 3:
                case 4:
                    base.IfcParse(propIndex, value);
                    break;
                case 5:
                    _relatingProfileProperties = (IfcProfileProperties) value.EntityVal;
                    break;
                case 6:
                    _profileSectionLocation = (IfcShapeAspect) value.EntityVal;
                    break;
                case 7:
                    _profileOrientation = (IfcOrientationSelect) value.EntityVal;
                    break;

                default:
                    this.HandleUnexpectedAttribute(propIndex, value); break;
            }
        }