mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-19 06:39:13 +00:00
Fix bug where you couldn't copy quantities to other elements
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
@pset
|
||||
Feature: Pset
|
||||
|
||||
Scenario: Copy property to selected
|
||||
Scenario: Copy property to selected - copy property
|
||||
Given an empty IFC project
|
||||
And I add a cube
|
||||
And the object "Cube" is selected
|
||||
@@ -20,3 +20,23 @@ Scenario: Copy property to selected
|
||||
And I set "active_object.PsetProperties.properties[2].string_value" to "Foo"
|
||||
When I press "bim.copy_property_to_selection(name='FireRating')"
|
||||
Then nothing happens
|
||||
|
||||
Scenario: Copy property to selected - copy quantity
|
||||
Given an empty IFC project
|
||||
And I add a cube
|
||||
And the object "Cube" is selected
|
||||
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
||||
And I press "bim.assign_class"
|
||||
And I add a cube
|
||||
And the object "Cube" is selected
|
||||
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
||||
And I press "bim.assign_class"
|
||||
And the object "IfcWall/Cube" is selected
|
||||
And additionally the object "IfcWall/Cube.001" is selected
|
||||
And I set "active_object.PsetProperties.pset_name" to "Pset_BuildingElementCommon"
|
||||
And I press "bim.add_qto(obj='IfcWall/Cube.001', obj_type='Object')"
|
||||
And the variable "qto" is "{ifc}.by_type('IfcQuantitySet')[-1].id()"
|
||||
And I press "bim.enable_pset_editing(obj='IfcWall/Cube.001', obj_type='Object', pset_id={qto})"
|
||||
And I set "active_object.PsetProperties.properties[0].float_value" to "1"
|
||||
When I press "bim.copy_property_to_selection(name='Length')"
|
||||
Then nothing happens
|
||||
|
||||
@@ -24,7 +24,7 @@ class TestCopyPropertyToSelection:
|
||||
def test_doing_nothing_if_object_is_not_an_element(self, ifc, pset):
|
||||
ifc.get_entity("obj").should_be_called().will_return(None)
|
||||
subject.copy_property_to_selection(
|
||||
ifc, pset, obj="obj", pset_name="pset_name", prop_name="prop_name", prop_value="prop_value"
|
||||
ifc, pset, is_pset=True, obj="obj", pset_name="pset_name", prop_name="prop_name", prop_value="prop_value"
|
||||
)
|
||||
|
||||
def test_copying_the_property_to_an_existing_pset(self, ifc, pset):
|
||||
@@ -32,7 +32,7 @@ class TestCopyPropertyToSelection:
|
||||
pset.get_element_pset("element", "pset_name").should_be_called().will_return("pset")
|
||||
ifc.run("pset.edit_pset", pset="pset", properties={"prop_name": "prop_value"}).should_be_called()
|
||||
subject.copy_property_to_selection(
|
||||
ifc, pset, obj="obj", pset_name="pset_name", prop_name="prop_name", prop_value="prop_value"
|
||||
ifc, pset, is_pset=True, obj="obj", pset_name="pset_name", prop_name="prop_name", prop_value="prop_value"
|
||||
)
|
||||
|
||||
def test_creating_a_new_pset_if_it_doesnt_exist(self, ifc, pset):
|
||||
@@ -41,5 +41,22 @@ class TestCopyPropertyToSelection:
|
||||
ifc.run("pset.add_pset", product="element", name="pset_name").should_be_called().will_return("pset")
|
||||
ifc.run("pset.edit_pset", pset="pset", properties={"prop_name": "prop_value"}).should_be_called()
|
||||
subject.copy_property_to_selection(
|
||||
ifc, pset, obj="obj", pset_name="pset_name", prop_name="prop_name", prop_value="prop_value"
|
||||
ifc, pset, is_pset=True, obj="obj", pset_name="pset_name", prop_name="prop_name", prop_value="prop_value"
|
||||
)
|
||||
|
||||
def test_copying_the_quantity_to_an_existing_qto(self, ifc, pset):
|
||||
ifc.get_entity("obj").should_be_called().will_return("element")
|
||||
pset.get_element_pset("element", "qto_name").should_be_called().will_return("qto")
|
||||
ifc.run("pset.edit_qto", qto="qto", properties={"prop_name": "prop_value"}).should_be_called()
|
||||
subject.copy_property_to_selection(
|
||||
ifc, pset, is_pset=False, obj="obj", pset_name="qto_name", prop_name="prop_name", prop_value="prop_value"
|
||||
)
|
||||
|
||||
def test_creating_a_new_qto_if_it_doesnt_exist(self, ifc, pset):
|
||||
ifc.get_entity("obj").should_be_called().will_return("element")
|
||||
pset.get_element_pset("element", "qto_name").should_be_called().will_return(None)
|
||||
ifc.run("pset.add_qto", product="element", name="qto_name").should_be_called().will_return("qto")
|
||||
ifc.run("pset.edit_qto", qto="qto", properties={"prop_name": "prop_value"}).should_be_called()
|
||||
subject.copy_property_to_selection(
|
||||
ifc, pset, is_pset=False, obj="obj", pset_name="qto_name", prop_name="prop_name", prop_value="prop_value"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user