mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-24 03:37:58 +00:00
Assigning an opening now ensures it displays as a wire
This commit is contained in:
@@ -73,10 +73,6 @@ class BIMTesterPurge(bpy.types.Operator):
|
|||||||
bl_label = "Purge Tests"
|
bl_label = "Purge Tests"
|
||||||
|
|
||||||
def execute(self, context):
|
def execute(self, context):
|
||||||
filename = os.path.join(
|
|
||||||
context.scene.BimTesterProperties.features_dir,
|
|
||||||
context.scene.BimTesterProperties.features_file + ".feature",
|
|
||||||
)
|
|
||||||
cwd = os.getcwd()
|
cwd = os.getcwd()
|
||||||
os.chdir(context.scene.BimTesterProperties.features_dir)
|
os.chdir(context.scene.BimTesterProperties.features_dir)
|
||||||
bimtester.clean.TestPurger().purge()
|
bimtester.clean.TestPurger().purge()
|
||||||
|
|||||||
@@ -154,7 +154,6 @@ class AddRepresentation(bpy.types.Operator):
|
|||||||
"geometry.assign_representation", self.file, **{"product": product, "representation": result}
|
"geometry.assign_representation", self.file, **{"product": product, "representation": result}
|
||||||
)
|
)
|
||||||
|
|
||||||
existing_mesh = obj.data
|
|
||||||
mesh = obj.data.copy()
|
mesh = obj.data.copy()
|
||||||
mesh.name = "{}/{}".format(context_id, result.id())
|
mesh.name = "{}/{}".format(context_id, result.id())
|
||||||
mesh.BIMMeshProperties.ifc_definition_id = int(result.id())
|
mesh.BIMMeshProperties.ifc_definition_id = int(result.id())
|
||||||
|
|||||||
@@ -18,12 +18,10 @@
|
|||||||
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
|
# along with BlenderBIM Add-on. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import bpy
|
import bpy
|
||||||
import numpy as np
|
|
||||||
import ifcopenshell
|
import ifcopenshell
|
||||||
import ifcopenshell.api
|
import ifcopenshell.api
|
||||||
import ifcopenshell.util.schema
|
import ifcopenshell.util.schema
|
||||||
import ifcopenshell.util.element
|
import ifcopenshell.util.element
|
||||||
from ifcopenshell.api.geometry.data import Data as GeometryData
|
|
||||||
from ifcopenshell.api.void.data import Data as VoidData
|
from ifcopenshell.api.void.data import Data as VoidData
|
||||||
from blenderbim.bim.ifc import IfcStore
|
from blenderbim.bim.ifc import IfcStore
|
||||||
|
|
||||||
@@ -149,6 +147,7 @@ class AssignClass(bpy.types.Operator):
|
|||||||
if product.is_a("IfcElementType"):
|
if product.is_a("IfcElementType"):
|
||||||
self.place_in_types_collection(obj, context)
|
self.place_in_types_collection(obj, context)
|
||||||
elif product.is_a("IfcOpeningElement"):
|
elif product.is_a("IfcOpeningElement"):
|
||||||
|
obj.display_type = "WIRE"
|
||||||
self.place_in_openings_collection(obj, context)
|
self.place_in_openings_collection(obj, context)
|
||||||
elif (
|
elif (
|
||||||
product.is_a("IfcSpatialElement")
|
product.is_a("IfcSpatialElement")
|
||||||
|
|||||||
@@ -153,6 +153,10 @@ def the_file_name_should_contain_value(name, value):
|
|||||||
assert value in f.read()
|
assert value in f.read()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def the_object_name_should_display_as_mode(name, mode):
|
||||||
|
assert the_object_name_exists(name).display_type == mode
|
||||||
|
|
||||||
definitions = {
|
definitions = {
|
||||||
"an empty IFC project": an_empty_ifc_project,
|
"an empty IFC project": an_empty_ifc_project,
|
||||||
"I add a cube": i_add_a_cube,
|
"I add a cube": i_add_a_cube,
|
||||||
@@ -170,6 +174,7 @@ definitions = {
|
|||||||
"I duplicate the selected objects": i_duplicate_the_selected_objects,
|
"I duplicate the selected objects": i_duplicate_the_selected_objects,
|
||||||
'the object "(.*)" and "(.*)" are different elements': the_object_name1_and_name2_are_different_elements,
|
'the object "(.*)" and "(.*)" are different elements': the_object_name1_and_name2_are_different_elements,
|
||||||
'the file "(.*)" should contain "(.*)"': the_file_name_should_contain_value,
|
'the file "(.*)" should contain "(.*)"': the_file_name_should_contain_value,
|
||||||
|
'the object "(.*)" should display as "(.*)"': the_object_name_should_display_as_mode,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ class TestAssignClass(test.bim.bootstrap.NewFile):
|
|||||||
def test_assigning_a_class_to_a_cube(self):
|
def test_assigning_a_class_to_a_cube(self):
|
||||||
return """
|
return """
|
||||||
Given an empty IFC project
|
Given an empty IFC project
|
||||||
When I add a cube
|
When the object "Cube" is selected
|
||||||
And the object "Cube" is selected
|
|
||||||
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
||||||
And I press "bim.assign_class"
|
And I press "bim.assign_class"
|
||||||
Then the object "IfcWall/Cube" is an "IfcWall"
|
Then the object "IfcWall/Cube" is an "IfcWall"
|
||||||
@@ -37,8 +36,7 @@ class TestAssignClass(test.bim.bootstrap.NewFile):
|
|||||||
def test_assigning_a_type_class_to_a_cube(self):
|
def test_assigning_a_type_class_to_a_cube(self):
|
||||||
return """
|
return """
|
||||||
Given an empty IFC project
|
Given an empty IFC project
|
||||||
When I add a cube
|
When the object "Cube" is selected
|
||||||
And the object "Cube" is selected
|
|
||||||
And I set "scene.BIMRootProperties.ifc_product" to "IfcElementType"
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElementType"
|
||||||
And I set "scene.BIMRootProperties.ifc_class" to "IfcWallType"
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWallType"
|
||||||
And I press "bim.assign_class"
|
And I press "bim.assign_class"
|
||||||
@@ -51,8 +49,7 @@ class TestAssignClass(test.bim.bootstrap.NewFile):
|
|||||||
def test_assigning_a_spatial_class_to_a_cube(self):
|
def test_assigning_a_spatial_class_to_a_cube(self):
|
||||||
return """
|
return """
|
||||||
Given an empty IFC project
|
Given an empty IFC project
|
||||||
When I add a cube
|
When the object "Cube" is selected
|
||||||
And the object "Cube" is selected
|
|
||||||
And I set "scene.BIMRootProperties.ifc_product" to "IfcSpatialElement"
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcSpatialElement"
|
||||||
And I set "scene.BIMRootProperties.ifc_class" to "IfcBuilding"
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcBuilding"
|
||||||
And I press "bim.assign_class"
|
And I press "bim.assign_class"
|
||||||
@@ -65,12 +62,12 @@ class TestAssignClass(test.bim.bootstrap.NewFile):
|
|||||||
def test_assigning_an_opening_class_to_a_cube(self):
|
def test_assigning_an_opening_class_to_a_cube(self):
|
||||||
return """
|
return """
|
||||||
Given an empty IFC project
|
Given an empty IFC project
|
||||||
When I add a cube
|
When the object "Cube" is selected
|
||||||
And the object "Cube" is selected
|
|
||||||
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
And I set "scene.BIMRootProperties.ifc_product" to "IfcElement"
|
||||||
And I set "scene.BIMRootProperties.ifc_class" to "IfcOpeningElement"
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcOpeningElement"
|
||||||
And I press "bim.assign_class"
|
And I press "bim.assign_class"
|
||||||
Then the object "IfcOpeningElement/Cube" is an "IfcOpeningElement"
|
Then the object "IfcOpeningElement/Cube" is an "IfcOpeningElement"
|
||||||
|
And the object "IfcOpeningElement/Cube" should display as "WIRE"
|
||||||
And the object "IfcOpeningElement/Cube" is in the collection "IfcOpeningElements"
|
And the object "IfcOpeningElement/Cube" is in the collection "IfcOpeningElements"
|
||||||
And the object "IfcOpeningElement/Cube" has a "Tessellation" representation of "Model/Body/MODEL_VIEW"
|
And the object "IfcOpeningElement/Cube" has a "Tessellation" representation of "Model/Body/MODEL_VIEW"
|
||||||
"""
|
"""
|
||||||
@@ -79,8 +76,7 @@ class TestAssignClass(test.bim.bootstrap.NewFile):
|
|||||||
def test_assigning_a_class_to_a_cube_in_a_collection(self):
|
def test_assigning_a_class_to_a_cube_in_a_collection(self):
|
||||||
return """
|
return """
|
||||||
Given an empty IFC project
|
Given an empty IFC project
|
||||||
When I add a cube
|
When the object "Cube" is selected
|
||||||
And the object "Cube" is selected
|
|
||||||
And the object "Cube" is placed in the collection "IfcBuildingStorey/My Storey"
|
And the object "Cube" is placed in the collection "IfcBuildingStorey/My Storey"
|
||||||
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
||||||
And I press "bim.assign_class"
|
And I press "bim.assign_class"
|
||||||
@@ -93,8 +89,7 @@ class TestCopyClass(test.bim.bootstrap.NewFile):
|
|||||||
def test_copying_a_wall(self):
|
def test_copying_a_wall(self):
|
||||||
return """
|
return """
|
||||||
Given an empty IFC project
|
Given an empty IFC project
|
||||||
When I add a cube
|
When the object "Cube" is selected
|
||||||
And the object "Cube" is selected
|
|
||||||
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
And I set "scene.BIMRootProperties.ifc_class" to "IfcWall"
|
||||||
And I press "bim.assign_class"
|
And I press "bim.assign_class"
|
||||||
And I duplicate the selected objects
|
And I duplicate the selected objects
|
||||||
|
|||||||
Reference in New Issue
Block a user