|
@@ -5,7 +5,7 @@
|
|
|
|
|
|
from functools import cmp_to_key
|
|
from functools import cmp_to_key
|
|
import vg
|
|
import vg
|
|
-import graph_model, revit_const
|
|
|
|
|
|
+import revit_const
|
|
|
|
|
|
|
|
|
|
def path2edge(elements):
|
|
def path2edge(elements):
|
|
@@ -90,43 +90,6 @@ def is_xyz_equal(origin1, origin2):
|
|
return vg.almost_equal(v1, v2, atol=1e-08)
|
|
return vg.almost_equal(v1, v2, atol=1e-08)
|
|
|
|
|
|
|
|
|
|
-def combine_systemgraph(floorgraphs):
|
|
|
|
- """
|
|
|
|
- Consider the riser merger
|
|
|
|
- :param floorgraphs:
|
|
|
|
- :return:projectgraph
|
|
|
|
- """
|
|
|
|
- # get all open vertical pipe
|
|
|
|
- open_vertical_pipes = []
|
|
|
|
- for floorgraph in floorgraphs:
|
|
|
|
- for systemgraph in floorgraph.system_graphs:
|
|
|
|
- open_vertical_pipes.extend(systemgraph.get_open_vertical_pipes())
|
|
|
|
- # group systemvertex
|
|
|
|
- projectgraph = graph_model.ProjectGraph()
|
|
|
|
- for i in range(len(open_vertical_pipes)):
|
|
|
|
- v1 = open_vertical_pipes[i]
|
|
|
|
- group_pipes = [v1]
|
|
|
|
- for j in range(i + 1, len(open_vertical_pipes)):
|
|
|
|
- v2 = open_vertical_pipes[j]
|
|
|
|
- if is_xyz_equal(v1.connector.origin, v2.connector.origin):
|
|
|
|
- group_pipes.append(v2)
|
|
|
|
- # combine systemgraph
|
|
|
|
- for k in range(len(group_pipes)):
|
|
|
|
- vertex = group_pipes[k]
|
|
|
|
- systemgraph = get_specify_type_parent(vertex, graph_model.SystemGraph)
|
|
|
|
- if not systemgraph:
|
|
|
|
- continue
|
|
|
|
- projectgraph.remove_groupedsystemgraphs(systemgraph)
|
|
|
|
- if (k == 0):
|
|
|
|
- temp_groupedsystemgraphs = graph_model.GroupedSystemGraph(systemgraph)
|
|
|
|
- else:
|
|
|
|
- prev_vertex = group_pipes[k - 1]
|
|
|
|
- temp_groupedsystemgraphs.add_system(systemgraph)
|
|
|
|
- temp_groupedsystemgraphs.add_edge(prev_vertex, vertex)
|
|
|
|
- if temp_groupedsystemgraphs:
|
|
|
|
- projectgraph.groupedsystemgraphs.append(temp_groupedsystemgraphs)
|
|
|
|
- return projectgraph
|
|
|
|
-
|
|
|
|
def get_specify_type_parent(vertex, type):
|
|
def get_specify_type_parent(vertex, type):
|
|
parent = vertex
|
|
parent = vertex
|
|
try:
|
|
try:
|