This commit is contained in:
Andrej730
2024-04-05 14:06:10 +05:00
parent 1d916f41e2
commit 443cd5187c
10 changed files with 28 additions and 10 deletions
+2 -1
View File
@@ -29,6 +29,7 @@ from mathutils import geometry
from mathutils import Vector
import blenderbim.tool as tool
from blenderbim.bim.ifc import IfcStore
from typing import Optional, Callable, Any
def draw_attributes(props, layout, copy_operator=None, popup_active_attribute=None):
@@ -182,7 +183,7 @@ def add_attribute_description(attribute_blender, attribute_ifc=None):
attribute_blender.description = description
def export_attributes(props, callback=None):
def export_attributes(props, callback: Optional[Callable] = None) -> dict[str, Any]:
attributes = {}
for prop in props:
is_handled_by_callback = callback(attributes, prop) if callback else False
+10 -6
View File
@@ -51,7 +51,7 @@ from blenderbim.bim.module.drawing.prop import get_diagram_scales, BOX_ALIGNMENT
from lxml import etree
from mathutils import Vector, Matrix
from fractions import Fraction
from typing import Optional, Union, Iterable
from typing import Optional, Union, Iterable, Any
from pathlib import Path
@@ -342,7 +342,7 @@ class Drawing(blenderbim.core.tool.Drawing):
return identification
@classmethod
def export_text_literal_attributes(cls, obj):
def export_text_literal_attributes(cls, obj: bpy.types.Object) -> list[dict[str, Any]]:
literals = []
for literal_props in obj.BIMTextProperties.literals:
literal_data = blenderbim.bim.helper.export_attributes(literal_props.attributes)
@@ -350,7 +350,9 @@ class Drawing(blenderbim.core.tool.Drawing):
return literals
@classmethod
def create_annotation_context(cls, target_view, object_type=None):
def create_annotation_context(
cls, target_view: str, object_type: Optional[str] = None
) -> ifcopenshell.entity_instance:
# checking PLAN target view and annotation type that doesn't require 3d
if target_view in ("PLAN_VIEW", "REFLECTED_PLAN_VIEW") and object_type not in (
"FALL",
@@ -596,7 +598,7 @@ class Drawing(blenderbim.core.tool.Drawing):
return ifc_literal
@classmethod
def get_assigned_product(cls, element):
def get_assigned_product(cls, element: ifcopenshell.entity_instance) -> Union[ifcopenshell.entity_instance, None]:
for rel in element.HasAssignments:
if rel.is_a("IfcRelAssignsToProduct"):
return rel.RelatingProduct
@@ -1222,7 +1224,9 @@ class Drawing(blenderbim.core.tool.Drawing):
mat.translation += annotation_offset
return mat
def clip_to_camera_boundary(mesh: bpy.types.Mesh, bounds: tuple[float, float, float, float, float, float]) -> Union[bpy.types.Mesh, None]:
def clip_to_camera_boundary(
mesh: bpy.types.Mesh, bounds: tuple[float, float, float, float, float, float]
) -> Union[bpy.types.Mesh, None]:
mesh.verts.ensure_lookup_table()
points = [v.co for v in mesh.verts[0:2]]
points = helper.clip_segment(bounds, points)
@@ -1461,7 +1465,7 @@ class Drawing(blenderbim.core.tool.Drawing):
return bool(a_tree.overlap(b_tree))
@classmethod
def replace_text_literal_variables(cls, text, product):
def replace_text_literal_variables(cls, text: str, product: Optional[ifcopenshell.entity_instance] = None) -> str:
if not product:
return text
@@ -20,6 +20,7 @@ import bpy
import bmesh
import shapely
import ifcopenshell
import ifcopenshell.util.element
import blenderbim.core.type
import blenderbim.core.tool
import blenderbim.core.root
@@ -18,6 +18,8 @@
import bpy
import ifcopenshell
import ifcopenshell.api
import ifcopenshell.util.element
import blenderbim.core.tool
import blenderbim.tool as tool
from blenderbim.tool.collector import Collector as subject
@@ -21,7 +21,9 @@ import ifcopenshell.api
class Usecase:
def __init__(self, file, products=None, group=None):
def __init__(
self, file: ifcopenshell.file, products: list[ifcopenshell.entity_instance], group: ifcopenshell.entity_instance
):
"""Assigns products to a group
If a product is already assigned to the group, it will not be assigned
@@ -48,7 +50,7 @@ class Usecase:
"group": group,
}
def execute(self):
def execute(self) -> ifcopenshell.entity_instance:
if not self.settings["group"].IsGroupedBy:
return self.file.create_entity(
"IfcRelAssignsToGroup",
@@ -65,3 +67,4 @@ class Usecase:
related_objects.add(obj)
rel.RelatedObjects = list(related_objects)
ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": rel})
return rel
@@ -258,7 +258,7 @@ class GetElementTransformer(lark.Transformer):
return args[1:-1].replace("\\", "")
def format(query):
def format(query: str) -> str:
return FormatTransformer().transform(format_grammar.parse(query))
+2
View File
@@ -117,6 +117,8 @@ reload_event = False
import bpy
from os.path import splitext
import ifcopenshell
import ifcopenshell.api
import ifcopenshell.util.element
from ifcsverchok.ifcstore import SvIfcStore
@@ -21,6 +21,8 @@ import bpy
from itertools import chain
import ifcopenshell
import ifcopenshell.api
import ifcopenshell.util.element
import ifcsverchok.helper
from ifcsverchok.ifcstore import SvIfcStore
+2
View File
@@ -19,6 +19,8 @@
from os.path import abspath, splitext
import bpy
import ifcopenshell
import ifcopenshell.api
import ifcopenshell.util.element
import ifcsverchok.helper
from ifcsverchok.ifcstore import SvIfcStore
from bpy.props import StringProperty, BoolProperty
+1
View File
@@ -22,6 +22,7 @@ import uuid
import pytest
import functools
import ifcopenshell
import ifcopenshell.api
import ifctester
import test_facet
import test_ids