#1153 You can now manage assigned products for all annotations

This commit is contained in:
Dion Moult
2022-05-06 15:35:39 +10:00
parent 316a2b7f53
commit 73e048a9a8
11 changed files with 137 additions and 90 deletions
+11 -11
View File
@@ -43,30 +43,30 @@ class TestEditText:
subject.edit_text(ifc, drawing, obj="obj")
class TestEnableEditingTextProduct:
class TestEnableEditingAssignedProduct:
def test_run(self, drawing):
drawing.enable_editing_text_product("obj").should_be_called()
drawing.import_text_product("obj").should_be_called()
subject.enable_editing_text_product(drawing, obj="obj")
drawing.enable_editing_assigned_product("obj").should_be_called()
drawing.import_assigned_product("obj").should_be_called()
subject.enable_editing_assigned_product(drawing, obj="obj")
class TestDisableEditingTextProduct:
class TestDisableEditingAssignedProduct:
def test_run(self, drawing):
drawing.disable_editing_text_product("obj").should_be_called()
subject.disable_editing_text_product(drawing, obj="obj")
drawing.disable_editing_assigned_product("obj").should_be_called()
subject.disable_editing_assigned_product(drawing, obj="obj")
class TestEditTextProduct:
class TestEditAssignedProduct:
def test_run(self, ifc, drawing):
ifc.get_entity("obj").should_be_called().will_return("element")
drawing.get_text_product("element").should_be_called().will_return("existing_product")
drawing.get_assigned_product("element").should_be_called().will_return("existing_product")
ifc.run(
"drawing.unassign_product", relating_product="existing_product", related_object="element"
).should_be_called()
ifc.run("drawing.assign_product", relating_product="product", related_object="element").should_be_called()
drawing.update_text_value("obj").should_be_called()
drawing.disable_editing_text_product("obj").should_be_called()
subject.edit_text_product(ifc, drawing, obj="obj", product="product")
drawing.disable_editing_assigned_product("obj").should_be_called()
subject.edit_assigned_product(ifc, drawing, obj="obj", product="product")
class TestLoadSheets:
+14 -14
View File
@@ -109,12 +109,12 @@ class TestDisableEditingText(NewFile):
assert obj.BIMTextProperties.is_editing == False
class TestDisableEditingTextProduct(NewFile):
class TestDisableEditingAssignedProduct(NewFile):
def test_run(self):
obj = bpy.data.objects.new("Object", None)
obj.BIMTextProperties.is_editing_product = True
subject.disable_editing_text_product(obj)
assert obj.BIMTextProperties.is_editing_product == False
obj.BIMAssignedProductProperties.is_editing_product = True
subject.disable_editing_assigned_product(obj)
assert obj.BIMAssignedProductProperties.is_editing_product == False
class TestEnableEditing(NewFile):
@@ -153,11 +153,11 @@ class TestEnableEditingText(NewFile):
assert obj.BIMTextProperties.is_editing == True
class TestEnableEditingTextProduct(NewFile):
class TestEnableEditingAssignedProduct(NewFile):
def test_run(self):
obj = bpy.data.objects.new("Object", None)
subject.enable_editing_text_product(obj)
assert obj.BIMTextProperties.is_editing_product == True
subject.enable_editing_assigned_product(obj)
assert obj.BIMAssignedProductProperties.is_editing_product == True
class TestEnsureUniqueDrawingName(NewFile):
@@ -423,14 +423,14 @@ class TestGetTextLiteral(NewFile):
assert subject.get_text_literal(obj) == item
class TestGetTextProduct(NewFile):
class TestGetAssignedProduct(NewFile):
def test_run(self):
ifc = ifcopenshell.file()
tool.Ifc.set(ifc)
wall = ifc.createIfcWall()
label = ifc.createIfcAnnotation()
ifcopenshell.api.run("drawing.assign_product", ifc, relating_product=wall, related_object=label)
assert subject.get_text_product(label) == wall
assert subject.get_assigned_product(label) == wall
class TestImportDrawings(NewFile):
@@ -514,7 +514,7 @@ class TestImportTextAttributes(NewFile):
assert props.attributes.get("BoxAlignment").string_value == "BoxAlignment"
class TestImportTextProduct(NewFile):
class TestImportAssignedProduct(NewFile):
def test_run(self):
ifc = ifcopenshell.file()
tool.Ifc.set(ifc)
@@ -525,8 +525,8 @@ class TestImportTextProduct(NewFile):
label_obj = bpy.data.objects.new("Object", None)
tool.Ifc.link(wall, wall_obj)
tool.Ifc.link(label, label_obj)
subject.import_text_product(label_obj)
assert label_obj.BIMTextProperties.relating_product == wall_obj
subject.import_assigned_product(label_obj)
assert label_obj.BIMAssignedProductProperties.relating_product == wall_obj
def test_doing_nothing_if_no_product_to_import(self):
ifc = ifcopenshell.file()
@@ -534,8 +534,8 @@ class TestImportTextProduct(NewFile):
label = ifc.createIfcAnnotation()
label_obj = bpy.data.objects.new("Object", None)
tool.Ifc.link(label, label_obj)
subject.import_text_product(label_obj)
assert label_obj.BIMTextProperties.relating_product is None
subject.import_assigned_product(label_obj)
assert label_obj.BIMAssignedProductProperties.relating_product is None
class TestOpenSchedule(NewFile):