Parâmetros Específicos do HL

Direção do Fluxo (HL)

The flow direction parameter specifies the direction in which most of the links must point. Se a direção do fluxo for para a parte superior ou para a parte inferior, os níveis do nó serão orientados horizontalmente e os links mais verticalmente. Se a direção do fluxo for para a esquerda ou para a direita, os níveis do nó serão orientados verticalmente e os links mais horizontalmente.
Se a direção do fluxo for para a parte inferior, os nós do nível com índice 0 serão posicionados na borda superior do desenho. Os nós com índice de nível 0 geralmente os nós-raiz do desenho (ou seja, os nós sem links de entrada). Se a direção do fluxo for para a parte superior, os nós com índice de nível 0 serão posicionados na borda inferior do desenho. Se a direção do fluxo for para a direita, os nós serão posicionados na borda esquerda do desenho.
Picture
of hierarchical layouts illustrating the flow direction parameter
Direções do fluxo
Para especificar a direção do fluxo para a parte inferior:
Use o método setFlowDirection. Por exemplo:
layout.setFlowDirection(ibm_ilog.graphlayout.Direction.LEFT);
Os valores válidos para a direção do fluxo são:
  • ibm_ilog.graphlayout.Direction.RIGHT (o padrão)
  • ibm_ilog.graphlayout.Direction.LEFT
  • ibm_ilog.graphlayout.Direction.BOTTOM
  • ibm_ilog.graphlayout.Direction.TOP

Estratégia de Nivelamento (HL)

O algoritmo de layout particiona os nós em níveis (consulte Uma Breve Descrição do Algoritmo HL). A estratégia de nivelamento especifica como os níveis são calculados. Além da estratégia de nivelamento, as restrições de layout (consulte Restrições de Layout para HL), índices de nível (consulte Para Especialistas: Mais Índices (HL)) bem como o modo incremental (consulte Modo Incremental com HL) também afetam a maneira que os níveis são calculados. Se o modo incremental estiver desativado, a estratégia de nivelamento determinará os níveis de todos os nós que não estão sujeitos às restrições de layout e às especificações de índice de nível.
Estratégias
de nivelamento em um layout hierárquico
Estratégia de nivelamento
Para especificar a estratégia de nivelamento:
Use o método setLevelingStrategy. Por exemplo:
layout.setLevelingStrategy(ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.SEMI_OPTIMAL);
Os valores válidos para a estratégia de nivelamento são:
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.SEMI_OPTIMAL (o padrão)
    This value produces often the same result as the optimal strategy, but it is quicker. O algoritmo de layout usa uma heurística para reduzir a soma de distâncias de níveis para todas as bordas. Ele extrai os nós-raiz para o nível numerado mais alto possível e os nós folha para o nível numerado mais baixo possível.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.OPTIMAL
    This value uses an algorithm that minimizes the sum of level distances for all edges. A estratégia ideal é mais lenta que as outras estratégias, mas geralmente produz o melhor resultado.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.HIGHER_LEVELS
    Os nós têm uma tendência de usar o nível possível com o número de nível mais alto. All leaf nodes are at the highest-numbered level. Todos os nós-raiz são extraídos para os altos níveis numerados o máximo possível.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.LOWER_LEVELS
    Os nós têm uma tendência de usar o nível possível com o número de nível mais baixo. All root nodes are at level 0. All leaf nodes are pulled to low-numbered levels as much as possible.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.SPREAD_OUT
    This strategy is a combination of the lower-level and higher-level strategies. All root nodes are at level 0. All leaf nodes are at the highest-numbered level. Todos os nós internos estão em posições balanceadas.

Justificação de Nível (HL)

Se o layout usar níveis horizontais, os nós do mesmo nível serão posicionados aproximadamente na mesma coordenada y. Os nós podem ser justificados, dependendo da borda da parte superior, da borda da parte inferior, ou o centro de todos os nós do mesmo nível tem a mesma coordenada y.
Se o layout usar níveis verticais, os nós do mesmo nível serão posicionados aproximadamente na mesma coordenada x. Os nós podem ser justificados para estarem alinhados à borda esquerda, à borda direita, ou no centro dos nós que pertencem ao mesmo nível.
Para especificar a justificação de nível para a parte superior:
Use o método setLevelJustification. Por exemplo:
layout.setLevelJustification(ibm_ilog.graphlayout.Direction.TOP);
Se a direção do fluxo for para a parte superior ou para a parte inferior, os valores válidos para a justificação de nível serão:
  • ibm_ilog.graphlayout.Direction.TOP
  • ibm_ilog.graphlayout.Direction.BOTTOM
  • ibm_ilog.graphlayout.Direction.CENTER (o padrão)
 Picture
