mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-24 22:10:00 +00:00
ifcopenshell.geom.tree.get_clash_type
This commit is contained in:
@@ -40,9 +40,6 @@ class ClashSource(TypedDict):
|
|||||||
ifc: NotRequired[ifcopenshell.file]
|
ifc: NotRequired[ifcopenshell.file]
|
||||||
|
|
||||||
|
|
||||||
ClashType = Literal["protrusion", "pierce", "collision", "clearance"]
|
|
||||||
|
|
||||||
|
|
||||||
class ClashResult(TypedDict):
|
class ClashResult(TypedDict):
|
||||||
a_global_id: str
|
a_global_id: str
|
||||||
b_global_id: str
|
b_global_id: str
|
||||||
@@ -50,7 +47,7 @@ class ClashResult(TypedDict):
|
|||||||
b_ifc_class: str
|
b_ifc_class: str
|
||||||
a_name: str
|
a_name: str
|
||||||
b_name: str
|
b_name: str
|
||||||
type: ClashType
|
type: ifcopenshell.geom.main.ClashType
|
||||||
p1: list[float]
|
p1: list[float]
|
||||||
p2: list[float]
|
p2: list[float]
|
||||||
distance: float
|
distance: float
|
||||||
@@ -146,7 +143,7 @@ class Clasher:
|
|||||||
b_ifc_class=element2.is_a(),
|
b_ifc_class=element2.is_a(),
|
||||||
a_name=element1.get_argument(2),
|
a_name=element1.get_argument(2),
|
||||||
b_name=element2.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),
|
p1=list(result.p1),
|
||||||
p2=list(result.p2),
|
p2=list(result.p2),
|
||||||
distance=result.distance,
|
distance=result.distance,
|
||||||
|
|||||||
@@ -343,6 +343,10 @@ class iterator(ifcopenshell_wrapper.Iterator):
|
|||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
|
ClashType = Literal["protrusion", "pierce", "collision", "clearance"]
|
||||||
|
CLASH_TYPE_ITEMS = ("protrusion", "pierce", "collision", "clearance")
|
||||||
|
|
||||||
|
|
||||||
class tree(ifcopenshell_wrapper.tree):
|
class tree(ifcopenshell_wrapper.tree):
|
||||||
def __init__(self, file: Optional[file] = None, settings: Optional[settings] = None):
|
def __init__(self, file: Optional[file] = None, settings: Optional[settings] = None):
|
||||||
args = [self]
|
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]
|
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)
|
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(
|
def create_shape(
|
||||||
settings: settings,
|
settings: settings,
|
||||||
|
|||||||
Reference in New Issue
Block a user