Compartir a través de


Propiedad Shape.SpatialRelation (Visio)

Devuelve un número entero que representa la relación espacial entre dos formas. Ambas formas deben estar en la misma página o en el mismo patrón. Solo lectura.

Sintaxis

expresión. SpatialRelation (OtherShape, Tolerance, Flags)

expresión Variable que representa un objeto Shape.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
OtherShape Obligatorio [IVSHAPE] El otro objeto Shape implicado en la comparación.
Tolerance Obligatorio Double Distancia expresada en unidades de dibujo internas con respecto al espacio de coordenadas definido por el objeto principal del objeto Shape.
Flags Obligatorio Integer Marcas que influyen en el resultado. Vea Comentarios para obtener los valores de este argumento.

Valor devuelto

Entero

Observaciones

El entero devuelto puede ser cualquier combinación de los valores definidos en VisSpatialRelationCodes en la biblioteca de tipos de Visio. La propiedad SpatialRelation devuelve el valor cero (0) si las dos formas comparadas no mantienen ninguna de las relaciones descritas en la tabla del tema VisSpatialRelationCodes.

El argumento Flags puede estar formado por cualquier combinación de valores de las constantes definidas en la tabla siguiente. Estas constantes se declaran en VisSpatialRelationFlags en la biblioteca de tipos de Visio. 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.

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.
visSpatialIncludeHidden &H10 Reservado para uso futuro. No usar.
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.

Nota:

Cuando compara dos formas, la propiedad SpatialRelation 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

En este ejemplo de Microsoft Visual Basic para Aplicaciones (VBA) se muestra cómo usar la propiedad SpatialRelation en un controlador de eventos para el evento ShapeAdded a fin de determinar la relación espacial entre formas.

Antes de agregar el código siguiente al proyecto vba, asegúrese de que haya al menos una forma en la página de dibujo. A continuación, después de agregar el código, agregue otra forma al dibujo.

Public Sub Document_ShapeAdded(ByVal Shape As IVShape) 
 
    Dim vsoShapeOnPage As Visio.Shape  
    Dim intTolerance As Integer 
    Dim intReturnValue As VisSpatialRelationCodes  
    Dim intFlag As VisSpatialRelationFlags  
    Dim strReturn As String 
    On Error GoTo errHandler  
 
    'Initialize tolerance argument. 
    intTolerance = 0.25  
 
    'Initialize flags argument. 
    intFlag = visSpatialIncludeHidden  
    For Each vsoShapeOnPage In ActivePage.Shapes  
 
        'Get the spatial relationship. 
        intReturnValue = Shape.SpatialRelation(vsoShapeOnPage, _  
            intTolerance, intFlag)  
 
        'Convert return code to string value. 
        Select Case intReturnValue       
            Case VisSpatialRelationCodes.visSpatialContain  
                strReturn = "Contains"  
            Case VisSpatialRelationCodes.visSpatialContainedIn  
                strReturn = "is Contained in"  
            Case VisSpatialRelationCodes.visSpatialOverlap  
                strReturn = "overlaps"  
            Case VisSpatialRelationCodes.visSpatialTouching  
                strReturn = "is touching"  
            Case Else 
                strReturn = "has no relation with"  
        End Select  
        
        'Display relationship in the shape's text. 
        vsoShapeOnPage.Text = Shape.Name & " " & strReturn & " " & _  
            vsoShapeOnPage.Name  
 
    Next  
 
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.