mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-10 06:00:51 +00:00
black format
This commit is contained in:
@@ -908,7 +908,7 @@ class OverrideDuplicateMove(bpy.types.Operator):
|
|||||||
if parts:
|
if parts:
|
||||||
index = DuplicateMoveLinkedAggregate.get_max_index(parts)
|
index = DuplicateMoveLinkedAggregate.get_max_index(parts)
|
||||||
index += 1
|
index += 1
|
||||||
pset = tool.Ifc.get().by_id(pset['id'])
|
pset = tool.Ifc.get().by_id(pset["id"])
|
||||||
ifcopenshell.api.run(
|
ifcopenshell.api.run(
|
||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
tool.Ifc.get(),
|
tool.Ifc.get(),
|
||||||
@@ -976,7 +976,7 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator):
|
|||||||
if parts:
|
if parts:
|
||||||
index = DuplicateMoveLinkedAggregate.get_max_index(parts)
|
index = DuplicateMoveLinkedAggregate.get_max_index(parts)
|
||||||
add_linked_aggregate_pset(element, index)
|
add_linked_aggregate_pset(element, index)
|
||||||
index +=1
|
index += 1
|
||||||
for part in parts:
|
for part in parts:
|
||||||
if part.is_a("IfcElementAssembly"):
|
if part.is_a("IfcElementAssembly"):
|
||||||
select_objects_and_add_data(part)
|
select_objects_and_add_data(part)
|
||||||
@@ -987,14 +987,11 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator):
|
|||||||
obj = tool.Ifc.get_object(part)
|
obj = tool.Ifc.get_object(part)
|
||||||
obj.select_set(True)
|
obj.select_set(True)
|
||||||
|
|
||||||
|
|
||||||
def add_linked_aggregate_pset(part, index):
|
def add_linked_aggregate_pset(part, index):
|
||||||
pset = ifcopenshell.util.element.get_pset(part, self.pset_name)
|
pset = ifcopenshell.util.element.get_pset(part, self.pset_name)
|
||||||
|
|
||||||
if not pset:
|
if not pset:
|
||||||
pset = ifcopenshell.api.run(
|
pset = ifcopenshell.api.run("pset.add_pset", tool.Ifc.get(), product=part, name=self.pset_name)
|
||||||
"pset.add_pset", tool.Ifc.get(), product=part, name=self.pset_name
|
|
||||||
)
|
|
||||||
|
|
||||||
ifcopenshell.api.run(
|
ifcopenshell.api.run(
|
||||||
"pset.edit_pset",
|
"pset.edit_pset",
|
||||||
@@ -1033,17 +1030,16 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator):
|
|||||||
number = len(group_elements) - 1
|
number = len(group_elements) - 1
|
||||||
number = f"{number:02d}"
|
number = f"{number:02d}"
|
||||||
new_obj = tool.Ifc.get_object(new[0])
|
new_obj = tool.Ifc.get_object(new[0])
|
||||||
pattern1 = r'_\d'
|
pattern1 = r"_\d"
|
||||||
if re.findall(pattern1, new_obj.name):
|
if re.findall(pattern1, new_obj.name):
|
||||||
split_name = new_obj.name.split("_")
|
split_name = new_obj.name.split("_")
|
||||||
new_obj.name = split_name[0] + "_" + number
|
new_obj.name = split_name[0] + "_" + number
|
||||||
continue
|
continue
|
||||||
pattern2 = r'\.\d{3}'
|
pattern2 = r"\.\d{3}"
|
||||||
if re.findall(pattern2, new_obj.name):
|
if re.findall(pattern2, new_obj.name):
|
||||||
split_name = new_obj.name.split(".")
|
split_name = new_obj.name.split(".")
|
||||||
new_obj.name = split_name[0] + "_" + number
|
new_obj.name = split_name[0] + "_" + number
|
||||||
|
|
||||||
|
|
||||||
if len(context.selected_objects) != 1:
|
if len(context.selected_objects) != 1:
|
||||||
return {"FINISHED"}
|
return {"FINISHED"}
|
||||||
|
|
||||||
@@ -1075,11 +1071,10 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator):
|
|||||||
|
|
||||||
return old_to_new
|
return old_to_new
|
||||||
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_max_index(parts):
|
def get_max_index(parts):
|
||||||
psets = [ifcopenshell.util.element.get_pset(p, "BBIM_Linked_Aggregate") for p in parts]
|
psets = [ifcopenshell.util.element.get_pset(p, "BBIM_Linked_Aggregate") for p in parts]
|
||||||
index = [i['Index'] for i in psets if i]
|
index = [i["Index"] for i in psets if i]
|
||||||
if len(index) > 0:
|
if len(index) > 0:
|
||||||
index = max(index)
|
index = max(index)
|
||||||
return index
|
return index
|
||||||
@@ -1087,7 +1082,6 @@ class DuplicateMoveLinkedAggregate(bpy.types.Operator):
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class RefreshLinkedAggregate(bpy.types.Operator):
|
class RefreshLinkedAggregate(bpy.types.Operator):
|
||||||
bl_idname = "bim.refresh_linked_aggregate"
|
bl_idname = "bim.refresh_linked_aggregate"
|
||||||
bl_label = "IFC Refresh Linked Aggregate"
|
bl_label = "IFC Refresh Linked Aggregate"
|
||||||
@@ -1134,7 +1128,7 @@ class RefreshLinkedAggregate(bpy.types.Operator):
|
|||||||
original_names[group] = {}
|
original_names[group] = {}
|
||||||
|
|
||||||
pset = ifcopenshell.util.element.get_pset(element, self.pset_name)
|
pset = ifcopenshell.util.element.get_pset(element, self.pset_name)
|
||||||
index = pset['Index']
|
index = pset["Index"]
|
||||||
original_names[group][index] = tool.Ifc.get_object(element).name
|
original_names[group][index] = tool.Ifc.get_object(element).name
|
||||||
|
|
||||||
parts = ifcopenshell.util.element.get_parts(element)
|
parts = ifcopenshell.util.element.get_parts(element)
|
||||||
@@ -1144,10 +1138,10 @@ class RefreshLinkedAggregate(bpy.types.Operator):
|
|||||||
original_names | get_original_names(part)
|
original_names | get_original_names(part)
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
pset = ifcopenshell.util.element.get_pset(part, self.pset_name)
|
pset = ifcopenshell.util.element.get_pset(part, self.pset_name)
|
||||||
except:
|
except:
|
||||||
continue
|
continue
|
||||||
index = pset['Index']
|
index = pset["Index"]
|
||||||
original_names[group][index] = tool.Ifc.get_object(part).name
|
original_names[group][index] = tool.Ifc.get_object(part).name
|
||||||
|
|
||||||
return original_names
|
return original_names
|
||||||
@@ -1155,7 +1149,9 @@ class RefreshLinkedAggregate(bpy.types.Operator):
|
|||||||
def set_original_name(obj, original_names):
|
def set_original_name(obj, original_names):
|
||||||
element = tool.Ifc.get_entity(obj)
|
element = tool.Ifc.get_entity(obj)
|
||||||
aggregate = ifcopenshell.util.element.get_aggregate(element)
|
aggregate = ifcopenshell.util.element.get_aggregate(element)
|
||||||
if ifcopenshell.util.element.get_parts(element): # if element has parts it means it is the base of and aggregate or sub-aggregate
|
if ifcopenshell.util.element.get_parts(
|
||||||
|
element
|
||||||
|
): # if element has parts it means it is the base of and aggregate or sub-aggregate
|
||||||
aggregate = element
|
aggregate = element
|
||||||
|
|
||||||
group = [
|
group = [
|
||||||
@@ -1170,15 +1166,13 @@ class RefreshLinkedAggregate(bpy.types.Operator):
|
|||||||
group = group[0].id()
|
group = group[0].id()
|
||||||
|
|
||||||
pset = ifcopenshell.util.element.get_pset(element, self.pset_name)
|
pset = ifcopenshell.util.element.get_pset(element, self.pset_name)
|
||||||
index = pset['Index']
|
index = pset["Index"]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
obj.name = original_names[group][index]
|
obj.name = original_names[group][index]
|
||||||
except:
|
except:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def get_element_assembly(element):
|
def get_element_assembly(element):
|
||||||
if element.is_a("IfcElementAssembly"):
|
if element.is_a("IfcElementAssembly"):
|
||||||
return element
|
return element
|
||||||
@@ -1287,12 +1281,12 @@ class RefreshLinkedAggregate(bpy.types.Operator):
|
|||||||
|
|
||||||
if not new_aggregate:
|
if not new_aggregate:
|
||||||
blenderbim.core.aggregate.assign_object(
|
blenderbim.core.aggregate.assign_object(
|
||||||
tool.Ifc,
|
tool.Ifc,
|
||||||
tool.Aggregate,
|
tool.Aggregate,
|
||||||
tool.Collector,
|
tool.Collector,
|
||||||
relating_obj=tool.Ifc.get_object(element_aggregate),
|
relating_obj=tool.Ifc.get_object(element_aggregate),
|
||||||
related_obj=tool.Ifc.get_object(new[0]),
|
related_obj=tool.Ifc.get_object(new[0]),
|
||||||
)
|
)
|
||||||
|
|
||||||
for old, new in old_to_new.items():
|
for old, new in old_to_new.items():
|
||||||
new_obj = tool.Ifc.get_object(new[0])
|
new_obj = tool.Ifc.get_object(new[0])
|
||||||
|
|||||||
Reference in New Issue
Block a user