/// <summary>
        /// Finds the value of a optional length attribute.
        /// </summary>
        /// <param name="handle">The entity handle.</param>
        /// <param name="name">The name of the atribute.</param>
        /// <param name="defaultValue">The default value, if not found.</param>
        /// <returns>The length value, scaled.</returns>
        /// <remarks>defaultValue should be scaled.</remarks>
        static public double GetOptionalScaledLengthAttribute(IFCAnyHandle handle, string name, double defaultValue)
        {
            double?value = IFCAnyHandleUtil.GetDoubleAttribute(handle, name);

            if (value.HasValue)
            {
                return(IFCUnitUtil.ScaleLength(value.Value));
            }

            return(defaultValue);
        }
        /// <summary>
        /// Finds the value of a required length attribute.
        /// </summary>
        /// <param name="handle">The entity handle.</param>
        /// <param name="name">The name of the atribute.</param>
        /// <param name="found">True if it was found, false if not.</param>
        /// <returns>The length value, scaled.</returns>
        static public double GetRequiredScaledLengthAttribute(IFCAnyHandle handle, string name, out bool found)
        {
            double?value = IFCAnyHandleUtil.GetDoubleAttribute(handle, name);

            if (value.HasValue)
            {
                found = true;
                return(IFCUnitUtil.ScaleLength(value.Value));
            }

            Importer.TheLog.LogMissingRequiredAttributeError(handle, name, false);
            found = false;
            return(0.0);
        }