mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-26 10:11:46 +00:00
typing
This commit is contained in:
@@ -86,7 +86,7 @@ cache_string.data: dict[str, str] = {}
|
|||||||
|
|
||||||
def get_attribute_enum_values(prop: "Attribute", context: bpy.types.Context) -> list[tuple[str, str, str]]:
|
def get_attribute_enum_values(prop: "Attribute", context: bpy.types.Context) -> list[tuple[str, str, str]]:
|
||||||
# Support weird buildingSMART dictionary mappings which behave like enums
|
# Support weird buildingSMART dictionary mappings which behave like enums
|
||||||
items = []
|
items: list[tuple[str, str, str]] = []
|
||||||
data = json.loads(prop.enum_items)
|
data = json.loads(prop.enum_items)
|
||||||
|
|
||||||
if isinstance(data, dict):
|
if isinstance(data, dict):
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ import bonsai.bim.helper
|
|||||||
from typing import Any, Union, Literal, TYPE_CHECKING
|
from typing import Any, Union, Literal, TYPE_CHECKING
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
from bonsai.bim.prop import Attribute
|
||||||
from bonsai.bim.module.georeference.prop import BIMGeoreferenceProperties
|
from bonsai.bim.module.georeference.prop import BIMGeoreferenceProperties
|
||||||
|
|
||||||
|
|
||||||
@@ -53,7 +54,7 @@ class Georeference(bonsai.core.tool.Georeference):
|
|||||||
def import_projected_crs(cls) -> None:
|
def import_projected_crs(cls) -> None:
|
||||||
props = tool.Georeference.get_georeference_props()
|
props = tool.Georeference.get_georeference_props()
|
||||||
|
|
||||||
def callback(name, prop, data):
|
def callback(name: str, prop: Union[Attribute, None], data: dict[str, Any]) -> Union[bool, None]:
|
||||||
if name == "MapUnit":
|
if name == "MapUnit":
|
||||||
new = props.projected_crs.add()
|
new = props.projected_crs.add()
|
||||||
new.name = name
|
new.name = name
|
||||||
@@ -181,10 +182,11 @@ class Georeference(bonsai.core.tool.Georeference):
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def export_projected_crs(cls) -> dict[str, Any]:
|
def export_projected_crs(cls) -> dict[str, Any]:
|
||||||
def callback(attributes, prop):
|
def callback(attributes: dict[str, Any], prop: Attribute) -> bool:
|
||||||
if not prop.is_null and prop.name == "MapUnit":
|
if not prop.is_null and prop.name == "MapUnit":
|
||||||
attributes[prop.name] = tool.Ifc.get().by_id(int(prop.enum_value))
|
attributes[prop.name] = tool.Ifc.get().by_id(int(prop.enum_value))
|
||||||
return True
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
props = cls.get_georeference_props()
|
props = cls.get_georeference_props()
|
||||||
return bonsai.bim.helper.export_attributes(props.projected_crs, callback=callback)
|
return bonsai.bim.helper.export_attributes(props.projected_crs, callback=callback)
|
||||||
@@ -193,12 +195,13 @@ class Georeference(bonsai.core.tool.Georeference):
|
|||||||
def export_coordinate_operation(cls) -> dict[str, Any]:
|
def export_coordinate_operation(cls) -> dict[str, Any]:
|
||||||
measure_type = None
|
measure_type = None
|
||||||
|
|
||||||
def callback(attributes, prop):
|
def callback(attributes: dict[str, Any], prop: Attribute) -> bool:
|
||||||
global measure_type
|
nonlocal measure_type
|
||||||
if prop.name == "Measure Type":
|
if prop.name == "Measure Type":
|
||||||
measure_type = prop.get_value()
|
measure_type = prop.get_value()
|
||||||
return True
|
return True
|
||||||
elif prop.name in ("FirstCoordinate", "SecondCoordinate"):
|
elif prop.name in ("FirstCoordinate", "SecondCoordinate"):
|
||||||
|
assert measure_type
|
||||||
attributes[prop.name] = tool.Ifc.get().create_entity(measure_type, float(prop.string_value))
|
attributes[prop.name] = tool.Ifc.get().create_entity(measure_type, float(prop.string_value))
|
||||||
return True
|
return True
|
||||||
elif prop.name == "XAxisAbscissa":
|
elif prop.name == "XAxisAbscissa":
|
||||||
@@ -216,6 +219,7 @@ class Georeference(bonsai.core.tool.Georeference):
|
|||||||
# We store our floats as string to prevent single precision data loss
|
# We store our floats as string to prevent single precision data loss
|
||||||
attributes[prop.name] = float(prop.string_value)
|
attributes[prop.name] = float(prop.string_value)
|
||||||
return True
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
props = cls.get_georeference_props()
|
props = cls.get_georeference_props()
|
||||||
return bonsai.bim.helper.export_attributes(props.coordinate_operation, callback=callback)
|
return bonsai.bim.helper.export_attributes(props.coordinate_operation, callback=callback)
|
||||||
|
|||||||
Reference in New Issue
Block a user