diff --git a/src/ansys/aedt/core/modeler/cad/object_3d.py b/src/ansys/aedt/core/modeler/cad/object_3d.py index d5e53ff5d32..364d4b56138 100644 --- a/src/ansys/aedt/core/modeler/cad/object_3d.py +++ b/src/ansys/aedt/core/modeler/cad/object_3d.py @@ -98,6 +98,7 @@ def __init__(self, primitives, name=None): self._surface_material = None self._color = None self._wireframe = None + self._material_appearance = None self._part_coordinate_system = None self._model = None self._m_groupName = None @@ -1342,6 +1343,45 @@ def display_wireframe(self, fWireframe): self._change_property(vWireframe) self._wireframe = fWireframe + @property + def material_appearance(self): + """Material appearance property of the part. + + Returns + ------- + bool + ``True`` when material appearance is activated for the part, ``False`` otherwise. + + References + ---------- + + >>> oEditor.GetPropertyValue + >>> oEditor.ChangeProperty + + """ + if self._material_appearance is not None: + return self._material_appearance + if "Material Appearance" in self.valid_properties: + material_appearance = self._oeditor.GetPropertyValue( + "Geometry3DAttributeTab", self._m_name, "Material Appearance" + ) + if material_appearance == "true" or material_appearance == "True": + self._material_appearance = True + else: + self._material_appearance = False + return self._material_appearance + + @material_appearance.setter + def material_appearance(self, material_appearance): + vMaterialAppearance = [ + "NAME:Material Appearance", + "Value:=", + material_appearance, + ] + + self._change_property(vMaterialAppearance) + self._material_appearance = material_appearance + @pyaedt_function_handler() def history(self): """Object history. diff --git a/src/ansys/aedt/core/modeler/cad/primitives.py b/src/ansys/aedt/core/modeler/cad/primitives.py index a4198684c54..48be85d11f3 100644 --- a/src/ansys/aedt/core/modeler/cad/primitives.py +++ b/src/ansys/aedt/core/modeler/cad/primitives.py @@ -6311,7 +6311,11 @@ def update_geometry_property(self, assignment, name=None, value=None): "solve_inside": {"property_name": "Solve Inside", "reset_attr": ["_solve_inside"]}, "color": {"property_name": "Color", "reset_attr": ["_color"]}, "transparency": {"property_name": "Transparent", "reset_attr": ["_transparency"]}, - "part_coordinate_system": {"property_name": "Orientation", "reset_attr": ["_part_coordinate_system"]}, + "part_coordinate_system": { + "property_name": "Orientation", + "reset_attr": ["_part_coordinate_system"], + }, + "material_appearance": {"property_name": "Material Appearance", "reset_attr": ["_material_appearance"]}, } # Check if property name is valid diff --git a/tests/system/general/test_07_Object3D.py b/tests/system/general/test_07_Object3D.py index 3d31f82d27f..f40858e3a91 100644 --- a/tests/system/general/test_07_Object3D.py +++ b/tests/system/general/test_07_Object3D.py @@ -241,6 +241,7 @@ def test_07_object_clone_and_get_properties(self): assert new_object.solve_inside == initial_object.solve_inside assert new_object.model == initial_object.model assert new_object.display_wireframe == initial_object.display_wireframe + assert new_object.material_appearance == initial_object.material_appearance assert new_object.part_coordinate_system == initial_object.part_coordinate_system assert new_object.transparency == 0.76 assert new_object.color == initial_object.color @@ -248,7 +249,6 @@ def test_07_object_clone_and_get_properties(self): assert len(new_object.vertices) == 8 assert len(new_object.faces) == 6 assert len(new_object.edges) == 12 - assert new_object.display_wireframe == initial_object.display_wireframe new_object.name = "Properties_Box" assert not new_object.name == "Properties_Box" diff --git a/tests/system/general/test_08_Primitives3D.py b/tests/system/general/test_08_Primitives3D.py index baff07f0c44..9fef8369acc 100644 --- a/tests/system/general/test_08_Primitives3D.py +++ b/tests/system/general/test_08_Primitives3D.py @@ -2071,3 +2071,9 @@ def test_95_update_geometry_property(self): self.aedtapp.modeler.update_geometry_property([box2.name], "part_coordinate_system", cs.name) assert box2.part_coordinate_system == cs.name assert box1.part_coordinate_system == "Global" + + self.aedtapp.modeler.update_geometry_property([box1.name], "material_appearance", True) + assert box1.material_appearance + + self.aedtapp.modeler.update_geometry_property([box1.name, box2.name], "material_appearance", True) + assert box2.material_appearance