of hierarchical layouts illustrating the level justification parameter
for horizonal levels
Justificação de nível para níveis horizontais
Se a direção do fluxo for para a esquerda ou para a direita, os valores válidos para a justificação de nível serão:
  • ibm_ilog.graphlayout.Direction.LEFT
  • ibm_ilog.graphlayout.Direction.RIGHT
  • ibm_ilog.graphlayout.Direction.CENTER (o padrão)
Picture
of hierarchical layouts illustrating the level justification parameter
for vertical levels
Justificação de nível para níveis verticais

Estilo de Link (HL)

O algoritmo de layout posiciona os nós e roteia os links. Para evitar sobrepor nós e links, ele cria pontos de curvatura para as formas de links. O parâmetro de estilo de link controla a posição e número de pontos de curvatura. The link style can be set globally, in which case all links have the same shape, or locally on each link such that different link shapes occur in the same drawing.
Picture
of hierarchical layouts illustrating the link style parameter
Estilos de links

Estilo de Link Global

Para configurar o estilo de link global:
Use o método setGlobalLinkStyle. Por exemplo:
layout.setGlobalLinkStyle(ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.ORTHOGONAL_STYLE);
Os valores válidos para o estilo de link são:
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.POLYLINE_STYLE
    Todos os links obtêm uma forma de polilinha. Uma forma de polilinha consiste em uma sequência de segmentos de linhas que estão conectados em pontos de curvatura. Os segmentos de linhas podem ser mudados para qualquer direção. This value is the default value.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.ORTHOGONAL_STYLE
    Todos os links obtêm uma forma ortogonal. Uma forma ortogonal consiste em segmentos de linhas ortogonais que estão conectados em pontos de curvatura. Uma forma ortogonal é uma forma de polilinha na qual os segmentos podem ser mudados apenas nas direções de 0, 90, 180 ou 270 graus.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.STRAIGHT_LINE_STYLE
    All links get a straight-line shape. Todos os pontos de curvatura intermediários (se houver) serão removidos. This value often causes overlapping nodes and links.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.NO_RESHAPE_STYLE
    Nenhum dos links é redimensionado de nenhuma maneira. No entanto, observe que, diferentemente dos links fixos, os links não são totalmente ignorados. Eles ainda são usados para calcular o nivelamento.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.MIXED_STYLE
    Cada link pode ter um estilo de link diferente. O estilo de cada link individual pode ser configurado de forma que podem ocorrer diferentes formas de links no mesmo gráfico.

Estilo de Link Individual

Todos os links possuem o mesmo estilo de forma, a menos que o estilo de link global seja MIXED_STYLE. Apenas quando o estilo de link global for MIXED_STYLE, cada link poderá ter um estilo de link individual.
Diferentes
estilos de links combinados no mesmo desenho
Diferentes estilos de links combinados no mesmo desenho
Para especificar o estilo de um link individual:
Use os métodos:
layout.setLinkStyle(link, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.ORTHOGONAL_STYLE);
var style = layout.getLinkStyle();
Os valores válidos para o estilo de link de links locais são iguais aos do estilo de link global:
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.POLYLINE_STYLE
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.ORTHOGONAL_STYLE
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.STRAIGHT_LINE_STYLE
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.NO_RESHAPE_STYLE

Estilo de Conector (HL)

