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.