network_polylines

compas.datastructures.network_polylines(network, splits=None)[source]

Join network edges into polylines.

The polylines stop at points with a valency different from 2 in the network of line. Optional splits can be included.

Parameters
  • network (Network) – A network.

  • splits (sequence[[float, float, float] | compas.geometry.Point], optional) – List of point coordinates for polyline splits.

Returns

list[list[[float, float, float]]] – The joined polylines. If a polyline is closed, the two extremities are the same.

Examples

Joining the lines (a, b), (b, c), (c, d), (c, e) and (e, f), where a … f are different point coordinates. This will result in the following polylines (a, b, c), (c, d) and (c, e, f).

>>> from compas.datastructures import Network
>>> a = [0., 0., 0.]
>>> b = [1., 0., 0.]
>>> c = [2., 0., 0.]
>>> d = [2., 1., 0.]
>>> e = [3., 0., 0.]
>>> f = [4., 0., 0.]
>>> lines = [(a, b), (b, c), (c, d), (c, e), (e, f)]
>>> network = Network.from_lines(lines)
>>> len(network_polylines(network)) == 3
True