O algoritmo de layout posiciona os terminais de links (os pinos do conector) no nós automaticamente. O parâmetro de estilo de conector especifica como estes terminais são calculados.
Picture
of hierarchical layouts illustrating the connector style parameter
Estilos de conector
Para especificar o estilo de conector:
Use o método setConnectorStyle. Por exemplo:
layout.setConnectorStyle(ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.CENTERED_PINS);
Os valores válidos para style são:
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.CENTERED_PINS
    Os terminais dos links são posicionados no centro da borda em que os links estão conectados. This option is well-suited for polyline links and straight-line links. Ela é menos apropriada para links ortogonais, porque os links ortogonais podem parecer ambíguos neste estilo.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.CLIPPED_PINS
    Cada link que aponta para o centro do nó é recortado na borda do nó. Os pinos do conector são posicionados nos pontos na borda em que os links são recortados. This option is well-suited for polyline links without port specifications. It must not be used if a port side for any link is specified.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.EVENLY_SPACED_PINS
    Os pinos do conector são distribuídos uniformemente pela borda do nó. Este estilo garante que os terminais dos links não se sobreponham. It is the best style for orthogonal links and works well for other link styles.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.AUTOMATIC_PINS
    O estilo de conector é selecionado automaticamente, dependendo do estilo de link. If any of the links has an orthogonal style or if any of the links has a port side specification, the algorithm chooses evenly spaced connectors. Se todos os links forem lineares, ele escolherá conectores centralizados. Caso contrário, ele escolherá conectores recortados.

Modo de Terminal (HL)

Normalmente, o algoritmo de layout é livre para escolher os pontos de terminação de cada link. No entanto, o usuário pode especificar que o pino de terminação fixo atual de um link deve ser usado.
O algoritmo de layout fornece dois modos de terminais. É possível configurar o modo de terminal globalmente, neste caso, todos os terminais terão o mesmo modo, ou localmente em cada link, neste caso, ocorrem diferentes modos de terminais no mesmo desenho.

Modo de Terminal Global

Para configurar o modo de terminal global:
layout.setGlobalOriginPointMode(ibm_ilog.graphlayout.HierarchicalLayout.FREE_MODE);
Os valores válidos para mode são:
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.FREE_MODE (o padrão)
    O layout é livre para escolher a posição apropriada do ponto de conexão no nó de origem/destino.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.FIXED_MODE
    O layout deve manter a posição atual ~do ponto de conexão no nó de origem/destino.
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.MIXED_MODE
    Cada link pode ter um modo de terminal diferente.

Modo de Terminal Individual

Todos os links possuem o mesmo modo de terminal, a menos que o modo de terminal global seja ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.MIXED_MODE. Apenas quando o modo de terminal global estiver configurado como MIXED_MODE, cada link poderá ter um modo de terminal individual.
Para configurar o modo de terminal de um link individual:
Use os métodos:
layout.setOriginPointMode(link, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.FIXED_MODE);
var mode = layout.getOriginPointMode();
layout.setDestinationPointMode(link, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.FIXED_MODE);
var mode = layout.getDestinationPointMode();
Os valores válidos para mode são:
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.FREE_MODE (o padrão)
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.FIXED_MODE

Usando uma Interface da Caixa de Conexão de Link (HL)

Por padrão, o estilo de conector determina como os pontos de conexão dos links são distribuídos na borda da caixa delimitadora dos nós, simetricamente em relação ao meio de cada lado. Sometimes it can be necessary to place the connection points on a rectangle smaller or larger than the bounding box. For instance, it can happen when labels are displayed below or above nodes.
É possível modificar a posição dos pontos de conexão dos links fornecendo uma classe que implementa o ILinkConnectionBoxProvider. Para configurar uma interface da caixa de conexão de link, use o método setLinkConnectionBoxInterface.
A interface da caixa de conexão de link fornece a cada nó uma caixa de conexão de link e movimentos de deslocamentos tangenciais. O Layout Hierárquico usa a caixa de conexão de link, mas não usa os deslocamentos tangenciais.
A figura a seguir ilustra os efeitos de customização da caixa de conexão. À esquerda está o resultado sem nenhuma interface da caixa de conexão. A figura à direita mostra o efeito se a interface da caixa de conexão retornar o retângulo tracejado para o nó correspondente.
Picture
illustrating the effect of the link connection box interface
Efeito da interface da caixa de conexão

Para Especialistas: Links Espessos (HL)

