(
self,
element: dict,
load_group_ids: list[int],
load_cases: list[ios.entity_instance],
)
| 505 | return data |
| 506 | |
| 507 | def parse_element_loads( |
| 508 | self, |
| 509 | element: dict, |
| 510 | load_group_ids: list[int], |
| 511 | load_cases: list[ios.entity_instance], |
| 512 | ): |
| 513 | ifc_element = self.file.by_id(element["id"]) |
| 514 | actions = self.get_actions(element=ifc_element, load_group_ids=load_group_ids) |
| 515 | if not len(actions): |
| 516 | return None |
| 517 | |
| 518 | if element["geometry_type"] in ["Vertex", "Edge"]: |
| 519 | data = { |
| 520 | "actions": [], |
| 521 | "loadGroups": [], |
| 522 | "loadsLC": { |
| 523 | "FX": np.array([0.0 for _ in load_cases]), |
| 524 | "FY": np.array([0.0 for _ in load_cases]), |
| 525 | "FZ": np.array([0.0 for _ in load_cases]), |
| 526 | "MX": np.array([0.0 for _ in load_cases]), |
| 527 | "MY": np.array([0.0 for _ in load_cases]), |
| 528 | "MZ": np.array([0.0 for _ in load_cases]), |
| 529 | }, |
| 530 | "loadsCOMB": { |
| 531 | "FX": None, |
| 532 | "FY": None, |
| 533 | "FZ": None, |
| 534 | "MX": None, |
| 535 | "MY": None, |
| 536 | "MZ": None, |
| 537 | }, |
| 538 | } |
| 539 | elif element["geometry_type"] == "Face": |
| 540 | data = { |
| 541 | "actions": [], |
| 542 | "loadGroups": [], |
| 543 | "loadsLC": { |
| 544 | "FX": np.array([0.0 for _ in load_cases]), |
| 545 | "FY": np.array([0.0 for _ in load_cases]), |
| 546 | "FZ": np.array([0.0 for _ in load_cases]), |
| 547 | }, |
| 548 | "loadsCOMB": { |
| 549 | "FX": None, |
| 550 | "FY": None, |
| 551 | "FZ": None, |
| 552 | }, |
| 553 | } |
| 554 | |
| 555 | for action in actions: |
| 556 | self.add_action_loads(element, action, data, load_cases) |
| 557 | |
| 558 | loadsLC = deepcopy(data["loadsLC"]) |
| 559 | loadsCOMB = deepcopy(data["loadsCOMB"]) |
| 560 | for key, load in data["loadsLC"].items(): |
| 561 | if np.max(np.abs(load)) == 0.0: |
| 562 | del loadsLC[key] |
| 563 | del loadsCOMB[key] |
| 564 | if len(loadsLC) == 0: |
no test coverage detected