AnalyzeEntity
Espacio de nombres: Digi21.DigiNG.Plugin.QualityControl
Ensamblado: Digi21.DigiNG.Plugin
Este método es llamado por Digi3D.NET para analizar el control de calidad de una geometría.
Entity AnalyzeEntity(Entity entity, bool addingEntity);
Parámetros
entity
Entity
Geometría a analizar.
addingEntity
Boolean
Verdadero si el análisis se ha desencadenado porque se está almacenando una geometría (antes de almacenarla) o Falso si el análisis se ha desencadenado porque el usuario ha ordenado hacer un control de calidad manualmente.
Devuelve
Double
Geometría a almacenar. No tiene por qué ser la geometría original, puede ser otra como por ejemplo una geometría de tipo Point y su perímetro por ejemplo era muy pequeño y el control de calidad decide que hay que transformarla en un punto.
Excepciones
Digi3D.NET entiende que, si este método no lanza ninguna excepción, que debe almacenar la geometría que se está analizando, y si recibe una excepción, no va a almacenar la geometría y va a comunicar al usuario un error.
Las excepciones que espera recibir Digi3D.NET cuando llama a este método son las siguientes:
- DatabaseAttributeException
- DigitizeAsPointException
- GeometricRelationException
- GeometryException
- WarningException
Observaciones
Digi3D.NET llama a este método en los guiones de control de calidad que se pueden almacenar en la tabla de códigos para cada código.
Estos guiones son programas en C# que Digi3D.NET compila en el momento de cargar la tabla de códigos generando en el directorio temporal de Windows un ensamblado por cada guion de control de calidad localizado en la tabla de códigos.
Como el proceso de compilación de un ensamblado requiere que se introduzcan ensamblados de referencia como: System.dll, System.Core.dll, el Editor de Tablas de Códigos dispone de la opción del menú Herramientas/Referencias.
Puedes aprender más en Guiones de Control de Calidad.
Ejemplo:
El siguiente guion de ejemplo asignado a un determinado código lanza una excepción de tipo GeometryException:
using System;
using Digi21.DigiNG.Entities;
using Digi21.DigiNG.Plugin.QualityControl;
namespace DigiTab
{
public class Desencadenador : ITrigger
{
public Entity AnalyzeEntity(Entity entidad, bool almacenandoEntidad)
{
if( !(entity is ReadOnlyLine) )
throw new GeometryException(String.Format("Las geometrías con el código {0} deben ser líneas.", entidad.Codes[0].Name));
return entidad;
}
}
}