Se pinos espaçados uniformemente forem usados como o estilo do conector, os links poderão ser espaçados uniformemente em relação ao centro do link ou em relação à borda do link. A diferença é visível apenas quando os links que se conectam ao mesmo nó possuem larguras diferentes. For instance, when the link width indicates the cost or capacity of a flow in the application, many different link widths can occur.
A Figura Usando a Largura de Link mostra o efeito do uso de diferentes larguras de links. No desenho à esquerda, o centro dos links é distribuído uniformemente no nó esquerdo. Cada link possui o mesmo espaço disponível no lado do nó. Portanto, os links espessos aparecem mais próximos uns dos outros do que os links mais finos e os deslocamentos entre as bordas dos links são diferentes. No desenho à direita, os links espessos possuem mais espaço disponível do que os links mais finos. O deslocamento entre a borda do link (nos segmentos que se conectam ao nó esquerdo) é constante, porque a largura do link é considerada no cálculo dos pontos de conexão.
Picture
of hierarchical layouts illustrating the Line Width Used parameter
Usando a Largura de Link
Para ativar o cálculo do conector para respeitar a largura de link:
Use o método setLinkWidthUsed. Por exemplo:
layout.setLinkWidthUsed(true);
A configuração de largura do link é desativada por padrão. A largura de link não terá efeito se os estilos do conector CENTERED_PINS ou CLIPPED_PINS forem usados.

Parâmetro de Lados da Porta (HL)

The Hierarchical Layout algorithm produces a layout where most of the link flows are in the same direction. Se a direção do fluxo for para a parte inferior, geralmente os links de entrada serão conectados no lado superior do nó e os links de saída serão conectados no lado inferior do nó. Também é possível especificar em qual lado um link se conecta ao nó.
To simplify the explanations of port sides, port sides are referred to by the compass directions north, south, east, and west. A direção do fluxo de link especificada é sempre ao sul e o primeiro nível ao norte. Se a direção do fluxo for para a parte inferior, norte estará na parte superior, sul na parte inferior, leste à direita e oeste do lado esquerdo do desenho. Se a direção do fluxo for para a direita, norte estará à esquerda, sul à direita, leste na parte superior e oeste na parte inferior.
The figure Conexões de links com lados da porta shows a drawing where the links connect to the larger middle node at the specified port sides. Um ícone da bússola mostra as direções da bússola nestes desenhos.
Picture
of hierarchical layouts illustrating the compass directions to specify
node sides
Conexões de links com lados da porta
É possível configurar em qual lado o link se conecta a seu nó de origem.
Para configurar em qual lado o link se conecta a seu nó de origem:
Use o método:
layout.setFromPortSide(link, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.EAST);
De forma semelhante, é possível configurar em qual lado o link se conecta a seu nó de destino.
Para configurar em qual lado o link se conecta a seu nó de destino:
Use o método:
layout.setToPortSide(link, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.WEST);
Os valores válidos para side são:
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.UNSPECIFIED (o padrão)
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.NORTH
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.SOUTH
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.EAST
  • ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.WEST
Para recuperar a opção atual para um link, use os métodos:
var side = layout.getFromPortSide();
var side = layout.getToPortSide();
The port sides east and west work well with the orthogonal link style. Os links de polilinha com estes lados da porta às vezes possuem curvaturas desnecessárias. Furthermore, if port sides are specified, the connector style CLIPPED_PINS must not be used.

Parâmetro de Índice da Porta (HL)

