This commit is contained in:
Andrej
2025-05-29 17:23:02 +05:00
parent ea7ced738a
commit 0663c5130a
25 changed files with 42 additions and 22 deletions
@@ -65,7 +65,7 @@ if TYPE_CHECKING:
import ifcopenshell.express.schema_class
if hasattr(os, "uname"):
if sys.platform != "win32":
platform_system = os.uname()[0].lower()
else:
platform_system = "windows"
@@ -43,9 +43,11 @@ import numpy
import inspect
import importlib
import ifcopenshell
from typing import Callable, Any, Optional
from typing import Callable, Any, Optional, TYPE_CHECKING
from functools import partial
if TYPE_CHECKING:
import ifcopenshell.api
pre_listeners: dict[str, dict] = {}
post_listeners: dict[str, dict] = {}
@@ -185,7 +187,7 @@ def extract_docs(module: str, usecase: str) -> dict[str, Any]:
type_hints = typing.get_type_hints(function_init)
for name, socket_data in inputs.items():
type_hint = type_hints[name]
if isinstance(type_hint, typing._UnionGenericAlias):
if isinstance(type_hint, typing._UnionGenericAlias): # pyright: ignore[reportAttributeAccessIssue]
inputs[name]["type"] = [t.__name__ for t in typing.get_args(type_hint)]
else:
inputs[name]["type"] = type_hint.__name__
@@ -19,6 +19,8 @@
import ifcopenshell
import ifcopenshell.api.alignment
import ifcopenshell.api.nest
import ifcopenshell.api.pset
import ifcopenshell.util.stationing
import ifcopenshell.guid
from ifcopenshell import entity_instance
@@ -21,6 +21,7 @@ import ifcopenshell.api.aggregate
import ifcopenshell.api.alignment
import ifcopenshell.api.geometry
import ifcopenshell.api.nest
import ifcopenshell.api.root
import ifcopenshell.guid
import ifcopenshell.util.element
import ifcopenshell.util.representation
@@ -17,7 +17,9 @@
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
import ifcopenshell
import ifcopenshell.api.aggregate
import ifcopenshell.api.alignment
import ifcopenshell.api.nest
from ifcopenshell import entity_instance
from typing import Sequence
@@ -17,11 +17,10 @@
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
import ifcopenshell
import ifcopenshell.util.element
import ifcopenshell.util.representation
import ifcopenshell.api.alignment
from ifcopenshell import entity_instance
from ifcopenshell import ifcopenshell_wrapper
import math
from typing import Sequence
def create_segment_representations(
@@ -17,9 +17,7 @@
# along with IfcOpenShell. If not, see <http://www.gnu.org/licenses/>.
import ifcopenshell
import ifcopenshell.api.alignment
import ifcopenshell.api.nest
import ifcopenshell.guid
import ifcopenshell.util.element
from ifcopenshell import entity_instance
@@ -49,8 +49,6 @@ def map_alignment_segments(
elif alignment.is_a("IfcAlignmentCant") and not composite_curve.is_a("IfcSegmentedReferenceCurve"):
raise TypeError(f"Expected to see IfcSegmentedReferenceCurve, instead received '{composite_curve.is_a()}'.")
settings = ifcopenshell.geom.settings()
composite_curve.SelfIntersect = False
for rel_nests in alignment.IsNestedBy:
@@ -64,6 +62,8 @@ def map_alignment_segments(
mapped_segments = ifcopenshell.api.alignment.map_alignment_cant_segment(
file, layout, alignment.RailHeadDistance
)
else:
assert False
for mapped_segment in mapped_segments:
if mapped_segment:
ifcopenshell.api.alignment.add_segment_to_curve(file, mapped_segment, composite_curve)
@@ -19,6 +19,7 @@
from __future__ import annotations
import numpy as np
import dataclasses
import ifcopenshell.api.geometry
import ifcopenshell.util.unit
from itertools import chain
from ifcopenshell.util.shape_builder import ShapeBuilder, V
@@ -18,11 +18,10 @@
import numpy as np
import ifcopenshell
import ifcopenshell.api.owner
import ifcopenshell.guid
import ifcopenshell.util.element
import ifcopenshell.api.geometry
import ifcopenshell.util.placement
import ifcopenshell.util.representation
import ifcopenshell.util.shape_builder
from typing import Optional
@@ -19,11 +19,13 @@
import json
import numpy as np
import ifcopenshell
import ifcopenshell.api.context
import ifcopenshell.api.geometry
import ifcopenshell.util.unit
import ifcopenshell.util.element
import ifcopenshell.util.placement
import ifcopenshell.util.representation
import ifcopenshell.util.shape_builder
import ifcopenshell.util.unit
from collections import namedtuple
from math import sin, cos
from typing import Optional
@@ -19,6 +19,7 @@
import ifcopenshell
import ifcopenshell.util.element
import ifcopenshell.util.geolocation
import ifcopenshell.util.unit
import numpy as np
from math import sin, cos, radians
@@ -19,8 +19,9 @@
import os
import json
import ifcopenshell
import ifcopenshell.util.element
import ifcopenshell.util.classification
import ifcopenshell.util.element
import ifcopenshell.util.system
from typing import Union
@@ -19,8 +19,9 @@
import numpy as np
import numpy.typing as npt
import ifcopenshell
import ifcopenshell.util.shape
import ifcopenshell.util.representation
import ifcopenshell.util.placement
import ifcopenshell.util.shape
from typing import Optional, Union, TypedDict, Literal, Generator, Sequence