Compartir a través de


Propiedad Shape.SpatialNeighbors (Visio)

Devuelve un objeto Selection que representa las formas que cumplen determinados criterios con relación a una forma especificada. Solo lectura.

Sintaxis

expresión. SpatialNeighbors (Relation, Tolerance, Flags, ResultRoot)

expresión Variable que representa un objeto Shape.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Relation Obligatorio Integer Número entero que describe el tipo de relación que se va a utilizar.
Tolerance Obligatorio Double Distancia expresada en unidades de dibujo internas con respecto al espacio de coordenadas definido por la forma principal.
Flags Obligatorio Integer Marcas que influyen en el tipo de entradas devueltas en los resultados.
ResultRoot Opcional Variant Objeto Shape que representa una página o un grupo.

Valor devuelto

Selección

Observaciones

Si desea conocer los valores del argumento Relation, vea el tema relativo a la propiedad SpatialRelation.

El argumento Flags puede estar formado por cualquier combinación de valores de las constantes definidas en la tabla siguiente. Estas constantes también se definen en VisSpatialRelationFlags en la biblioteca de tipos de Visio.

Constante Valor Descripción
visSpatialIncludeContainerShapes &H80 Se incluyen los contenedores. De forma predeterminada, los contenedores no se incluyen.
visSpatialIncludeDataGraphics &H40 Incluye las formas de llamada de gráficos de datos y sus subformas. De forma predeterminada, no se incluyen las formas de llamada de gráficos de datos ni sus subformas. Si la forma primaria es una llamada de gráfico de datos, las búsquedas se realizan entre la geometría de la forma primaria y las formas que no son de llamada, a menos que se establezca esta marca.
visSpatialIncludeGuides &H2 Se tiene en cuenta la sección de geometría de una guía. De forma predeterminada, las guías no influyen en el resultado.
visSpatialFrontToBack &H4 Ordena los elementos de adelante atrás.
visSpatialBackToFront &H8 Ordena los elementos de atrás adelante.
visSpatialIncludeHidden &H10 Se tienen en cuenta las secciones de geometría ocultas. De forma predeterminada, las secciones geometry ocultas no influyen en el resultado.
visSpatialIgnoreVisible &H20 No se tienen en cuenta las secciones de geometría visibles. De forma predeterminada, las secciones de geometría visibles influyen en el resultado.

Para determinar si una sección de geometría está oculta o visible, utilice la celda NoShow. Las secciones de geometría ocultas tienen el valor TRUE y las visibles el valor FALSE en la celda NoShow.

Si no se especifica Relation, la propiedad SpatialNeighbors utiliza como criterios todas las relaciones posibles.

A partir de Visio 2002, si Flags contiene VisSpatialFrontToBack, los elementos del objeto Selection devueltos por la propiedad SpatialNeighbors se ordenan de adelante hacia atrás. Si se establece visSpatialBackToFront, los elementos devueltos se ordenan de atrás hacia adelante. Si no se establece esta marca o si se ejecuta una versión anterior de Visio, el orden es impredecible. Puede determinar el orden mediante la propiedad Index de las formas identificadas en el objeto Selection .

Si no especifica ResultRoot, esta propiedad devuelve un objeto Selection que representa las formas que cumplen determinados criterios con relación a una forma especificada. Si especifica ResultRoot, esta propiedad devuelve un objeto Selection que representa todas las formas del objeto Shape especificado por ResultRoot que cumplen determinados criterios con relación a una forma especificada. Por ejemplo, especifique ResultRoot si desea hallar todas las formas de un grupo que se encuentran próximas a la forma especificada.

Si se especifica ResultRoot, pero este objeto no se encuentra en la misma página o en el mismo patrón que el objeto Shape con el que se está comparando, la propiedad SpatialNeighbors genera una excepción y devuelve Nothing.

Cuando compara dos formas, la propiedad SpatialNeighbors no tiene en cuenta el grosor de la línea, las sombras, los extremos de línea, los puntos de control ni los puntos de conexión de la forma.

Ejemplo

Este ejemplo de Microsoft Visual Basic para Aplicaciones (VBA) muestra cómo utilizar la propiedad SpatialNeighbors en un controlador de eventos para el evento ShapeAdded a fin de determinar si una forma se encuentra dentro de otra.

Antes de agregar el código siguiente al proyecto de VBA, agregue al menos una forma al dibujo. A continuación, agregue otra forma al dibujo, ya sea arrastrándola desde una galería de símbolos o dibujándola, y colóquela de modo que se encuentre por completo dentro de una forma existente.

 
Public Sub Document_ShapeAdded(ByVal Shape As IVShape) 
 
 Dim vsoShapeOnPage As Visio.Shape 
 Dim intTolerance As Integer 
 Dim vsoReturnedSelection As Visio.Selection 
 Dim strSpatialRelation As String 
 Dim intSpatialRelation As VisSpatialRelationCodes 
 
 On Error GoTo errHandler 
 
 'Initialize string 
 strSpatialRelation = "" 
 
 'Set tolerance argument 
 intTolerance = 0.25 
 
 'Set Spatial Relation argument 
 intSpatialRelation = visSpatialContainedIn 
 
 'Get the set of spatially related shapes 
 'that meet the criteria set by the arguments. 
 Set vsoReturnedSelection = Shape.SpatialNeighbors _ 
 (intSpatialRelation, intTolerance, 0) 
 
 'Evaluate the results. 
 If vsoReturnedSelection.Count = 0 Then 
 
 'No shapes met the criteria set by 
 'the arguments of the method. 
 strSpatialRelation = Shape.Name & " is not contained." 
 
 Else 
 
 'Build the positive result string. 
 For Each vsoShapeOnPage In vsoReturnedSelection 
 strSpatialRelation = strSpatialRelation & _ 
 Shape.Name & " is contained by " & _ 
 vsoShapeOnPage.Name & Chr$(10) 
 
 Next 
 
 End If 
 
 'Display the results on the shape added. 
 Shape.Text = strSpatialRelation 
 
 errHandler: 
 
End Sub

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.