mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 17:58:20 +00:00
ifcopenshell.geom.tree.get_clash_type
This commit is contained in:
@@ -40,9 +40,6 @@ class ClashSource(TypedDict):
|
||||
ifc: NotRequired[ifcopenshell.file]
|
||||
|
||||
|
||||
ClashType = Literal["protrusion", "pierce", "collision", "clearance"]
|
||||
|
||||
|
||||
class ClashResult(TypedDict):
|
||||
a_global_id: str
|
||||
b_global_id: str
|
||||
@@ -50,7 +47,7 @@ class ClashResult(TypedDict):
|
||||
b_ifc_class: str
|
||||
a_name: str
|
||||
b_name: str
|
||||
type: ClashType
|
||||
type: ifcopenshell.geom.main.ClashType
|
||||
p1: list[float]
|
||||
p2: list[float]
|
||||
distance: float
|
||||
@@ -146,7 +143,7 @@ class Clasher:
|
||||
b_ifc_class=element2.is_a(),
|
||||
a_name=element1.get_argument(2),
|
||||
b_name=element2.get_argument(2),
|
||||
type=("protrusion", "pierce", "collision", "clearance")[result.clash_type],
|
||||
type=self.tree.get_clash_type(result.clash_type),
|
||||
p1=list(result.p1),
|
||||
p2=list(result.p2),
|
||||
distance=result.distance,
|
||||
|
||||
@@ -343,6 +343,10 @@ class iterator(ifcopenshell_wrapper.Iterator):
|
||||
break
|
||||
|
||||
|
||||
ClashType = Literal["protrusion", "pierce", "collision", "clearance"]
|
||||
CLASH_TYPE_ITEMS = ("protrusion", "pierce", "collision", "clearance")
|
||||
|
||||
|
||||
class tree(ifcopenshell_wrapper.tree):
|
||||
def __init__(self, file: Optional[file] = None, settings: Optional[settings] = None):
|
||||
args = [self]
|
||||
@@ -429,6 +433,14 @@ class tree(ifcopenshell_wrapper.tree):
|
||||
args = [self, [e.wrapped_data for e in set_a], [e.wrapped_data for e in set_b], clearance, check_all]
|
||||
return ifcopenshell_wrapper.tree.clash_clearance_many(*args)
|
||||
|
||||
@staticmethod
|
||||
def get_clash_type(clash_type_i: int) -> ClashType:
|
||||
"""Convert clash type index to a readable string format.
|
||||
|
||||
:param clash_type_i: Type index that comes from ``clash.clash_type``.
|
||||
"""
|
||||
return CLASH_TYPE_ITEMS[clash_type_i]
|
||||
|
||||
|
||||
def create_shape(
|
||||
settings: settings,
|
||||
|
||||
Reference in New Issue
Block a user