É possível especificar onde os links se conectam ao nó. Não é possível especificar o local exato, mas é possível especificar o local relativo comparado com os pontos de conexão dos outros links. Isto é feito usando um índice de porta. A Figura Layout de amostra com portas e estilo de link ortogonal mostra um layout de amostra com portas em muitos nós.
Os links que possuem o mesmo índice de porta se conectam no mesmo ponto do nó. As portas são distribuídas uniformemente nos lados do nó, de maneira semelhante ao estilo de conector EVENLY_SPACED_PINS. As portas são ordenadas de acordo com seus índices. No lado norte e no lado sul de um nó, os índices de porta aumentam ao leste. Nos lados leste e oeste de um nó, os índices de porta aumentam ao sul. By using port indices in this way, it is easier to rotate a graph by simply changing the flow direction without updating all the port specifications.
Figure Convenções de numeração de índices de porta em relação à direção do fluxo shows how the port indices depend on the flow direction.
Picture
of hierarchical layout illustrating the port indices
Convenções de numeração de índices de porta em relação à direção do fluxo
Os números da porta normalmente são usados em conjunto com os lados da porta. Portanto, você deve especificar quantas portas estão disponíveis em cada lado de um nó.
Para especificar o número de portas:
Use o método:
layout.setNumberOfPorts(node, side, numberOfPorts);
For example, to use four ports on each side of a specific node, use the calls:
layout.setNumberOfPorts(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.EAST, 4);
layout.setNumberOfPorts(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.WEST, 4);
layout.setNumberOfPorts(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.NORTH, 4);
layout.setNumberOfPorts(node, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.SOUTH, 4);
O lado do nó é especificado novamente por ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.EAST, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.WEST, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.NORTH e ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.SOUTH. Para recuperar o número de portas disponíveis no nó, use o método:
var n = layout.getNumberOfPorts(node);
Após o número de portas por lado ter sido especificado, será possível escolher a qual porta cada link se conectará.
Para escolher o lado da porta e o índice da porta para um link:
Para especificar a conexão no nó de origem, use os métodos:
layout.setFromPortSide(link, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.EAST);
layout.setFromPortIndex(link, 2);
Para especificar a conexão no nó de destino, use os métodos:
layout.setToPortSide(link, ibm_ilog.graphlayout.hierarchical.HierarchicalLayout.WEST);
layout.setToPortIndex(link, 2);
Para obter o índice de porta atual de um link, use os métodos:
var index = layout.getFromPortIndex(link);
var index = layout.getToPortIndex(link);
O uso de especificações de lado de porta e de índice de porta são restrições adicionais para o algoritmo de layout. Quanto mais restrições forem especificadas, mais difícil será calcular um layout. Therefore, if too many links have a specified port index, this resulting layout might have more link crossings and be less balanced.

Formas de Links de Bifurcação (HL)

Se vários links iniciarem na mesma posição e forem roteados de maneira ortogonal, às vezes será preferível que os links compartilhem os dois primeiros segmentos de link. A forma de um pacote configurável de link deste tipo é semelhante a uma bifurcação. Para ativar o modo de forma de bifurcação para links de saída, chame:
layout.setFromFork(true);
Para ativar o modo de forma de bifurcação para links de entrada:
Use o método setToFork. Por exemplo:
layout.setToFork(true);
These statements are effective only if the links are routed orthogonally. A bifurcação aparecerá apenas nos links que começam ou terminam exatamente no mesmo ponto. Especificar setFromFork para true por si mesmo não força os links a iniciarem no mesmo ponto. Para forçar os links a iniciarem ou terminarem no mesmo ponto, use o estilo do conector central (consulte Estilo de Conector (HL)) ou especifique a mesma porta para os links (consulte Parâmetro de Índice da Porta (HL)).
Formas de bifurcação
De e Para para links de bifurcação
Formas de Links de Bifurcação
Existem dois parâmetros de espaçamento para a forma de bifurcação:
layout.setMinForkSegmentLength(30);
Sets the minimum length of the segment that is directly near the node.
layout.setPreferredForkAxisLength(10);
Sets the preferred length of the fork axis per branch (the second segment next to the node).
Se a bifurcação tiver cinco ramificações, o eixo inteiro terá o comprimento preferencial de cinco vezes o parâmetro especificado. O comprimento do eixo de bifurcação preferencial é apenas uma sugestão para o algoritmo de layout. If enough space is available, the algorithm enlarges the fork axis to avoid unnecessary link bends. If there is not enough space, the algorithm can calculate a fork axis that is smaller than the preferred one.
Fork link shapes can sometimes look ambiguous, in particular when a link starts at the same point where another link ends. In this case, it is impossible to recognize whether the arrowhead belongs to one or the other link.

Parâmetro de Prioridade de Link (HL)

