/// <summary>
        /// Manejador de eventos para el evento <c>DigiNG.AddingEntity</c>
        /// </summary>
        /// <remarks>
        /// En caso de que la entidad a almacenar sea una lína, comprueba esta tiene entre sus códigos alguno de entre los enumerados por el usuario en la línea de 
        /// comandos. Si es así, comprueba el área y si esta es inferior al mínimo indicado por el usuario en la línea de comandos, cancela su escritura.
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void DigiNG_AddingEntity(object sender, AddingEntityEventArgs e)
        {
            if (!SustituirOEliminarEntidadesPorArea.Sustituir)
                return;

            if (!(e.Entity is ReadOnlyLine))
                return;

            ReadOnlyLine línea = e.Entity as ReadOnlyLine;

            if (!línea.Closed)
                return;

            foreach (var nombreCódigo in códigos.Keys)
            {
                if (línea.TieneElCódigo(nombreCódigo))
                {
                    var area = System.Math.Abs(DigiNG.GeographicCalculator.CalculateArea(línea));

                    if (area < códigos[nombreCódigo])
                    {
                        Digi3D.ShowBallon(
                            "Entidad descartada",
                            string.Format("Se descartó la línea con código {0} porque su área {1} es inferior a {2}", nombreCódigo, area, códigos[nombreCódigo]),
                            2);

                        DigiNG.DrawEntity(e.Entity, DrawingMode.Hide);
                        e.Cancel = true;
                        return;
                    }
                }
            }
        }
        /// <summary>
        /// Manejador de eventos para el evento <c>DigiNG.AddingEntity</c>
        /// </summary>
        /// <remarks>
        /// En caso de que la entidad a almacenar sea una lína, comprueba esta tiene entre sus códigos alguno de entre los enumerados por el usuario en la línea de 
        /// comandos. Si es así, comprueba el área y si esta es inferior al mínimo indicado por el usuario en la línea de comandos, cancela su escritura y ejecuta la
        /// orden PUNTO_R para que el usuario introduzca un segundo punto con la rotación del puntual.
        /// </remarks>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void DigiNG_AddingEntity(object sender, AddingEntityEventArgs e)
        {
            if (!SustituirOEliminarEntidadesPorArea.Sustituir)
                return;

            if (!(e.Entity is ReadOnlyLine))
                return;

            ReadOnlyLine línea = e.Entity as ReadOnlyLine;

            if (!línea.Closed)
                return;

            foreach (var nombreCódigo in códigos.Keys)
            {
                if (línea.TieneElCódigo(nombreCódigo))
                {
                    var area = Math.Abs(DigiNG.GeographicCalculator.CalculateArea(línea));
                    if (area < códigos[nombreCódigo].Area)
                    {
                        Digi3D.ShowBallon(
                            "Sustitución de área por puntual",
                            string.Format("Se va a sustituir su área con código {0} por un puntual con código {1} porque su área {2} es inferior a {3}",
                                nombreCódigo,
                                códigos[nombreCódigo].CódigoPunto,
                                area,
                                códigos[nombreCódigo].Area),
                            2);

                        DigiNG.DrawEntity(e.Entity, DrawingMode.Hide);
                        e.Cancel = true;

                        // En vez de ejecutar la orden PUNTO_R, ejecutamos su GUID, de modo que esta extensión sea compatible independientemente del idioma seleccionado por el usuario para Digi3D.
                        DigiNG.Commands.Push("{D768CDA8-0BFA-465f-BC53-92F8C3D52786}=" + códigos[nombreCódigo].CódigoPunto, false);

                        // Por último, generamos un evento de pulsación de pedal/botón de dato con las coordenadas del centro de la entidad que no se va a almacenar, para así hacer que la orden PUNTO_R
                        // únicamente le solicite al usuario el segundo punto (el que indica la rotación del punto).
                        DigiNG.Commands.Top.OnDataDown(e.Entity.Center);
                        return;
                    }
                }
            }
        }