From a594a6cfe2cf37bf13dbe3d14d37b4371776dd69 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 17 Jun 2024 11:30:38 +0500 Subject: [PATCH] typing --- src/blenderbim/blenderbim/tool/loader.py | 9 ++++++--- .../ifcopenshell/api/style/add_surface_style.py | 13 +++++++++++-- .../ifcopenshell/util/shape_builder.py | 10 +++++----- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/blenderbim/blenderbim/tool/loader.py b/src/blenderbim/blenderbim/tool/loader.py index c52341de2d..9d3328db81 100644 --- a/src/blenderbim/blenderbim/tool/loader.py +++ b/src/blenderbim/blenderbim/tool/loader.py @@ -16,14 +16,17 @@ # You should have received a copy of the GNU General Public License # along with BlenderBIM Add-on. If not, see . +from __future__ import annotations import os import re import bpy import bmesh import ifcopenshell.geom import ifcopenshell.util.element +import ifcopenshell.util.unit import blenderbim.core.tool import blenderbim.tool as tool +import blenderbim.bim.import_ifc import numpy as np import numpy.typing as npt from mathutils import Vector, Matrix @@ -42,14 +45,14 @@ OBJECT_DATA_TYPE = Union[bpy.types.Mesh, bpy.types.Curve] class Loader(blenderbim.core.tool.Loader): unit_scale: float = 1 - settings = None + settings: blenderbim.bim.import_ifc.IfcImportSettings = None @classmethod def set_unit_scale(cls, unit_scale: float) -> None: cls.unit_scale = unit_scale @classmethod - def set_settings(cls, settings) -> None: + def set_settings(cls, settings: blenderbim.bim.import_ifc.IfcImportSettings) -> None: cls.settings = settings @classmethod @@ -469,7 +472,7 @@ class Loader(blenderbim.core.tool.Loader): blender_material.node_tree.links.new(coord.outputs["UV"], node.inputs["Vector"]) @classmethod - def load_indexed_texture_map(cls, coordinates, mesh): + def load_indexed_texture_map(cls, coordinates: ifcopenshell.entity_instance, mesh: bpy.types.Mesh) -> None: # Get a BMesh representation bm = bmesh.new() bm.from_mesh(mesh) diff --git a/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_style.py b/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_style.py index 25101ae5ad..4c80a4ae42 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_style.py +++ b/src/ifcopenshell-python/ifcopenshell/api/style/add_surface_style.py @@ -18,13 +18,22 @@ import ifcopenshell import ifcopenshell.api -from typing import Any, Optional +from typing import Any, Optional, Literal + + +SURFACE_STYLE_TYPES = Literal[ + "IfcExternallyDefinedSurfaceStyle", + "IfcSurfaceStyleLighting", + "IfcSurfaceStyleRefraction", + "IfcSurfaceStyleShading", + "IfcSurfaceStyleWithTextures", +] def add_surface_style( file: ifcopenshell.file, style: ifcopenshell.entity_instance, - ifc_class: str = "IfcSurfaceStyleShading", + ifc_class: SURFACE_STYLE_TYPES = "IfcSurfaceStyleShading", attributes: Optional[dict[str, Any]] = None, ) -> None: """Adds a new presentation item to a surface style diff --git a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py index a99bea49f3..119f6d2b05 100644 --- a/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py +++ b/src/ifcopenshell-python/ifcopenshell/util/shape_builder.py @@ -1076,13 +1076,13 @@ class ShapeBuilder: ) return points, segments, transition_arc - def polygonal_face_set(self, points: list[Vector], faces: list[[list[int]]]) -> ifcopenshell.entity_instance: + def polygonal_face_set(self, points: list[Vector], faces: list[list[int]]) -> ifcopenshell.entity_instance: """ - > `points` - list of points + Generate an IfcPolygonalFaceSet. - > `faces` - list of faces consisted of point indices (points indices starting from 0) - - < IfcPolygonalFaceSet + :param points: rectangle size, could be either 2d or 3d, defaults to `(1,1)` + :param faces: list of faces consisted of point indices (points indices starting from 0) + :return: IfcPolygonalFaceSet """ ifc_points = self.file.createIfcCartesianPointList3D(points)