O algoritmo de layout tenta posicionar os nós de forma que todos os links fiquem curtos, apontem na direção do fluxo e não se cruzem. However, it is not always possible. Geralmente, os links não podem ter o mesmo comprimento. If the graph has cycles, some links must be reversed against the flow direction. If the graph is a nonplanar graph, some links have to cross each other.
The link priority parameter controls which links must be selected if long, reversed, or crossing links are necessary. Os links com uma baixa prioridade têm mais probabilidade de serem selecionados do que os links com uma alta prioridade. It does not mean that low-priority links are always longer, reversed, or crossed. The graph can have a structure such that no long, reversed, or crossing links are necessary.
Para configurar a prioridade do link:
Use os métodos:
layout.setLinkPriority(link, 0.5);
var priority = layout.getLinkPriority();
O valor padrão para a prioridade do link é 1.0. Não são permitidas prioridades de links negativas.
Para um exemplo de uso da prioridade de link, considere um ciclo A->B->C->D->E->A. É impossível organizar este gráfico sem reverter nenhum link. Portanto, o algoritmo de layout seleciona um link para ser revertido. Para controlar qual link será selecionado, é possível conceder a um link uma prioridade mais baixa do que aos outros. This link is then reversed. Na figura Trabalhando com Prioridades de Links, o layout inferior mostra o uso da prioridade de link. O link C->D recebeu a prioridade 0.5, enquanto os demais links têm a prioridade 1.0. Portanto, C-D será revertido. O layout superior em Trabalhando com Prioridades de Links mostra o que acontece quando todos os links têm a mesma prioridade. O link E->A será revertido.
Trabalhando com Prioridades de Links
Trabalhando com Prioridades de Links
O uso de prioridades de links é importante em combinação com portas. Os links com portas “de” no lado sul e com portas “para” no lado norte são organizados preferencialmente na direção oposta à do fluxo. Such a feedback link can cause parts of the drawing to tip over. The figure Usando Prioridades e Portas de Links shows an example. O link vermelho é um link de feedback com especificações de portas. Para obter o resultado correto conforme mostrado à direita da figura a seguir, configure a prioridade do link de feedback como um valor muito baixo.
Um exemplo
do efeito de conceder a um link uma prioridade mais baixa
Usando Prioridades e Portas de Links

Parâmetros de Espaçamento (HL)

The spacing of the layout is controlled by three kinds of spacing parameters: the minimum offset between nodes, the minimum offset between parallel segments of links, and the minimum offset between a node border and a bend point of a link or a link segment that is parallel to this border. O deslocamento entre segmentos paralelos de links é ao mesmo tempo o deslocamento entre pontos de curvatura de links. Todos os três tipos de parâmetro ocorrem em duas direções: horizontal e vertical.
Os parâmetros de espaçamento horizontal
e vertical usados pelo layout hierárquico
Parâmetros de espaçamento
Para configurar os parâmetros de espaçamento:
Para um layout com níveis horizontais (a direção do fluxo é para a parte superior ou para a parte inferior), o deslocamento de nó horizontal é a distância mínima entre nós do mesmo nível. O deslocamento de nó vertical é a distância mínima entre nós de níveis diferentes, ou seja, a distância mínima entre os níveis. Para estilos de links não ortogonais, o deslocamento de link horizontal é basicamente a distância mínima entre pontos de curvatura de links. O deslocamento de link de nó horizontal é a distância mínima entre a borda do nó e o ponto de curvatura de um link. Para níveis horizontais, o deslocamento de link vertical e o deslocamento de link de nó vertical desempenharão uma função apenas se as formas de links forem ortogonais.
De forma semelhante, para um layout com níveis verticais (a direção do fluxo é para a esquerda ou para a direita), o deslocamento de nó vertical controla as distâncias de nós nos níveis. O deslocamento de nó horizontal é a distância mínima entre os níveis. In this case, the vertical link offset and the vertical node-link offset always play a role, while the horizontal link offset and the horizontal node-link offset impact the layout only with orthogonal links.
Para links ortogonais, o deslocamento de link horizontal é a distância mínima entre segmentos de links paralelos e verticais. O deslocamento de link vertical é a distância mínima entre segmentos de links paralelos e horizontais. No entanto, o algoritmo de layout nem sempre pode atender a estes requisitos de deslocamento. If a node is tiny but has many incident links, it can be impossible to place the links orthogonally with the specified minimum link distance on the node border. Neste caso, o algoritmo posiciona alguns segmentos de links mais próximos do que o deslocamento de link especificado.
Parâmetros
de espaçamento para links ortogonais em um layout hierárquico
Parâmetros de espaçamento para links ortogonais