Hello Community,
I would like to ask if there is a function which can move the attribute occurrence of an edge to a forward layer without moving the whole connection to a forward layer? When it's not possible, is there at least a method to move the whole connection to a forward layer?
Here is an example of what I want to realize. The test text is the connection role of the connection. I would like to have the Test text on a layer higher than the object2.
What I want to avoid is the following situation, where the "Test text" is partly overlaid by Object2.
> if there is a function which can move the attribute occurrence of an edge to a forward layer without moving the whole connection to a forward layer?
There is not. Similar to how you can't right click on an attribute occurrence and change the layer when you model, there is no way to do it with a report.
> When it's not possible, is there at least a method to move the whole connection to a forward layer?
That's a simple task. I assume the screenshots depict your problem accurately (it's only ever the source or target occurrence of the connection with the attribute occurrence that stop you from seeing the attribute occurrence).
var selModels = ArisData.getSelectedModels(); for each (var selModel in selModels){ var cxnOccs = selModel.CxnOccList(); for each(var cxnOcc in cxnOccs){ var sourceZOrder = cxnOcc.getSource().getZOrder() if(cxnOcc.getZOrder() < sourceZOrder){ cxnOcc.setZOrder(sourceZOrder); } var targetZOrder = cxnOcc.getTarget().getZOrder() if(cxnOcc.getZOrder() < targetZOrder){ cxnOcc.setZOrder(targetZOrder); } } }
This is the most sensible approach. It doesn't say "Hey I'm an important connection and I want to be in front of everything in this model", instead it checks the layer of the target and source object occurrence and only changes the layer of the connection if the checked layer is greater than the connection layer.