def meshes_to_network(meshes): network = Network() network.update_default_node_attributes(mesh=None, vkey=None, fkey=None) network.update_default_edge_attributes(mesh=None, fkey=None) for i, mesh in enumerate(meshes): for vkey in mesh.vertices(): x, y, z = mesh.vertex_coordinates(vkey) network.add_node(x=x, y=y, z=z, mesh=i, vkey=vkey) for u, v in mesh.edges(): u1 = next(network.nodes_where({"vkey": u, "mesh": i})) v1 = next(network.nodes_where({"vkey": v, "mesh": i})) network.add_edge(u1, v1, mesh=i) return network
import compas_rhino from compas.datastructures import Network from compas_rhino.artists import NetworkArtist # clear the Rhino model compas_rhino.clear() # create a network network = Network() network.update_default_node_attributes(is_anchor=False) network.update_default_node_attributes(rx=0, ry=0, rz=0) network.update_default_edge_attributes(f=1) a = network.add_node(x=0, y=0, z=0, is_anchor=True) b = network.add_node(x=10, y=0, z=10, is_anchor=True) c = network.add_node(x=10, y=10, z=0, is_anchor=True) d = network.add_node(x=0, y=10, z=10, is_anchor=True) e = network.add_node(x=5, y=5, z=0) network.add_edge(a, e) network.add_edge(b, e) network.add_edge(c, e) network.add_edge(d, e) # visualize the geometry artist = NetworkArtist(network)