| 27 | |
| 28 | |
| 29 | class SvIfcStore: |
| 30 | path = "" |
| 31 | file: Union[ifcopenshell.file, None] = None |
| 32 | schema = None |
| 33 | cache = None |
| 34 | cache_path = None |
| 35 | id_map: dict[str, Any] = {} |
| 36 | """Mapping `{node_id: Any}`""" |
| 37 | guid_map = {} |
| 38 | deleted_ids = set() |
| 39 | edited_objs = set() |
| 40 | pset_template_path = "" |
| 41 | pset_template_file = None |
| 42 | library_path = "" |
| 43 | library_file = None |
| 44 | element_listeners = set() |
| 45 | undo_redo_stack_objects = set() |
| 46 | undo_redo_stack_object_names = {} |
| 47 | current_transaction = "" |
| 48 | last_transaction = "" |
| 49 | history = [] |
| 50 | future = [] |
| 51 | schema_identifiers = ["IFC4", "IFC2X3"] |
| 52 | |
| 53 | use_bonsai_file = False |
| 54 | |
| 55 | @staticmethod |
| 56 | def purge() -> None: |
| 57 | SvIfcStore.path = "" |
| 58 | SvIfcStore.file = None |
| 59 | SvIfcStore.schema = None |
| 60 | SvIfcStore.cache = None |
| 61 | SvIfcStore.cache_path = None |
| 62 | SvIfcStore.id_map = {} |
| 63 | SvIfcStore.guid_map = {} |
| 64 | SvIfcStore.deleted_ids = set() |
| 65 | SvIfcStore.edited_objs = set() |
| 66 | SvIfcStore.pset_template_path = "" |
| 67 | SvIfcStore.pset_template_file = None |
| 68 | SvIfcStore.library_path = "" |
| 69 | SvIfcStore.library_file = None |
| 70 | SvIfcStore.last_transaction = "" |
| 71 | SvIfcStore.history = [] |
| 72 | SvIfcStore.future = [] |
| 73 | SvIfcStore.schema_identifiers = ["IFC4", "IFC2X3"] |
| 74 | |
| 75 | @staticmethod |
| 76 | def create_boilerplate() -> ifcopenshell.file: |
| 77 | file = template.create( |
| 78 | filename="IfcSverchokDemoFile", |
| 79 | organization=None, |
| 80 | creator=None, |
| 81 | project_name="IfcSverchokDemoProject", |
| 82 | ) |
| 83 | if bpy.context.scene.unit_settings.system == "IMPERIAL": |
| 84 | # TODO change units to imperial |
| 85 | pass |
| 86 | model = ifcopenshell.util.representation.get_context(file, context="Model") |