MCPcopy Create free account
hub / github.com/IfcOpenShell/IfcOpenShell / parse_element_loads

Method parse_element_loads

src/ifc2ca/ifc2ca.py:507–573  ·  view source on GitHub ↗
(
        self,
        element: dict,
        load_group_ids: list[int],
        load_cases: list[ios.entity_instance],
    )

Source from the content-addressed store, hash-verified

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:

Callers 1

parse_modelMethod · 0.95

Calls 6

get_actionsMethod · 0.95
add_action_loadsMethod · 0.95
get_ref_idMethod · 0.95
printFunction · 0.85
by_idMethod · 0.45
itemsMethod · 0.45

Tested by

no test coverage detected