mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-29 16:22:53 +00:00
typing
This commit is contained in:
@@ -29,7 +29,7 @@ from ifcopenshell.util.doc import get_attribute_doc, get_predefined_type_doc, ge
|
|||||||
import bonsai.tool as tool
|
import bonsai.tool as tool
|
||||||
from types import EllipsisType
|
from types import EllipsisType
|
||||||
from typing import Optional, Any, Union, TYPE_CHECKING
|
from typing import Optional, Any, Union, TYPE_CHECKING
|
||||||
from collections.abc import Callable, Iterable
|
from collections.abc import Callable, Iterable, Sequence
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
import bonsai.bim.prop
|
import bonsai.bim.prop
|
||||||
@@ -51,7 +51,7 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
|
|
||||||
def draw_attributes(
|
def draw_attributes(
|
||||||
props: bpy.types.bpy_prop_collection_idprop[Attribute],
|
props: Union[bpy.types.bpy_prop_collection_idprop[Attribute], Sequence[Attribute]],
|
||||||
layout: bpy.types.UILayout,
|
layout: bpy.types.UILayout,
|
||||||
copy_operator: Optional[str] = None,
|
copy_operator: Optional[str] = None,
|
||||||
popup_active_attribute: Optional[bonsai.bim.prop.Attribute] = None,
|
popup_active_attribute: Optional[bonsai.bim.prop.Attribute] = None,
|
||||||
|
|||||||
@@ -729,7 +729,7 @@ class LiteralProps(PropertyGroup):
|
|||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
attributes: bpy.types.bpy_prop_collection_idprop[Attribute]
|
attributes: bpy.types.bpy_prop_collection_idprop[Attribute]
|
||||||
value: str
|
value: str
|
||||||
box_alignment: str
|
box_alignment: tuple[bool, bool, bool, bool, bool, bool, bool, bool, bool]
|
||||||
ifc_definition_id: int
|
ifc_definition_id: int
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ def assign_cost_item_quantity(
|
|||||||
ifc: type[tool.Ifc],
|
ifc: type[tool.Ifc],
|
||||||
cost: type[tool.Cost],
|
cost: type[tool.Cost],
|
||||||
cost_item: ifcopenshell.entity_instance,
|
cost_item: ifcopenshell.entity_instance,
|
||||||
related_object_type: type[tool.Cost].RELATED_OBJECT_TYPE,
|
related_object_type: tool.Cost.RELATED_OBJECT_TYPE,
|
||||||
prop_name: str,
|
prop_name: str,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
products = cost.get_products(related_object_type)
|
products = cost.get_products(related_object_type)
|
||||||
|
|||||||
@@ -200,7 +200,7 @@ def disable_editing_references(drawing: type[tool.Drawing]) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def add_document(
|
def add_document(
|
||||||
ifc: type[tool.Ifc], drawing: type[tool.Drawing], document_type: type[tool.Drawing].DOCUMENT_TYPE, uri: str
|
ifc: type[tool.Ifc], drawing: type[tool.Drawing], document_type: tool.Drawing.DOCUMENT_TYPE, uri: str
|
||||||
) -> None:
|
) -> None:
|
||||||
document = ifc.run("document.add_information")
|
document = ifc.run("document.add_information")
|
||||||
reference = ifc.run("document.add_reference", information=document)
|
reference = ifc.run("document.add_reference", information=document)
|
||||||
@@ -217,7 +217,7 @@ def add_document(
|
|||||||
def remove_document(
|
def remove_document(
|
||||||
ifc: type[tool.Ifc],
|
ifc: type[tool.Ifc],
|
||||||
drawing: type[tool.Drawing],
|
drawing: type[tool.Drawing],
|
||||||
document_type: type[tool.Drawing].DOCUMENT_TYPE,
|
document_type: tool.Drawing.DOCUMENT_TYPE,
|
||||||
document: ifcopenshell.entity_instance,
|
document: ifcopenshell.entity_instance,
|
||||||
) -> None:
|
) -> None:
|
||||||
ifc.run("document.remove_information", information=document)
|
ifc.run("document.remove_information", information=document)
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ def add_pset(
|
|||||||
pset: type[tool.Pset],
|
pset: type[tool.Pset],
|
||||||
blender: type[tool.Blender],
|
blender: type[tool.Blender],
|
||||||
obj_name: str,
|
obj_name: str,
|
||||||
obj_type: type[tool.Ifc].OBJECT_TYPE,
|
obj_type: tool.Ifc.OBJECT_TYPE,
|
||||||
) -> None:
|
) -> None:
|
||||||
pset_name = pset.get_pset_name(obj_name, obj_type, pset_type="PSET")
|
pset_name = pset.get_pset_name(obj_name, obj_type, pset_type="PSET")
|
||||||
if obj_type == "Object":
|
if obj_type == "Object":
|
||||||
@@ -71,9 +71,9 @@ def enable_pset_editing(
|
|||||||
pset_tool: type[tool.Pset],
|
pset_tool: type[tool.Pset],
|
||||||
pset: Union[ifcopenshell.entity_instance, None],
|
pset: Union[ifcopenshell.entity_instance, None],
|
||||||
pset_name: str,
|
pset_name: str,
|
||||||
pset_type: type[tool.Pset].PSET_TYPE,
|
pset_type: tool.Pset.PSET_TYPE,
|
||||||
obj_name: str,
|
obj_name: str,
|
||||||
obj_type: type[tool.Ifc].OBJECT_TYPE,
|
obj_type: tool.Ifc.OBJECT_TYPE,
|
||||||
) -> None:
|
) -> None:
|
||||||
props = pset_tool.get_pset_props(obj_name, obj_type)
|
props = pset_tool.get_pset_props(obj_name, obj_type)
|
||||||
pset_tool.clear_blender_pset_properties(props)
|
pset_tool.clear_blender_pset_properties(props)
|
||||||
@@ -94,7 +94,7 @@ def enable_pset_editing(
|
|||||||
|
|
||||||
|
|
||||||
def add_proposed_prop(
|
def add_proposed_prop(
|
||||||
pset: type[tool.Pset], obj_name: str, obj_type: type[tool.Ifc].OBJECT_TYPE, name: str, value: Any
|
pset: type[tool.Pset], obj_name: str, obj_type: tool.Ifc.OBJECT_TYPE, name: str, value: Any
|
||||||
) -> Union[None, str]:
|
) -> Union[None, str]:
|
||||||
props = pset.get_pset_props(obj_name, obj_type)
|
props = pset.get_pset_props(obj_name, obj_type)
|
||||||
res = pset.add_proposed_property(name, pset.cast_string_to_primitive(value), props)
|
res = pset.add_proposed_property(name, pset.cast_string_to_primitive(value), props)
|
||||||
@@ -103,7 +103,7 @@ def add_proposed_prop(
|
|||||||
|
|
||||||
|
|
||||||
def unshare_pset(
|
def unshare_pset(
|
||||||
ifc: type[tool.Ifc], pset_tool: type[tool.Pset], obj_type: type[tool.Ifc].OBJECT_TYPE, obj_name: str, pset_id: int
|
ifc: type[tool.Ifc], pset_tool: type[tool.Pset], obj_type: tool.Ifc.OBJECT_TYPE, obj_name: str, pset_id: int
|
||||||
) -> None:
|
) -> None:
|
||||||
elements: list[ifcopenshell.entity_instance]
|
elements: list[ifcopenshell.entity_instance]
|
||||||
pset = ifc.get_entity_by_id(pset_id)
|
pset = ifc.get_entity_by_id(pset_id)
|
||||||
|
|||||||
@@ -505,7 +505,7 @@ class Drawing(bonsai.core.tool.Drawing):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def export_text_literal_attributes(cls, obj: bpy.types.Object) -> list[dict[str, Any]]:
|
def export_text_literal_attributes(cls, obj: bpy.types.Object) -> list[dict[str, Any]]:
|
||||||
literals = []
|
literals: list[dict[str, Any]] = []
|
||||||
props = tool.Drawing.get_text_props(obj)
|
props = tool.Drawing.get_text_props(obj)
|
||||||
for literal_props in props.literals:
|
for literal_props in props.literals:
|
||||||
literal_data = bonsai.bim.helper.export_attributes(literal_props.attributes)
|
literal_data = bonsai.bim.helper.export_attributes(literal_props.attributes)
|
||||||
@@ -755,6 +755,7 @@ class Drawing(bonsai.core.tool.Drawing):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def synchronise_ifc_and_text_attributes(cls, obj: bpy.types.Object) -> None:
|
def synchronise_ifc_and_text_attributes(cls, obj: bpy.types.Object) -> None:
|
||||||
literals = cls.get_text_literal(obj, return_list=True)
|
literals = cls.get_text_literal(obj, return_list=True)
|
||||||
|
assert isinstance(literals, list)
|
||||||
literals_attributes = cls.export_text_literal_attributes(obj)
|
literals_attributes = cls.export_text_literal_attributes(obj)
|
||||||
props = cls.get_text_props(obj)
|
props = cls.get_text_props(obj)
|
||||||
defined_ifc_ids = [l.ifc_definition_id for l in props.literals]
|
defined_ifc_ids = [l.ifc_definition_id for l in props.literals]
|
||||||
|
|||||||
Reference in New Issue
Block a user