private bool IsGeometriaValida(Feicao feicao) { IList elementos = null; switch (feicao.Geometria.ObterTipo()) { case TipoGeometria.Complexa: elementos = (feicao.Geometria as Tecnomapas.TecnoGeo.Geometria.Complexa.Complexa).Elementos; break; case TipoGeometria.Linha: elementos = (feicao.Geometria as Tecnomapas.TecnoGeo.Geometria.Primitiva.Linha).Segmentos; break; case TipoGeometria.MultiLinha: elementos = (feicao.Geometria as Tecnomapas.TecnoGeo.Geometria.Agregada.MultiLinha).Elementos; break; case TipoGeometria.MultiPoligono: elementos = (feicao.Geometria as Tecnomapas.TecnoGeo.Geometria.Agregada.MultiPoligono).Elementos; break; case TipoGeometria.MultiPonto: elementos = (feicao.Geometria as Tecnomapas.TecnoGeo.Geometria.Agregada.MultiPonto).Elementos; break; case TipoGeometria.Poligono: elementos = (feicao.Geometria as Tecnomapas.TecnoGeo.Geometria.Primitiva.Poligono).Aneis; break; case TipoGeometria.Ponto: Posicao pos = (feicao.Geometria as Tecnomapas.TecnoGeo.Geometria.Primitiva.Ponto).Posicao; if (pos != null) { elementos = pos.ToArray(); decimal tt = Convert.ToDecimal(pos.X.ToString()); tt = Convert.ToDecimal(pos.Y.ToString()); } break; } return(elementos == null || elementos.Count == 0); }