diff --git a/README.md b/README.md index 10e3374..fc32bd4 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,8 @@ A [Speckle Automate](https://automate.speckle.dev/) function that converts Speck The exporter receives a Speckle model version, walks its nested collection tree, and produces a standards-compliant IFC 4.3 file. Each Speckle object becomes an IFC element with: - Correct IFC entity classification read from `properties.Attributes.type` -- Tessellated geometry (IfcPolygonalFaceSet) from Mesh, Brep, or BrepX objects +- Tessellated 3D geometry (IfcPolygonalFaceSet) from Mesh, Brep, or BrepX objects +- 2D curve geometry (IfcIndexedPolyCurve) from Polycurve, Line, Arc, Polyline objects - Material colours from `renderMaterialProxies` applied as IfcSurfaceStyle - All property sets cloned from `properties.Property Sets` - All quantity sets cloned from `properties.Quantities` (supports both `{name, units, value}` dicts and plain numeric values) @@ -69,7 +70,7 @@ Speckle Model │ For each leaf element: │ ├── Skip spatial structure types and definition geometry sources │ ├── Classify → IFC entity class (from properties.Attributes.type) - │ ├── Convert geometry → IfcPolygonalFaceSet (with material colours) + │ ├── Convert geometry → IfcPolygonalFaceSet or IfcIndexedPolyCurve (with material colours) │ ├── Create IFC element + placement │ ├── Clone all properties & quantities │ ├── Assign to Building Storey (from properties.Building Storey) @@ -91,6 +92,7 @@ Speckle Model | `utils/traversal.py` | Walks the Speckle collection tree (Root > Collection* > DataObject) | | `utils/mapper.py` | Reads IFC entity class from `properties.Attributes.type` | | `utils/geometry.py` | Converts Speckle Mesh/Brep/BrepX geometry to IfcPolygonalFaceSet | +| `utils/curves.py` | Converts Speckle 2D curve geometry (Polycurve, Line, Arc) to IfcIndexedPolyCurve | | `utils/instances.py` | Handles InstanceProxy objects with shared geometry (IfcMappedItem) | | `utils/properties.py` | Clones all properties, quantities, and attributes into IFC entities | | `utils/type_manager.py` | Creates and caches IfcTypeObjects, supports both explicit and derived type classes | @@ -122,12 +124,20 @@ Property values are auto-typed: `bool` → IfcBoolean, `int` → IfcInteger, `fl ### Supported Geometry Types -The exporter handles three geometry types found in `displayValue`: +The exporter handles geometry found in `displayValue` or directly on the object: +**3D Geometry (Mesh)** - **Mesh** — converted directly (vertices + faces) - **Brep / BrepX** — recursively resolved to their inner tessellated mesh representation via nested `displayValue` -### Conversion Steps +**2D Geometry (Curves)** +- **Polycurve** — segments (Line, Arc, Polyline) converted to `IfcIndexedPolyCurve` with `IfcLineIndex` / `IfcArcIndex` +- **Line** — start/end points → `IfcLineIndex` +- **Arc** — start/mid/end points → `IfcArcIndex` + +Curves are typically found wrapped inside `DataObject.displayValue`, following the same pattern as meshes. The exporter checks for curves as a fallback when no mesh or instance geometry is found. + +### 3D Mesh Conversion 1. Extract vertices and faces from each mesh in `displayValue` 2. Scale vertices to millimetres based on the mesh's unit declaration @@ -135,9 +145,17 @@ The exporter handles three geometry types found in `displayValue`: 4. Build `IfcPolygonalFaceSet` with `IfcCartesianPointList3D` + `IfcIndexedPolygonalFace` 5. Compute bounding box origin for `IfcLocalPlacement`, offset vertices relative to it +### 2D Curve Conversion + +1. Extract curve segments from the object or its `displayValue` +2. Parse each segment type (Line → start/end, Arc → start/mid/end, Polyline → point sequence) +3. Deduplicate points via snap grid (0.01mm tolerance) +4. Build `IfcIndexedPolyCurve` with `IfcCartesianPointList3D` + `IfcLineIndex` / `IfcArcIndex` segments +5. Compute bounding box origin for placement, offset points relative to it + ### Instance Objects (Path A / B2) -Speckle `InstanceProxy` objects reference shared definition geometry via `definitionId`. Geometry is built once as an `IfcRepresentationMap`, then each instance references it via `IfcMappedItem` + `IfcCartesianTransformationOperator3DnonUniform`. This avoids duplicating vertex data across hundreds of identical elements. +Speckle `InstanceProxy` objects reference shared definition geometry via `definitionId`. Geometry is built once as an `IfcRepresentationMap`, then each instance references it via `IfcMappedItem` + `IfcCartesianTransformationOperator3DnonUniform`. This avoids duplicating vertex/curve data across hundreds of identical elements. Both mesh and curve definitions are supported. ## Material Handling diff --git a/main.py b/main.py index e14509e..ed02ba5 100644 --- a/main.py +++ b/main.py @@ -12,6 +12,7 @@ from utils.instances import ( from utils.properties import ( get_building_storey, get_element_name, write_all_properties, ) +from utils.curves import curve_to_ifc from utils.writer import create_ifc_scaffold, StoreyManager from utils.type_manager import TypeManager from utils.materials import MaterialManager @@ -23,7 +24,7 @@ SPATIAL_STRUCTURE_TYPES = { "IfcGrid", "IfcAnnotation", } -from pydantic import Field, SecretStr +from pydantic import Field from speckle_automate import ( AutomateBase, AutomationContext, @@ -147,6 +148,7 @@ def automate_function( # Path B: Normal object — may have: # B1. Direct mesh geometry in displayValue # B2. Instance objects in displayValue + # B3. Curve geometry (Polycurve, Line, Arc) # ------------------------------------------------------------------ # # B1: Mesh geometry @@ -180,7 +182,20 @@ def automate_function( instance_count += 1 total += 1 - # Track if neither path produced geometry + # B3: Curve geometry (Polycurve, Line, Arc) — fallback if no mesh/instances + if not rep and not nested_instances: + rep, placement = curve_to_ifc( + ifc, body_context, obj, scale=1.0, + material_manager=material_manager, + ) + if rep: + element = _create_element(ifc, ifc_class, name, rep, placement, + storey, storey_manager=storey_manager) + write_all_properties(ifc, element, obj) + type_manager.assign(element, obj, ifc_class) + total += 1 + + # Track if no path produced geometry if not rep and not nested_instances: no_geometry += 1 @@ -202,6 +217,12 @@ def automate_function( ifc.write(ifc_filename) print(f"\nIFC file written: {ifc_filename}") + try: + automate_context.mark_run_success("Success! You can download the IF file below.") + automate_context.store_file_result(f"./{ifc_filename}") + except Exception as e: + print(f" ⚠️ Could not upload file result (network issue?): {e}") + automate_context.mark_run_failed(f"Something went wrong when storing file result. Exception detail: {e}") print(f"\n{'=' * 60}") print(f" Export complete!") diff --git a/utils/Sample_Object_with_Curves.json b/utils/Sample_Object_with_Curves.json new file mode 100644 index 0000000..3bb36d4 --- /dev/null +++ b/utils/Sample_Object_with_Curves.json @@ -0,0 +1,1080 @@ +User Data: [ + {'id': '2375d3235f854e58a3f49db11b8deed6', 'name': 'Grasshopper Model', 'version': 3, 'elements': [ + {'__closure': None, 'referencedId': '7dbbaee42c8b56ba1cc59d3ddbe6b2bc', 'speckle_type': 'reference' + } + ], '__closure': {'022beb2eb32c03785306a295d9693832': 3, '15f67281749e088b04eb397a4ec0f0d1': 3, '62e14d402ba9ef51f733dcc6e9b94caa': 3, '7dbbaee42c8b56ba1cc59d3ddbe6b2bc': 1, '80af7f592ba9985b9bb3f039fefcbe14': 3, 'a05590d5dca03f2f2df9ed8e3ceb683a': 3, 'ae126f9268c09a0d85af936dd343fd41': 3, 'c702adf48e8bce4d7419ba71383e18c6': 3, 'ce7877f2c59226a53c7de80dfb5e8100': 3, 'd07c34a89b1fa526bddeff301f862577': 2, 'e26fce01bdca87d7415fa09995db7ad6': 2, 'e6b76251331deef0debb0b7f01cba26b': 2, 'f90d993d339a2065884793d75aeefd32': 3 + }, 'properties': {}, 'colorProxies': [], 'speckle_type': 'Speckle.Core.Models.Collections.Collection:Speckle.Core.Models.Collections.RootCollection', 'applicationId': '315b8e08-bd7a-4468-b8f4-ddcb58eb2f24', 'collectionType': None, 'renderMaterialProxies': [], 'instanceDefinitionProxies': [], 'totalChildrenCount': None + }, + {'id': '022beb2eb32c03785306a295d9693832', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': '38c710391994cbc6816b9735dfe12f88', 'end': {'x': 314, 'y': 1600, 'z': 0, 'id': '093d1b3add37e9a18bb6c127397b90f6', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 86, 'y': 1600, 'z': 0, 'id': '797ff9fd1d2a1510ada6491d8699f85e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '7299423c8a971cf12bbc0302046b4733', 'bbox': {'id': '039007512ab7000bec3d222be349fd86', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'e34e357ca826b5fb701eba994b214ee4', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 314.0000000000001, 'y': 1686, 'z': 0, 'id': '2fdbb1bc0cc67d2ce1e81ed731409d28', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436102, 'radius': 86, 'measure': 1.5707963267948957, 'endPoint': {'x': 400, 'y': 1686, 'z': 0, 'id': '26c3d03fca54a603d0d33d7b94e78059', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 374.8111831820431, 'y': 1625.188816817957, 'z': 0, 'id': 'a3883a0ecd08ef9b1eba22ec60a717f0', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 314, 'y': 1600, 'z': 0, 'id': '093d1b3add37e9a18bb6c127397b90f6', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'd6db0adc699a9786ce7594017413597a', 'end': {'x': 400, 'y': 1914, 'z': 0, 'id': 'e40141f15c6a6bc52648af95816d1c0d', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 400, 'y': 1686, 'z': 0, 'id': '26c3d03fca54a603d0d33d7b94e78059', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'fdf7cde350719328cc9bd38655bd6d71', 'bbox': {'id': 'a202461fa06a8dea54e590eefddc72c9', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '90422d4f2b12cbcb992fbf4432aa7276', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 314.0000000000001, 'y': 1914, 'z': 0, 'id': '022efa2020f6b94763dcf61de88ba8a3', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436113, 'radius': 85.99999999999989, 'measure': 1.5707963267948988, 'endPoint': {'x': 314, 'y': 2000, 'z': 0, 'id': '20ac8a3f406ea5176a2d33b876ce505b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 374.81118318204307, 'y': 1974.8111831820431, 'z': 0, 'id': '8dc0325a4581c83d5bbc4f1eee9960a7', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 400, 'y': 1914, 'z': 0, 'id': 'e40141f15c6a6bc52648af95816d1c0d', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'c8e9cb8ecf92c726d43dc84add0a7cb5', 'end': {'x': 86, 'y': 2000, 'z': 0, 'id': '799fe23ac23f61a0fe1348c21a584cc8', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 314, 'y': 2000, 'z': 0, 'id': '20ac8a3f406ea5176a2d33b876ce505b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '6fe2ca46127359bc3cdae6c897a0f8aa', 'bbox': {'id': 'd9ff6988895889a9e94cf8fb9e5aa592', 'area': 14791.999999999995, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '60fb5c265c45c1e742293a1408eebd5e', 'end': 86, 'start': 2.842170943040401e-14, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '255653936f0e67a10b74307f7885c624', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 86.00000000000003, 'y': 1914, 'z': 0, 'id': '9e5308b354d1b535556399e90cacc1e6', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.0884841043611, 'radius': 86, 'measure': 1.5707963267948966, 'endPoint': {'x': 2.842170943040401e-14, 'y': 1914, 'z': 0, 'id': 'f1a573bc404b8fa4e86c059bd003cc49', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 25.188816817956933, 'y': 1974.8111831820431, 'z': 0, 'id': 'b4d8d2730b948c27cb7734007eae5851', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 86, 'y': 2000, 'z': 0, 'id': '799fe23ac23f61a0fe1348c21a584cc8', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '8a5ad881af9f1901fdcd8a19e18f7928', 'end': {'x': 0, 'y': 1686, 'z': 0, 'id': '819e606b134a3a8d32229157656ba376', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 2.842170943040401e-14, 'y': 1914, 'z': 0, 'id': 'f1a573bc404b8fa4e86c059bd003cc49', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '46c950396ce9d3b39697023202028e5d', 'bbox': {'id': 'fd2a0525c3ae1d34be53a779912669c9', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '74fd79ec84bded8c0ecc9b8b48169115', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 85.99999999999997, 'y': 1686, 'z': 0, 'id': '8d0ad7c67beb2c00e9a982e495a6c8d3', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436113, 'radius': 85.99999999999997, 'measure': 1.5707963267948974, 'endPoint': {'x': 86, 'y': 1600, 'z': 0, 'id': '797ff9fd1d2a1510ada6491d8699f85e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 25.188816817956898, 'y': 1625.1888168179569, 'z': 0, 'id': '5c7c29c4b52e5e00308ac5e1532b4b5d', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 0, 'y': 1686, 'z': 0, 'id': '819e606b134a3a8d32229157656ba376', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level0', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': 'cbe9f8f1-38c9-4344-a0a8-196fb6ccc1e0' + }, + {'id': '15f67281749e088b04eb397a4ec0f0d1', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': 'fc81bfa9d517e8a32d5ff75c166929fc', 'end': {'x': 1114, 'y': 0, 'z': 3000, 'id': '8062e6426fde4b991ed51c70f35b049a', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 886, 'y': 0, 'z': 3000, 'id': '63641b742232f82061bf6ec9f5271612', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '6165e109504d59fd104675f56112f34f', 'bbox': {'id': '7ca8bd75d9624f48e3c625763580512a', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'f3841e4b74d85b00f1747804b8a16bd1', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1114, 'y': 85.99999999999989, 'z': 3000, 'id': 'd9583a42b356c999713ec847ba0c2529', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 85.99999999999989, 'measure': 1.5707963267948992, 'endPoint': {'x': 1200, 'y': 86, 'z': 3000, 'id': '9460b8232376e988c8e53249b2b12a67', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1174.8111831820431, 'y': 25.18881681795688, 'z': 3000, 'id': '814f1f5a0945920b2033850cacf42ec0', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1114, 'y': 0, 'z': 3000, 'id': '8062e6426fde4b991ed51c70f35b049a', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'ad0babd89751df1b6721ece33f548c49', 'end': {'x': 1200, 'y': 314, 'z': 3000, 'id': 'b6f8021dc7c649fa16ea9f025b5084f1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1200, 'y': 86, 'z': 3000, 'id': '9460b8232376e988c8e53249b2b12a67', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '70c98a947f7a7a99aa794dca554618b8', 'bbox': {'id': 'f184f3f49e9e003a39017bb05db6102f', 'area': 14791.99999999998, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0937eb18914c0839931b4ee8344cc743', 'end': 399.9999999999999, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '3277abd0fbe412d0c07bbf0cb0ff8d9a', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1114, 'y': 314, 'z': 3000, 'id': '4c8771a0fe47a737ab696c290468cbb7', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436093, 'radius': 86, 'measure': 1.5707963267948946, 'endPoint': {'x': 1114, 'y': 399.9999999999999, 'z': 3000, 'id': '049e54da37205f3b0d3c9e169c8151ea', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1174.811183182043, 'y': 374.81118318204307, 'z': 3000, 'id': 'c644bde1b46d8dc3bc6469464b645509', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1200, 'y': 314, 'z': 3000, 'id': 'b6f8021dc7c649fa16ea9f025b5084f1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '5cab0e973afd1e5337ad6658acd6d3a8', 'end': {'x': 886, 'y': 400, 'z': 3000, 'id': 'c298bb72f811598c339225a9d4f390a1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1114, 'y': 399.9999999999999, 'z': 3000, 'id': '049e54da37205f3b0d3c9e169c8151ea', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '6c3a6ee8d68d117d7cea2f37ab66e65f', 'bbox': {'id': 'f4c55c0cf84e86f54d178b660eb71b76', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'b110b6f00b4eb0b2dfc147d8871b6064', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 886, 'y': 314, 'z': 3000, 'id': '569f541ccac0d43e54e5214cf3a954c7', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.0884841043611, 'radius': 86, 'measure': 1.5707963267948966, 'endPoint': {'x': 800, 'y': 314, 'z': 3000, 'id': 'febe278a54aa131cee23fa0d979c075d', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 825.1888168179569, 'y': 374.81118318204307, 'z': 3000, 'id': 'dca615d6527844d2581a0bbdb51a14a7', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 886, 'y': 400, 'z': 3000, 'id': 'c298bb72f811598c339225a9d4f390a1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '842005a1e540abcc1ea537b97ba897a2', 'end': {'x': 800, 'y': 86, 'z': 3000, 'id': 'ec3ece5648daa1fdf4d1f42625af3c7b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 800, 'y': 314, 'z': 3000, 'id': 'febe278a54aa131cee23fa0d979c075d', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'a884300b8d0cdbcc550c74f6b0f6acdf', 'bbox': {'id': '0ce51c5d68ec4f7a3aaf6795df0030b8', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'bd3adbd2ba8ce04a0eba39a228e6b470', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 886, 'y': 85.99999999999997, 'z': 3000, 'id': '4f6455f5701cb1eff95c69c2470af154', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436107, 'radius': 86, 'measure': 1.5707963267948961, 'endPoint': {'x': 886, 'y': 0, 'z': 3000, 'id': '63641b742232f82061bf6ec9f5271612', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 825.188816817957, 'y': 25.188816817956905, 'z': 3000, 'id': '5ad9c61ba858cb1c98faefa743140502', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 800, 'y': 86, 'z': 3000, 'id': 'ec3ece5648daa1fdf4d1f42625af3c7b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level1', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': '7a6264d0-b705-41fb-a128-849bd5d9c794' + }, + {'id': '62e14d402ba9ef51f733dcc6e9b94caa', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': '2a53ab8190fdfd471a4fc40de8b7cfd1', 'end': {'x': 314, 'y': 0, 'z': 0, 'id': '5e36a92a5b1bd770e3b3498afee7a020', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 86, 'y': 0, 'z': 0, 'id': '13f192aab1715fe46ce1e9894f559c47', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'c53395b2b10123431324d2ba4dda7b50', 'bbox': {'id': '646491fbda16d7c6e87bebace9bca820', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'c1d272cc9d1efbb010363524cbeb59c2', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 314.0000000000001, 'y': 85.99999999999989, 'z': 0, 'id': '2a24b4c76322b3aacea562c7077736ed', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 85.99999999999989, 'measure': 1.5707963267948992, 'endPoint': {'x': 400, 'y': 86, 'z': 0, 'id': 'f1f5727576aa37fb893e127e51c696bf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 374.8111831820431, 'y': 25.18881681795688, 'z': 0, 'id': 'f66a1cc7820a970053afdb0cfe150c2b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 314, 'y': 0, 'z': 0, 'id': '5e36a92a5b1bd770e3b3498afee7a020', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '5d79cd7f50d6da7f4f03a9d73ec3d9f0', 'end': {'x': 400, 'y': 314, 'z': 0, 'id': '972e682e64e39316165bccdd7064af49', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 400, 'y': 86, 'z': 0, 'id': 'f1f5727576aa37fb893e127e51c696bf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'ddddb9cd7b47422856043378ffa25f55', 'bbox': {'id': '70b70d5c45803b52c7e32bff23541843', 'area': 14791.99999999998, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0937eb18914c0839931b4ee8344cc743', 'end': 399.9999999999999, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '33b44853350b90ba826ed4bff07f74ac', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 314.0000000000001, 'y': 314, 'z': 0, 'id': '1edc94b63286f3263f6cd319cdea6874', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436104, 'radius': 85.99999999999989, 'measure': 1.570796326794898, 'endPoint': {'x': 314, 'y': 399.9999999999999, 'z': 0, 'id': 'aa73c80f7099f766508c429ca7f7c049', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 374.81118318204307, 'y': 374.81118318204307, 'z': 0, 'id': '916d7ecb5cc11c292653678f366a0dce', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 400, 'y': 314, 'z': 0, 'id': '972e682e64e39316165bccdd7064af49', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '4c6a78b95e5fcb80c22add2ab203d174', 'end': {'x': 86, 'y': 400, 'z': 0, 'id': 'c38190449d3f935a16c05385f5dd9ff0', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 314, 'y': 399.9999999999999, 'z': 0, 'id': 'aa73c80f7099f766508c429ca7f7c049', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '528a313951093db36dd2b3cfcf10ac03', 'bbox': {'id': '4f07082d6f71610f6b9430af98539864', 'area': 14791.999999999995, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '60fb5c265c45c1e742293a1408eebd5e', 'end': 86, 'start': 2.842170943040401e-14, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'e6309b915773b4760040b0780d39ae6a', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 86.00000000000003, 'y': 314, 'z': 0, 'id': '46c1110cbfb32dcd6d7b4ad36a6ea5e6', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436107, 'radius': 86, 'measure': 1.5707963267948961, 'endPoint': {'x': 2.842170943040401e-14, 'y': 314, 'z': 0, 'id': '6b544465d25084da5ec0c9d1b6fb59f8', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 25.188816817956933, 'y': 374.81118318204307, 'z': 0, 'id': '6145f8f80ede99159cd28c09c8407812', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 86, 'y': 400, 'z': 0, 'id': 'c38190449d3f935a16c05385f5dd9ff0', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '074ecdc4702d62925874ad44572b94dd', 'end': {'x': 0, 'y': 86, 'z': 0, 'id': '8ce2dde674d79cf97e354a21760c06a3', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 2.842170943040401e-14, 'y': 314, 'z': 0, 'id': '6b544465d25084da5ec0c9d1b6fb59f8', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'd9416cf401551630fde7e1a438c5704b', 'bbox': {'id': '338bb17957daa275067666c2e8e5612c', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'c5c55636af89e2ef88a1ce8bac726ff1', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 85.99999999999997, 'y': 85.99999999999997, 'z': 0, 'id': 'd3ec5dd9ffac610686d8287f8b1b4299', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436113, 'radius': 85.99999999999997, 'measure': 1.5707963267948974, 'endPoint': {'x': 86, 'y': 0, 'z': 0, 'id': '13f192aab1715fe46ce1e9894f559c47', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 25.188816817956898, 'y': 25.188816817956905, 'z': 0, 'id': 'd5c3c7f3a7c664bfe4d112859002b56b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 0, 'y': 86, 'z': 0, 'id': '8ce2dde674d79cf97e354a21760c06a3', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level0', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': 'e6e8031e-47d3-45f1-a10f-a4f0bf639ea4' + }, + {'id': '7dbbaee42c8b56ba1cc59d3ddbe6b2bc', 'name': 'Sub-Collection 1', 'elements': [ + {'__closure': None, 'referencedId': 'e26fce01bdca87d7415fa09995db7ad6', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'd07c34a89b1fa526bddeff301f862577', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'e6b76251331deef0debb0b7f01cba26b', 'speckle_type': 'reference' + } + ], 'topology': '0-1 1-1 2-1 ', '__closure': {'022beb2eb32c03785306a295d9693832': 2, '15f67281749e088b04eb397a4ec0f0d1': 2, '62e14d402ba9ef51f733dcc6e9b94caa': 2, '80af7f592ba9985b9bb3f039fefcbe14': 2, 'a05590d5dca03f2f2df9ed8e3ceb683a': 2, 'ae126f9268c09a0d85af936dd343fd41': 2, 'c702adf48e8bce4d7419ba71383e18c6': 2, 'ce7877f2c59226a53c7de80dfb5e8100': 2, 'd07c34a89b1fa526bddeff301f862577': 1, 'e26fce01bdca87d7415fa09995db7ad6': 1, 'e6b76251331deef0debb0b7f01cba26b': 1, 'f90d993d339a2065884793d75aeefd32': 2 + }, 'speckle_type': 'Speckle.Core.Models.Collections.Collection', 'applicationId': '0d054742-8287-4956-a0ba-bcebdadaa7ee', 'collectionType': None + }, + {'id': '80af7f592ba9985b9bb3f039fefcbe14', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': 'd8ebbf81e17bc6fe6542bcc9533d3cc8', 'end': {'x': 1914, 'y': 1600, 'z': 6000, 'id': '22b07f693337c96857f4b5c75aafa1d7', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1686, 'y': 1600, 'z': 6000, 'id': 'e431910b1501005b697e97a2e54ee808', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '61fbf571f29a0a8c886b5862d2864196', 'bbox': {'id': '8cd4314c21a96c9ab56b171dd78ad45b', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '8e5ea1c5d0da5e6d50cff921ebb799cb', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1914, 'y': 1686, 'z': 6000, 'id': 'ff5c3b74e51ebe279017c959598d87be', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436102, 'radius': 86, 'measure': 1.5707963267948957, 'endPoint': {'x': 2000, 'y': 1686, 'z': 6000, 'id': '2bd6d4a2fb4e9541e79a22eddf667809', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1974.8111831820431, 'y': 1625.188816817957, 'z': 6000, 'id': '23280d6bc54634569b80c40c2f47cbdd', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1914, 'y': 1600, 'z': 6000, 'id': '22b07f693337c96857f4b5c75aafa1d7', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'd2267c1e76d457f8b11f2408fb187f55', 'end': {'x': 2000, 'y': 1914, 'z': 6000, 'id': '564ce4751e68ce4c99532acd7cc22083', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 2000, 'y': 1686, 'z': 6000, 'id': '2bd6d4a2fb4e9541e79a22eddf667809', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '2ade14b5d4fcac6b17418c1ccf57a620', 'bbox': {'id': 'f260b2924c73c33932b9436d484c4a6e', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'b50a872434506cb2ae0133ca6ce3c119', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1914, 'y': 1914, 'z': 6000, 'id': 'c5b979472c74f7fdd2e58a040f318ed0', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436102, 'radius': 86, 'measure': 1.5707963267948957, 'endPoint': {'x': 1914, 'y': 2000, 'z': 6000, 'id': '3f7c4f8359bbc84dc81318a3f1812c3d', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1974.811183182043, 'y': 1974.8111831820431, 'z': 6000, 'id': 'fc10d0514b258486ffa81ed711d7e381', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 2000, 'y': 1914, 'z': 6000, 'id': '564ce4751e68ce4c99532acd7cc22083', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '8a3ae76914bf0e93a8ae61b4f0277848', 'end': {'x': 1686, 'y': 2000, 'z': 6000, 'id': 'a757dd954a17e5046d8f8242dca13b3e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1914, 'y': 2000, 'z': 6000, 'id': '3f7c4f8359bbc84dc81318a3f1812c3d', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '343d0fdb2cc5db6e7de6cf6e5d9cfdd7', 'bbox': {'id': 'd03ddb9fd9571df2c9eb906a910e217e', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '4ce5e9a20c4f95f75758496301a049a2', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1686, 'y': 1914, 'z': 6000, 'id': '4a994d7ff2c4b000bc67e5bfcd5196e6', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 86, 'measure': 1.5707963267948972, 'endPoint': {'x': 1600, 'y': 1914, 'z': 6000, 'id': '3f07bfcaae2fa1f6c8447bf7e873edde', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1625.1888168179569, 'y': 1974.8111831820431, 'z': 6000, 'id': 'c7a84946c169737c6e64f866f85e733e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1686, 'y': 2000, 'z': 6000, 'id': 'a757dd954a17e5046d8f8242dca13b3e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'd36bd9c6bdaae76f201cf36c8464d7df', 'end': {'x': 1600, 'y': 1686, 'z': 6000, 'id': 'd68c96b78b57910301bf1df9a990b423', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1600, 'y': 1914, 'z': 6000, 'id': '3f07bfcaae2fa1f6c8447bf7e873edde', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '808e0b8faa52a78fda07146911240b44', 'bbox': {'id': '30460f136abcbbeb11bbe28d13ade147', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'cc32dc9b0cfb54f063a99ba830dbb9a4', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1686, 'y': 1686, 'z': 6000, 'id': '533fab5da32f144e78f22101ec5d13e4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 86, 'measure': 1.5707963267948972, 'endPoint': {'x': 1686, 'y': 1600, 'z': 6000, 'id': 'e431910b1501005b697e97a2e54ee808', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1625.1888168179569, 'y': 1625.1888168179569, 'z': 6000, 'id': 'b77ccea7a6c03bc5702bcc4f518925af', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1600, 'y': 1686, 'z': 6000, 'id': 'd68c96b78b57910301bf1df9a990b423', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level2', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': '3615cf50-5eb9-48f9-9f50-d1d7d9364920' + }, + {'id': 'a05590d5dca03f2f2df9ed8e3ceb683a', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': 'b05da4190ab0884f5defef5051a45b52', 'end': {'x': 314, 'y': 800, 'z': 0, 'id': 'e82352661de30f5112ffeb8126cf687e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 86, 'y': 800, 'z': 0, 'id': '2afc6b0c46e3bb72c30385989170508e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '88197c3c00833fa79a0b1e990a572982', 'bbox': {'id': 'ea04014007dc96d79e877a5efd78335f', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '3212ffb159ac0a619e714380f885c22b', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 314.0000000000001, 'y': 885.9999999999999, 'z': 0, 'id': '04b98194a5b356d9c0fbcecd7ef6fedb', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 85.99999999999989, 'measure': 1.5707963267948992, 'endPoint': {'x': 400, 'y': 886, 'z': 0, 'id': 'c1c9d2c25538c818e2409580a3c8c449', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 374.8111831820431, 'y': 825.1888168179569, 'z': 0, 'id': '6b4f7092c08b07d24b07ab1b9e5d4a9f', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 314, 'y': 800, 'z': 0, 'id': 'e82352661de30f5112ffeb8126cf687e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'df38c5504e5428eaca189b06340e4729', 'end': {'x': 400, 'y': 1114, 'z': 0, 'id': 'b41b30c3d1c9b5afe7197a3813c1aa5e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 400, 'y': 886, 'z': 0, 'id': 'c1c9d2c25538c818e2409580a3c8c449', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '4c056304668d21f571a45d8a654f454f', 'bbox': {'id': '49c97490c69297fa44c74c8a8dc91091', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '71a6dcaafe544f9cc7a1af0b95b4378c', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 314.0000000000001, 'y': 1114, 'z': 0, 'id': '871fa316c48179e66b1c83bf440f330f', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436113, 'radius': 85.99999999999989, 'measure': 1.5707963267948988, 'endPoint': {'x': 314, 'y': 1200, 'z': 0, 'id': '64aa33a9d683db27b5a6b0a4cd59e132', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 374.81118318204307, 'y': 1174.8111831820431, 'z': 0, 'id': 'b636541ec57a6dbe666914cd78ab7ab9', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 400, 'y': 1114, 'z': 0, 'id': 'b41b30c3d1c9b5afe7197a3813c1aa5e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '48fa3b8b602e2b959ff692c378570a23', 'end': {'x': 86, 'y': 1200, 'z': 0, 'id': '79f7a56f89892469d1183d210b6c2d0a', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 314, 'y': 1200, 'z': 0, 'id': '64aa33a9d683db27b5a6b0a4cd59e132', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '4e55a02a227656d0043a100ca3df9b11', 'bbox': {'id': '8164d6778b7f517e99f0bd7ddbc0fa84', 'area': 14791.999999999995, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '60fb5c265c45c1e742293a1408eebd5e', 'end': 86, 'start': 2.842170943040401e-14, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'e96ad41534c33a5721f51bba611dd00b', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 86.00000000000003, 'y': 1114, 'z': 0, 'id': 'd95df4552f6b886a45505b963ef11c3c', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.0884841043611, 'radius': 86, 'measure': 1.5707963267948966, 'endPoint': {'x': 2.842170943040401e-14, 'y': 1114, 'z': 0, 'id': 'eb013f6b692bbbedae89afba2ad1b6b5', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 25.188816817956933, 'y': 1174.8111831820431, 'z': 0, 'id': '5d445c64d5c4ec2bc5228b150b1999c4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 86, 'y': 1200, 'z': 0, 'id': '79f7a56f89892469d1183d210b6c2d0a', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '09ea1a04dbf2f7bd137f6b5d8afc2280', 'end': {'x': 0, 'y': 886, 'z': 0, 'id': 'c27b928130ebd0a3b96f0f79deb6d7d2', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 2.842170943040401e-14, 'y': 1114, 'z': 0, 'id': 'eb013f6b692bbbedae89afba2ad1b6b5', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'f4ca401fbfabe83fdf0f1df4325d84d9', 'bbox': {'id': '2794f5d40530e02a7ba810a34ef1adf9', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'c22502817d486a5b06fda8b234aaebc9', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 85.99999999999997, 'y': 886, 'z': 0, 'id': '41a1f3502926cc237456e40a9345be09', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436113, 'radius': 85.99999999999997, 'measure': 1.5707963267948974, 'endPoint': {'x': 86, 'y': 800, 'z': 0, 'id': '2afc6b0c46e3bb72c30385989170508e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 25.188816817956898, 'y': 825.1888168179569, 'z': 0, 'id': '868c2faf5eeffa47e8644192efd2a996', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 0, 'y': 886, 'z': 0, 'id': 'c27b928130ebd0a3b96f0f79deb6d7d2', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level0', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': '6772c675-d8b0-4d63-9b20-3917306795fa' + }, + {'id': 'ae126f9268c09a0d85af936dd343fd41', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': 'dc3759a638f8ef36f271df52ceb28b4c', 'end': {'x': 1114, 'y': 1600, 'z': 3000, 'id': 'f80eb5625476b1eb3fd0c2d17eb210e1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 886, 'y': 1600, 'z': 3000, 'id': '6fc8a735bb63281112527cb2bcd54079', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '1827bde47b1ffbeb3a742ee6b3cce2ba', 'bbox': {'id': 'ec3d99bd6949c78823d6b43b85798ef4', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '3979c22ef23dd01d36400753b531f7e5', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1114, 'y': 1686, 'z': 3000, 'id': '4b05674a8b31e192928b7b1e0c590552', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436102, 'radius': 86, 'measure': 1.5707963267948957, 'endPoint': {'x': 1200, 'y': 1686, 'z': 3000, 'id': '8ba92d1f743371ec7d1b28c77c543480', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1174.8111831820431, 'y': 1625.188816817957, 'z': 3000, 'id': '2d3152c48cfc96e1015980d1433deba6', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1114, 'y': 1600, 'z': 3000, 'id': 'f80eb5625476b1eb3fd0c2d17eb210e1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '9799858e356c29ba3491577ed88f52fd', 'end': {'x': 1200, 'y': 1914, 'z': 3000, 'id': 'd455e04494bda46f0f0326e954c8ce27', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1200, 'y': 1686, 'z': 3000, 'id': '8ba92d1f743371ec7d1b28c77c543480', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'e69eb1cf1f69c283623abd0d8aa363e2', 'bbox': {'id': '7ced06547ff5e67db205a609979ddcf2', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '84b5c5b671c3e9f5ae928d6da16c50eb', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1114, 'y': 1914, 'z': 3000, 'id': '00ba518424fa12fa2dfc689dab130ceb', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436102, 'radius': 86, 'measure': 1.5707963267948957, 'endPoint': {'x': 1114, 'y': 2000, 'z': 3000, 'id': '4fbb5a932b46418e2cc9d15f2e3aa44f', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1174.811183182043, 'y': 1974.8111831820431, 'z': 3000, 'id': '1b4c229b0afab7bd1d127d1fe19c0282', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1200, 'y': 1914, 'z': 3000, 'id': 'd455e04494bda46f0f0326e954c8ce27', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '8c7fa93d7c49d55ab1a39e41ccf41ced', 'end': {'x': 886, 'y': 2000, 'z': 3000, 'id': '90d1f1ab6cb96e18df28ec2e6ebcafbe', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1114, 'y': 2000, 'z': 3000, 'id': '4fbb5a932b46418e2cc9d15f2e3aa44f', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '622886419a4a5b0297330f3949ddaa1a', 'bbox': {'id': '8482d001b5e8c838a652870fc79bd287', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'e5758ccae95a33ace6a57282e8b69ab7', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 886, 'y': 1914, 'z': 3000, 'id': '147bca97520ce3f9efdac063f5552774', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 86, 'measure': 1.5707963267948972, 'endPoint': {'x': 800, 'y': 1914, 'z': 3000, 'id': 'c43258b90af1bd2aeb43b92b8263dde4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 825.1888168179569, 'y': 1974.8111831820431, 'z': 3000, 'id': '98050e667dafeef36e18e0f4c3aeff79', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 886, 'y': 2000, 'z': 3000, 'id': '90d1f1ab6cb96e18df28ec2e6ebcafbe', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'b9e4de4fdf867d9ae65d83e1101cc0f9', 'end': {'x': 800, 'y': 1686, 'z': 3000, 'id': '85e7140c7cf4a534daed536dbcce40f1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 800, 'y': 1914, 'z': 3000, 'id': 'c43258b90af1bd2aeb43b92b8263dde4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '9d19ab3a0aec40be7dc6f8b3f9ff47d9', 'bbox': {'id': '31bd5ae48423db6057421764b139081b', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'dc6151dd0f925e7442be66769740d544', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 886, 'y': 1686, 'z': 3000, 'id': 'c55d1d6a3f934ac62cad2c3f931ce457', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436107, 'radius': 86, 'measure': 1.5707963267948963, 'endPoint': {'x': 886, 'y': 1600, 'z': 3000, 'id': '6fc8a735bb63281112527cb2bcd54079', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 825.188816817957, 'y': 1625.1888168179569, 'z': 3000, 'id': '4db2c3f659f1514fac1ae0f9404c22bf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 800, 'y': 1686, 'z': 3000, 'id': '85e7140c7cf4a534daed536dbcce40f1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level1', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': '100a3727-bbc5-4027-81ee-1d6730f822ba' + }, + {'id': 'c702adf48e8bce4d7419ba71383e18c6', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': '5e0949f2b06b6e6fc06bec92247047ba', 'end': {'x': 1914, 'y': 0, 'z': 6000, 'id': 'ab847560ecb5b6e315d4ecd88ad998a3', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1686, 'y': 0, 'z': 6000, 'id': '31c4dc918b15402b0380084d03fe8a17', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '53afc0852eeaa75fd0043533cc653798', 'bbox': {'id': '1457e7de4acf37714a6a76d094c366f3', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'd60e7e1471cb48078e7c2afb9f7eaa30', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1914, 'y': 85.99999999999989, 'z': 6000, 'id': 'ccff5622dbd442ca1af9c5e27d94866f', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 85.99999999999989, 'measure': 1.5707963267948992, 'endPoint': {'x': 2000, 'y': 86, 'z': 6000, 'id': 'a1500d88c117a42ac6f444f25ff058ec', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1974.8111831820431, 'y': 25.18881681795688, 'z': 6000, 'id': 'f93ee0d86b9f1ad911967639002b14d1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1914, 'y': 0, 'z': 6000, 'id': 'ab847560ecb5b6e315d4ecd88ad998a3', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'a0cb8da9bfe0c4d818c095fd5aa307e0', 'end': {'x': 2000, 'y': 314, 'z': 6000, 'id': 'df65f69c0542bb174b04067327ef239e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 2000, 'y': 86, 'z': 6000, 'id': 'a1500d88c117a42ac6f444f25ff058ec', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'fada9395ba75e97b23094780f712852b', 'bbox': {'id': '79f5f2f56ed1c309393f884a8f44f7f3', 'area': 14791.99999999998, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0937eb18914c0839931b4ee8344cc743', 'end': 399.9999999999999, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'c4d2fb93bce8c0a3c25693f625a0a0eb', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1914, 'y': 314, 'z': 6000, 'id': '2b31ef4419d63c3b53524b73f6d2ce01', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436093, 'radius': 86, 'measure': 1.5707963267948946, 'endPoint': {'x': 1914, 'y': 399.9999999999999, 'z': 6000, 'id': '7ba7d6b579d3615fd400f3d2ebc7bf7b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1974.811183182043, 'y': 374.81118318204307, 'z': 6000, 'id': '24ce75de97e51e3792ae981b3eda5876', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 2000, 'y': 314, 'z': 6000, 'id': 'df65f69c0542bb174b04067327ef239e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '604912db30da71bee5ac994582adb2d8', 'end': {'x': 1686, 'y': 400, 'z': 6000, 'id': '2e7adb11fe20f2653cf685532d9873cf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1914, 'y': 399.9999999999999, 'z': 6000, 'id': '7ba7d6b579d3615fd400f3d2ebc7bf7b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '81414af9ba3e7bb4d0da98555212e1fd', 'bbox': {'id': '50071857f0362253b006968e5e5120bf', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '53f18ad9bee4b1f94ba2dc1c02e3f690', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1686, 'y': 314, 'z': 6000, 'id': '4e6daf0d6c18fc06a5ac3bb1b62b56a2', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.0884841043611, 'radius': 86, 'measure': 1.5707963267948966, 'endPoint': {'x': 1600, 'y': 314, 'z': 6000, 'id': '10608021ae72dbdb607fcfc6ab3174ce', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1625.1888168179569, 'y': 374.81118318204307, 'z': 6000, 'id': '5f0354de92edfd4ddbe8cc1a4049860f', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1686, 'y': 400, 'z': 6000, 'id': '2e7adb11fe20f2653cf685532d9873cf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'cfeb7dfc0777f9d6bae4ba0c221ae40a', 'end': {'x': 1600, 'y': 86, 'z': 6000, 'id': 'c986d766535f2d5849f9d2adc88580b9', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1600, 'y': 314, 'z': 6000, 'id': '10608021ae72dbdb607fcfc6ab3174ce', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'c735f14963db70d5a9f904dfb2e8fe6f', 'bbox': {'id': '04ad066ccc372ebda73e85f9b023217e', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'd79611597cbf5473d00d102eb8d79d98', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1686, 'y': 85.99999999999997, 'z': 6000, 'id': '6bb834dcb1451efdb4f03007faf644d1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436113, 'radius': 86, 'measure': 1.5707963267948968, 'endPoint': {'x': 1686, 'y': 0, 'z': 6000, 'id': '31c4dc918b15402b0380084d03fe8a17', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1625.1888168179569, 'y': 25.188816817956905, 'z': 6000, 'id': '01424ab1c3cde63376df2b3d9f09f486', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1600, 'y': 86, 'z': 6000, 'id': 'c986d766535f2d5849f9d2adc88580b9', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level2', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': '55e18fd0-1355-4176-9580-2e0d2a86cf66' + }, + {'id': 'ce7877f2c59226a53c7de80dfb5e8100', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': '12595be3c64c74451d18f62f34959ef9', 'end': {'x': 1114, 'y': 800, 'z': 3000, 'id': '101e0a6fa20124ff83a656447299f25b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 886, 'y': 800, 'z': 3000, 'id': '8eb3d39b448d0844accc255ee2212d15', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '77cd91faf3286c0c254364edf1389e77', 'bbox': {'id': 'fd49a094dffb8c0f2e882a64e70267b5', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '0e1fc9058b159ba5ddde2d6c33098906', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1114, 'y': 885.9999999999999, 'z': 3000, 'id': 'eadcabe07b8242e367a7d0a64db6f768', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 85.99999999999989, 'measure': 1.5707963267948992, 'endPoint': {'x': 1200, 'y': 886, 'z': 3000, 'id': '3d62d840a18b0c71a4a6466eefe622f1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1174.8111831820431, 'y': 825.1888168179569, 'z': 3000, 'id': 'e63a48343153f9736c145c05d6e5d24a', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1114, 'y': 800, 'z': 3000, 'id': '101e0a6fa20124ff83a656447299f25b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '9833a9b95b21387abadcdc108c9ea161', 'end': {'x': 1200, 'y': 1114, 'z': 3000, 'id': 'f44a8c1d34e036c9afb9617392a680ba', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1200, 'y': 886, 'z': 3000, 'id': '3d62d840a18b0c71a4a6466eefe622f1', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'f8691b35d3a59722782b937b8c970e28', 'bbox': {'id': '55039d8c9f56210584fec8f52268928e', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'e382314c2efba265b1bb53ea5044d57c', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1114, 'y': 1114, 'z': 3000, 'id': '80227d7bc978cbb6d888af8513fc2b95', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436102, 'radius': 86, 'measure': 1.5707963267948957, 'endPoint': {'x': 1114, 'y': 1200, 'z': 3000, 'id': 'de79f3fe91e42f81253092386fcd3c73', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1174.811183182043, 'y': 1174.8111831820431, 'z': 3000, 'id': '3c04ef1cbe25eea7b5e270c67ca450ca', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1200, 'y': 1114, 'z': 3000, 'id': 'f44a8c1d34e036c9afb9617392a680ba', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'fd1c13e10a3a4e1262ba356bbb274067', 'end': {'x': 886, 'y': 1200, 'z': 3000, 'id': 'fd9fdcdd171bc611e1f151c217c0b0fa', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1114, 'y': 1200, 'z': 3000, 'id': 'de79f3fe91e42f81253092386fcd3c73', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '6620b8246f0cab7fc97029215ca2c646', 'bbox': {'id': 'a92022bf001d112d80f39e7b5f01c6b1', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'cb0b9b1e8b58ff7eaec28ef11d178af0', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 886, 'y': 1114, 'z': 3000, 'id': '28397f772e96e5ec3f4bc15e2f0f3817', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 86, 'measure': 1.5707963267948972, 'endPoint': {'x': 800, 'y': 1114, 'z': 3000, 'id': '66ed0e3d2754d9e5ffeaa14029fb526a', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 825.1888168179569, 'y': 1174.8111831820431, 'z': 3000, 'id': '32669544e05dd0e2f6fbf6ceb46ecd91', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 886, 'y': 1200, 'z': 3000, 'id': 'fd9fdcdd171bc611e1f151c217c0b0fa', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '78fed0b637bb204999dee9f772cd5d4f', 'end': {'x': 800, 'y': 886, 'z': 3000, 'id': 'a830b4010f83f658f93e6b500fd7e9a4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 800, 'y': 1114, 'z': 3000, 'id': '66ed0e3d2754d9e5ffeaa14029fb526a', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '6dda4bcf66ae7db3e96632ea540369d4', 'bbox': {'id': '3b788ab97b52fe166118b6c73848eb88', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': 'f192f6b527e6450b465e606f655321dd', 'end': 3000, 'start': 3000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '54e655d445a4f8ce3044c923fa019acc', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 886, 'y': 886, 'z': 3000, 'id': 'd597940dfe094482697a3423b87cdac4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436107, 'radius': 86, 'measure': 1.5707963267948963, 'endPoint': {'x': 886, 'y': 800, 'z': 3000, 'id': '8eb3d39b448d0844accc255ee2212d15', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 825.188816817957, 'y': 825.1888168179569, 'z': 3000, 'id': 'd5eecadc3cbc872a105b590e8f658750', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 800, 'y': 886, 'z': 3000, 'id': 'a830b4010f83f658f93e6b500fd7e9a4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level1', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': '69dae8ea-bf2e-410d-ab0f-4c2bd48b41b3' + }, + {'id': 'd07c34a89b1fa526bddeff301f862577', 'name': '2dstuff', '__closure': {'15f67281749e088b04eb397a4ec0f0d1': 1, 'ae126f9268c09a0d85af936dd343fd41': 1, 'ce7877f2c59226a53c7de80dfb5e8100': 1 + }, 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level1', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'displayValue': [ + {'__closure': None, 'referencedId': '15f67281749e088b04eb397a4ec0f0d1', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'ce7877f2c59226a53c7de80dfb5e8100', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'ae126f9268c09a0d85af936dd343fd41', 'speckle_type': 'reference' + } + ], 'speckle_type': 'Objects.Data.DataObject', 'applicationId': '6842d215-29a1-404c-8bca-ff2cee54ad0c' + }, + {'id': 'e26fce01bdca87d7415fa09995db7ad6', 'name': '2dstuff', '__closure': {'022beb2eb32c03785306a295d9693832': 1, '62e14d402ba9ef51f733dcc6e9b94caa': 1, 'a05590d5dca03f2f2df9ed8e3ceb683a': 1 + }, 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level0', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'displayValue': [ + {'__closure': None, 'referencedId': '62e14d402ba9ef51f733dcc6e9b94caa', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'a05590d5dca03f2f2df9ed8e3ceb683a', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': '022beb2eb32c03785306a295d9693832', 'speckle_type': 'reference' + } + ], 'speckle_type': 'Objects.Data.DataObject', 'applicationId': '9267e657-f8b2-435d-ae67-edba454fa232' + }, + {'id': 'e6b76251331deef0debb0b7f01cba26b', 'name': '2dstuff', '__closure': {'80af7f592ba9985b9bb3f039fefcbe14': 1, 'c702adf48e8bce4d7419ba71383e18c6': 1, 'f90d993d339a2065884793d75aeefd32': 1 + }, 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level2', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'displayValue': [ + {'__closure': None, 'referencedId': 'c702adf48e8bce4d7419ba71383e18c6', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'f90d993d339a2065884793d75aeefd32', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': '80af7f592ba9985b9bb3f039fefcbe14', 'speckle_type': 'reference' + } + ], 'speckle_type': 'Objects.Data.DataObject', 'applicationId': '7bbf9b68-2878-45ad-bc19-15b0af6ba402' + }, + {'id': 'f90d993d339a2065884793d75aeefd32', 'area': 0, 'bbox': None, 'name': '2dstuff', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': '7b513dd8f5e4f6994fdcccd98337a3b8', 'end': {'x': 1914, 'y': 800, 'z': 6000, 'id': '3445d932955c65c5c564cdac2de745fa', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1686, 'y': 800, 'z': 6000, 'id': '6687d6aa772475c871778b9d52a1ea4b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'd5ee6e06dfe9d08e01b032e0aff90bc6', 'bbox': {'id': '59e75a7481c53ee7c0248817efc96a4b', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '2356cdf070bc01342444b95ce68409cf', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1914, 'y': 885.9999999999999, 'z': 6000, 'id': '3a99dec5bb78d33cfa076a5d5c52e240', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 85.99999999999989, 'measure': 1.5707963267948992, 'endPoint': {'x': 2000, 'y': 886, 'z': 6000, 'id': 'b0814a90acf364a08d30ade9477d1122', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1974.8111831820431, 'y': 825.1888168179569, 'z': 6000, 'id': '6df3f1d94dea7b7a4cb835d8ba69cafb', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1914, 'y': 800, 'z': 6000, 'id': '3445d932955c65c5c564cdac2de745fa', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '2094644c32264475c127a8d04d54ebbb', 'end': {'x': 2000, 'y': 1114, 'z': 6000, 'id': '3b2c91328f392f70569fd9ba29a50ba4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 2000, 'y': 886, 'z': 6000, 'id': 'b0814a90acf364a08d30ade9477d1122', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '3c7adfa840996b891c152eda53e9f96d', 'bbox': {'id': '923c41b498b0c11ee67580f5e597ef33', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '0bbce1789861a04f9e9eab16d2563a42', 'end': 2000, 'start': 1914, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '2a0e77e548cc485cb2c10a822c061845', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1914, 'y': 1114, 'z': 6000, 'id': 'e64efb0671a62981396006e607deb5b5', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436102, 'radius': 86, 'measure': 1.5707963267948957, 'endPoint': {'x': 1914, 'y': 1200, 'z': 6000, 'id': '5d3d6c3d077a7760f0a295f11827c0dd', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1974.811183182043, 'y': 1174.8111831820431, 'z': 6000, 'id': 'e3eecf3fdbfaa5a91f6486c895d022a8', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 2000, 'y': 1114, 'z': 6000, 'id': '3b2c91328f392f70569fd9ba29a50ba4', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': 'd0b482fd80d964dcda91923dbd315b26', 'end': {'x': 1686, 'y': 1200, 'z': 6000, 'id': '0b0f22b5e9d3569a11e81f6ef1939c9e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1914, 'y': 1200, 'z': 6000, 'id': '5d3d6c3d077a7760f0a295f11827c0dd', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '283939f76cdc0b62f09e5fff29c79e0b', 'bbox': {'id': 'a5075fb335c76f38445011f4a3491425', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'ec0fc19b3e1a5e0e004ae55269677edc', 'end': 1200, 'start': 1114, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '7437f75b9896005e870741438db9c7e1', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1686, 'y': 1114, 'z': 6000, 'id': 'd1c7bb9495635f22fe136e2fde2cd5dc', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 86, 'measure': 1.5707963267948972, 'endPoint': {'x': 1600, 'y': 1114, 'z': 6000, 'id': 'ca4238cfa994d2ae393bbbb4c7b6027f', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1625.1888168179569, 'y': 1174.8111831820431, 'z': 6000, 'id': 'ca13a5af15a0232818aa4b2366656cf7', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1686, 'y': 1200, 'z': 6000, 'id': '0b0f22b5e9d3569a11e81f6ef1939c9e', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '0f02a33219144e88c0f7f566a88c4b13', 'end': {'x': 1600, 'y': 886, 'z': 6000, 'id': '41da0de12fb3de0a5987d15e07e7dfb2', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 1600, 'y': 1114, 'z': 6000, 'id': 'ca4238cfa994d2ae393bbbb4c7b6027f', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '64613f6f0a1adc3dfdd637222f4d8225', 'bbox': {'id': '83aa95384a7b2b94c527c8bb016ca00b', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '997101d6e36c4a96d3f33f10c2238d83', 'end': 1686, 'start': 1600, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': 'c9c7df15c18de8a77fd547d01710b18b', 'end': 886, 'start': 800, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '2381432ec6029e6551382605c81673c8', 'end': 6000, 'start': 6000, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '92ee5f20f44ca51fae895380f6ab2302', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 1686, 'y': 886, 'z': 6000, 'id': '38467770b66c1ca366f5c743a6554efd', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 86, 'measure': 1.5707963267948972, 'endPoint': {'x': 1686, 'y': 800, 'z': 6000, 'id': '6687d6aa772475c871778b9d52a1ea4b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 1625.1888168179569, 'y': 825.1888168179569, 'z': 6000, 'id': 'b57b52a25513053be03f7f9a3059ff5b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 1600, 'y': 886, 'z': 6000, 'id': '41da0de12fb3de0a5987d15e07e7dfb2', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level2', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': '5a30e65b-a51e-43dc-a3a4-5135c74cfabf' + } +] \ No newline at end of file diff --git a/utils/Sample_Object_with_Curves_Instances.json b/utils/Sample_Object_with_Curves_Instances.json new file mode 100644 index 0000000..6e35ca2 --- /dev/null +++ b/utils/Sample_Object_with_Curves_Instances.json @@ -0,0 +1,394 @@ +User Data: [ + {'id': '34fdb59ab62f3e0780d0d6e674ed8048', 'name': 'Grasshopper Model', 'version': 3, 'elements': [ + {'__closure': None, 'referencedId': '3613b6aed1da75447a79a5aa08fe0373', 'speckle_type': 'reference' + } + ], '__closure': {'02fd4e9236aa8203e3e9893645d23e8e': 2, '2b52c8e3ff01006ec2c709122a634dbd': 2, '3613b6aed1da75447a79a5aa08fe0373': 1, '52a623ceb08d87797a7f7ba36434da18': 2, '68c358f888cb5fa565279bff9e9f0ad2': 2, '8337f3f819140b460131af3f17367500': 2, 'a7b19942ff5bbe5dcfce155eddacf14d': 2, 'a8429dd57aed90750d47d036a77f8ada': 2, 'c8811f6522b169f1993f78a1b79e354f': 2, 'eb574c7da4393c988c49bf09c92ce8b8': 2, 'f5263a6bf3d83aafffa4af92fafdd00d': 2 + }, 'properties': {}, 'colorProxies': [], 'speckle_type': 'Speckle.Core.Models.Collections.Collection:Speckle.Core.Models.Collections.RootCollection', 'applicationId': '315b8e08-bd7a-4468-b8f4-ddcb58eb2f24', 'collectionType': None, 'renderMaterialProxies': [ + {'id': '243c8308077386e1b37cab7d72e85493', 'value': {'id': '4450546a61be09e86ae2b22b99f78c36', 'name': None, 'shine': 0, 'diffuse': -2994608, 'opacity': 1, 'emissive': -16777216, 'specular': -1, 'metalness': 0, 'roughness': 1, 'speckle_type': 'Objects.Other.RenderMaterial', 'applicationId': 'material_0_Color [A=255, R=210, G=78, B=80 + ]_Color [Black + ]_0_Color [White + ]' + }, 'objects': ['f9eea996-6497-483e-9425-9eba17cc0792', '14afade6-a327-45a4-80be-7cdf479fda67', '48984c1b-c587-47cd-b53d-224a764db435', '1ff5e839-9939-4f11-9441-7ee69084366c', '8db8e229-ea79-42e6-8b95-5c97ef673444', '6bb9c86b-7028-4471-bdae-3304c15382e7', '0212fc75-9106-4932-b695-66bafb41a791', '7b0f464b-9077-462f-8c19-f9bd73beeb55', '6d0ef043-0882-4d73-80e0-d36bff7f89b1' + ], 'speckle_type': 'Objects.Other.RenderMaterialProxy', 'applicationId': 'material_0_Color [A=255, R=210, G=78, B=80 + ]_Color [Black + ]_0_Color [White + ]' + } + ], 'instanceDefinitionProxies': [ + {'id': '045f42290314ef67fc1482cf18637d51', 'name': '2dstuff', 'objects': ['001bbd8e-b5a6-4747-b8fa-b002c352a113' + ], 'maxDepth': 0, 'speckle_type': 'Speckle.Core.Models.Instances.InstanceDefinitionProxy', 'applicationId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609' + } + ], 'totalChildrenCount': None + }, + {'id': '02fd4e9236aa8203e3e9893645d23e8e', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level0', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': 'f9eea996-6497-483e-9425-9eba17cc0792' + }, + {'id': '2b52c8e3ff01006ec2c709122a634dbd', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 800, + 0, + 1, + 0, + 1600, + 0, + 0, + 1, + 3000, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level1', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': '6bb9c86b-7028-4471-bdae-3304c15382e7' + }, + {'id': '3613b6aed1da75447a79a5aa08fe0373', 'name': 'Sub-Collection 1', 'elements': [ + {'__closure': None, 'referencedId': '02fd4e9236aa8203e3e9893645d23e8e', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': '8337f3f819140b460131af3f17367500', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'a7b19942ff5bbe5dcfce155eddacf14d', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'f5263a6bf3d83aafffa4af92fafdd00d', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': '68c358f888cb5fa565279bff9e9f0ad2', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'eb574c7da4393c988c49bf09c92ce8b8', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': '2b52c8e3ff01006ec2c709122a634dbd', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'a8429dd57aed90750d47d036a77f8ada', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': 'c8811f6522b169f1993f78a1b79e354f', 'speckle_type': 'reference' + }, + {'__closure': None, 'referencedId': '52a623ceb08d87797a7f7ba36434da18', 'speckle_type': 'reference' + } + ], 'topology': '0-3 1-3 2-3 ', '__closure': {'02fd4e9236aa8203e3e9893645d23e8e': 1, '2b52c8e3ff01006ec2c709122a634dbd': 1, '52a623ceb08d87797a7f7ba36434da18': 1, '68c358f888cb5fa565279bff9e9f0ad2': 1, '8337f3f819140b460131af3f17367500': 1, 'a7b19942ff5bbe5dcfce155eddacf14d': 1, 'a8429dd57aed90750d47d036a77f8ada': 1, 'c8811f6522b169f1993f78a1b79e354f': 1, 'eb574c7da4393c988c49bf09c92ce8b8': 1, 'f5263a6bf3d83aafffa4af92fafdd00d': 1 + }, 'speckle_type': 'Speckle.Core.Models.Collections.Collection', 'applicationId': '0d054742-8287-4956-a0ba-bcebdadaa7ee', 'collectionType': None + }, + {'id': '52a623ceb08d87797a7f7ba36434da18', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 1600, + 0, + 1, + 0, + 1600, + 0, + 0, + 1, + 6000, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level2', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': '6d0ef043-0882-4d73-80e0-d36bff7f89b1' + }, + {'id': '68c358f888cb5fa565279bff9e9f0ad2', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 800, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 3000, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level1', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': '1ff5e839-9939-4f11-9441-7ee69084366c' + }, + {'id': '8337f3f819140b460131af3f17367500', 'area': 0, 'bbox': None, 'name': '', 'units': 'cm', 'closed': True, 'domain': {'id': 'd8d1433909fb59a39f68add928b6c6cb', 'end': 1452.3539364174444, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 1452.3539364174444, 'segments': [ + {'id': '2a53ab8190fdfd471a4fc40de8b7cfd1', 'end': {'x': 314, 'y': 0, 'z': 0, 'id': '5e36a92a5b1bd770e3b3498afee7a020', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 86, 'y': 0, 'z': 0, 'id': '13f192aab1715fe46ce1e9894f559c47', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'c53395b2b10123431324d2ba4dda7b50', 'bbox': {'id': '646491fbda16d7c6e87bebace9bca820', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'c1d272cc9d1efbb010363524cbeb59c2', 'xdir': {'x': -1.3219399735071649e-15, 'y': -1, 'z': 0, 'id': 'cc8bd0226417fd5e1e9943d9addb5b4a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 1, 'y': -1.3219399735071649e-15, 'z': 0, 'id': '99f13453930320d90244bf0f0d933b0d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 314.0000000000001, 'y': 85.99999999999989, 'z': 0, 'id': '2a24b4c76322b3aacea562c7077736ed', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ff31a8e0e7b84dbc2852b2c632835e33', 'end': 135.08848410436116, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436116, 'radius': 85.99999999999989, 'measure': 1.5707963267948992, 'endPoint': {'x': 400, 'y': 86, 'z': 0, 'id': 'f1f5727576aa37fb893e127e51c696bf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 374.8111831820431, 'y': 25.18881681795688, 'z': 0, 'id': 'f66a1cc7820a970053afdb0cfe150c2b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 314, 'y': 0, 'z': 0, 'id': '5e36a92a5b1bd770e3b3498afee7a020', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '5d79cd7f50d6da7f4f03a9d73ec3d9f0', 'end': {'x': 400, 'y': 314, 'z': 0, 'id': '972e682e64e39316165bccdd7064af49', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 400, 'y': 86, 'z': 0, 'id': 'f1f5727576aa37fb893e127e51c696bf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'ddddb9cd7b47422856043378ffa25f55', 'bbox': {'id': '70b70d5c45803b52c7e32bff23541843', 'area': 14791.99999999998, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '0937eb18914c0839931b4ee8344cc743', 'end': 399.9999999999999, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': '33b44853350b90ba826ed4bff07f74ac', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 314.0000000000001, 'y': 314, 'z': 0, 'id': '1edc94b63286f3263f6cd319cdea6874', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '0e17bec00b0fb71de25bd620542528a8', 'end': 135.08848410436104, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436104, 'radius': 85.99999999999989, 'measure': 1.570796326794898, 'endPoint': {'x': 314, 'y': 399.9999999999999, 'z': 0, 'id': 'aa73c80f7099f766508c429ca7f7c049', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 374.81118318204307, 'y': 374.81118318204307, 'z': 0, 'id': '916d7ecb5cc11c292653678f366a0dce', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 400, 'y': 314, 'z': 0, 'id': '972e682e64e39316165bccdd7064af49', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '4c6a78b95e5fcb80c22add2ab203d174', 'end': {'x': 86, 'y': 400, 'z': 0, 'id': 'c38190449d3f935a16c05385f5dd9ff0', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 314, 'y': 399.9999999999999, 'z': 0, 'id': 'aa73c80f7099f766508c429ca7f7c049', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': '528a313951093db36dd2b3cfcf10ac03', 'bbox': {'id': '4f07082d6f71610f6b9430af98539864', 'area': 14791.999999999995, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '60fb5c265c45c1e742293a1408eebd5e', 'end': 86, 'start': 2.842170943040401e-14, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '67575b21c01426dbb7db1e401d5c6ce0', 'end': 400, 'start': 314, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'e6309b915773b4760040b0780d39ae6a', 'xdir': {'x': -3.304849933767908e-16, 'y': 1, 'z': 0, 'id': '516786f30ebb560fd0d0d4a08f5480d6', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -1, 'y': -3.304849933767908e-16, 'z': 0, 'id': '86c78a2b248f5657eca66f25da703e27', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 86.00000000000003, 'y': 314, 'z': 0, 'id': '46c1110cbfb32dcd6d7b4ad36a6ea5e6', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'ee46a19db905bc93fb0a8488442584b6', 'end': 135.08848410436107, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436107, 'radius': 86, 'measure': 1.5707963267948961, 'endPoint': {'x': 2.842170943040401e-14, 'y': 314, 'z': 0, 'id': '6b544465d25084da5ec0c9d1b6fb59f8', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 25.188816817956933, 'y': 374.81118318204307, 'z': 0, 'id': '6145f8f80ede99159cd28c09c8407812', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 86, 'y': 400, 'z': 0, 'id': 'c38190449d3f935a16c05385f5dd9ff0', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + }, + {'id': '074ecdc4702d62925874ad44572b94dd', 'end': {'x': 0, 'y': 86, 'z': 0, 'id': '8ce2dde674d79cf97e354a21760c06a3', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'bbox': None, 'start': {'x': 2.842170943040401e-14, 'y': 314, 'z': 0, 'id': '6b544465d25084da5ec0c9d1b6fb59f8', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': 'cd1e347341b2fdfe05cdc7e162030d0b', 'end': 228, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 228, 'speckle_type': 'Objects.Geometry.Line', 'applicationId': None + }, + {'id': 'd9416cf401551630fde7e1a438c5704b', 'bbox': {'id': '338bb17957daa275067666c2e8e5612c', 'area': 14792, 'plane': {'id': 'b9661b771cb4091c7985e24072bb8f99', 'xdir': {'x': 1, 'y': 0, 'z': 0, 'id': 'e5642698411042d5b4f01740c0181175', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': 0, 'y': 1, 'z': 0, 'id': 'a74c24ffed0ab761ca0850152d74f103', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 0, 'y': 0, 'z': 0, 'id': '6c70614c9f2ebd32c169f52e23a04fbf', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'xSize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'ySize': {'id': '139092bcab18d041bc2b3b4f07908b5a', 'end': 86, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'zSize': {'id': '000e6a5831ce9aa0b9612614601aa86b', 'end': 0, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'volume': 0, 'speckle_type': 'Objects.Geometry.Box', 'applicationId': None + }, 'plane': {'id': 'c5c55636af89e2ef88a1ce8bac726ff1', 'xdir': {'x': -1, 'y': 3.304849933767909e-16, 'z': 0, 'id': '792ae2f3f2a9c57b079976754ad2cc1a', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'ydir': {'x': -3.304849933767909e-16, 'y': -1, 'z': 0, 'id': '92b8a48e36b6af9e0891a69526ad565b', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'units': 'cm', 'normal': {'x': 0, 'y': 0, 'z': 1, 'id': 'b914dfcf182d58607a97f9818496691d', 'bbox': None, 'units': 'cm', 'speckle_type': 'Objects.Geometry.Vector', 'applicationId': None + }, 'origin': {'x': 85.99999999999997, 'y': 85.99999999999997, 'z': 0, 'id': 'd3ec5dd9ffac610686d8287f8b1b4299', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Plane', 'applicationId': None + }, 'units': 'cm', 'domain': {'id': '12280f5df1a216096d7649924b4a0a32', 'end': 135.08848410436113, 'start': 0, 'speckle_type': 'Objects.Primitive.Interval', 'applicationId': None + }, 'length': 135.08848410436113, 'radius': 85.99999999999997, 'measure': 1.5707963267948974, 'endPoint': {'x': 86, 'y': 0, 'z': 0, 'id': '13f192aab1715fe46ce1e9894f559c47', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'midPoint': {'x': 25.188816817956898, 'y': 25.188816817956905, 'z': 0, 'id': 'd5c3c7f3a7c664bfe4d112859002b56b', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'startPoint': {'x': 0, 'y': 86, 'z': 0, 'id': '8ce2dde674d79cf97e354a21760c06a3', 'units': 'cm', 'speckle_type': 'Objects.Geometry.Point', 'applicationId': None + }, 'speckle_type': 'Objects.Geometry.Arc', 'applicationId': None + } + ], 'properties': {}, 'speckle_type': 'Objects.Geometry.Polycurve', 'applicationId': '001bbd8e-b5a6-4747-b8fa-b002c352a113' + }, + {'id': 'a7b19942ff5bbe5dcfce155eddacf14d', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 800, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level0', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': '14afade6-a327-45a4-80be-7cdf479fda67' + }, + {'id': 'a8429dd57aed90750d47d036a77f8ada', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 1600, + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 6000, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level2', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': '0212fc75-9106-4932-b695-66bafb41a791' + }, + {'id': 'c8811f6522b169f1993f78a1b79e354f', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 1600, + 0, + 1, + 0, + 800, + 0, + 0, + 1, + 6000, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level2', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': '7b0f464b-9077-462f-8c19-f9bd73beeb55' + }, + {'id': 'eb574c7da4393c988c49bf09c92ce8b8', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 800, + 0, + 1, + 0, + 800, + 0, + 0, + 1, + 3000, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level1', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': '8db8e229-ea79-42e6-8b95-5c97ef673444' + }, + {'id': 'f5263a6bf3d83aafffa4af92fafdd00d', 'name': '', 'units': 'cm', 'maxDepth': 0, 'transform': [ + 1, + 0, + 0, + 0, + 0, + 1, + 0, + 1600, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 1 + ], 'properties': {'Attributes': {'id': '2341', 'Tag': '414482', 'Name': 'M_Concrete-Sq-Column', 'type': 'IfcColumn', 'GlobalId': '3lIj7B0LnBjf0mvxk2zuuc', 'ObjectType': 'Square-C40' + }, 'Quantities': {'Qto_ColumnBaseQuantities': {'id': 'M_40', 'Length': 3000, 'GrossVolumn': 0.27 + } + }, 'Property Sets': {'Pset_ColumnCommon': {'Reference': 'M_40', 'IsExternal': 'True', 'LoadBearing': 'False' + } + }, 'Building Storey': 'Level0', 'Element Type Property Sets': {'Pset_ColumnCommon': {'IsExternal': 'True' + } + } + }, 'definitionId': 'f480a3ac-572e-45d6-b92c-3fe2d88ff609', 'speckle_type': 'Speckle.Core.Models.Instances.InstanceProxy', 'applicationId': '48984c1b-c587-47cd-b53d-224a764db435' + } +] \ No newline at end of file diff --git a/utils/curves.py b/utils/curves.py new file mode 100644 index 0000000..a31fa71 --- /dev/null +++ b/utils/curves.py @@ -0,0 +1,357 @@ +# ============================================================================= +# curves.py +# Converts Speckle 2D curve geometry (Polycurve, Line, Arc, Circle, Polyline) +# into IFC IfcIndexedPolyCurve representations. +# +# Curve types in segments: +# - Objects.Geometry.Line → start/end Points → IfcLineIndex +# - Objects.Geometry.Arc → startPoint/midPoint/endPoint → IfcArcIndex +# - Objects.Geometry.Circle → converted to arc segments +# - Objects.Geometry.Polyline → point sequence → IfcLineIndex chains +# +# The result is an IfcIndexedPolyCurve with IfcCartesianPointList3D. +# ============================================================================= + +import ifcopenshell +import ifcopenshell.api +from specklepy.objects.base import Base +from utils.helpers import _get, MM_SCALES +from utils.geometry import _get_shared, _make_placement + + +# Speckle types that are curve geometry +_CURVE_TYPES = {"Line", "Arc", "Circle", "Ellipse", "Polycurve", "Polyline", "Curve"} + + +def is_curve(obj) -> bool: + """Return True if this object is a Speckle curve type.""" + speckle_type = _get(obj, "speckle_type") or "" + return any(ct in speckle_type for ct in _CURVE_TYPES) + + +def _resolve_scale(obj, fallback: float) -> float: + """Resolve unit scale for a curve object.""" + units = _get(obj, "units") + if units and isinstance(units, str): + return MM_SCALES.get(units.lower().strip(), fallback) + return fallback + + +def _point_coords(pt, scale: float) -> tuple: + """Extract (x, y, z) from a Speckle Point, scaled to mm.""" + x = float(_get(pt, "x") or 0) * scale + y = float(_get(pt, "y") or 0) * scale + z = float(_get(pt, "z") or 0) * scale + return x, y, z + + +def _extract_polycurve(obj, scale: float) -> tuple: + """ + Extract points and segment indices from a Polycurve. + + Returns (points_3d, segments) where: + points_3d: list of [x, y, z] coordinate lists + segments: list of IfcLineIndex/IfcArcIndex-compatible tuples + ("line", [i, j]) or ("arc", [i, mid, j]) (1-based) + """ + segments_raw = _get(obj, "segments") or [] + if not isinstance(segments_raw, list): + segments_raw = list(segments_raw) + if not segments_raw: + return [], [] + + obj_scale = _resolve_scale(obj, scale) + points = [] # list of [x, y, z] + point_map = {} # (rounded_x, rounded_y, rounded_z) → 1-based index + ifc_segments = [] + + def _add_point(pt, seg_scale: float) -> int: + """Add a point and return its 1-based index (deduplicating nearby points).""" + x, y, z = _point_coords(pt, seg_scale) + # Snap to 0.01mm grid for deduplication + key = (round(x * 100), round(y * 100), round(z * 100)) + if key in point_map: + return point_map[key] + idx = len(points) + 1 # 1-based for IFC + points.append([x, y, z]) + point_map[key] = idx + return idx + + for seg in segments_raw: + if seg is None: + continue + seg_type = (_get(seg, "speckle_type") or "").split(".")[-1] + seg_scale = _resolve_scale(seg, obj_scale) + + if seg_type == "Line": + start_pt = _get(seg, "start") + end_pt = _get(seg, "end") + if start_pt is None or end_pt is None: + continue + i = _add_point(start_pt, seg_scale) + j = _add_point(end_pt, seg_scale) + if i != j: + ifc_segments.append(("line", [i, j])) + + elif seg_type == "Arc": + start_pt = _get(seg, "startPoint") + mid_pt = _get(seg, "midPoint") + end_pt = _get(seg, "endPoint") + if start_pt is None or mid_pt is None or end_pt is None: + continue + i = _add_point(start_pt, seg_scale) + m = _add_point(mid_pt, seg_scale) + j = _add_point(end_pt, seg_scale) + if i != j and i != m and m != j: + ifc_segments.append(("arc", [i, m, j])) + + elif seg_type == "Polyline": + raw_value = _get(seg, "value") or [] + if not raw_value: + continue + values = list(raw_value) if not isinstance(raw_value, list) else raw_value + indices = [] + for vi in range(0, len(values) - 2, 3): + x = float(values[vi]) * seg_scale + y = float(values[vi + 1]) * seg_scale + z = float(values[vi + 2]) * seg_scale + key = (round(x * 100), round(y * 100), round(z * 100)) + if key in point_map: + idx = point_map[key] + else: + idx = len(points) + 1 + points.append([x, y, z]) + point_map[key] = idx + indices.append(idx) + if len(indices) >= 2: + ifc_segments.append(("line", indices)) + + return points, ifc_segments + + +def _extract_single_line(obj, scale: float) -> tuple: + """Extract a single Line as points + segment.""" + obj_scale = _resolve_scale(obj, scale) + start_pt = _get(obj, "start") + end_pt = _get(obj, "end") + if start_pt is None or end_pt is None: + return [], [] + sx, sy, sz = _point_coords(start_pt, obj_scale) + ex, ey, ez = _point_coords(end_pt, obj_scale) + return [[sx, sy, sz], [ex, ey, ez]], [("line", [1, 2])] + + +def _extract_single_arc(obj, scale: float) -> tuple: + """Extract a single Arc as points + segment.""" + obj_scale = _resolve_scale(obj, scale) + start_pt = _get(obj, "startPoint") + mid_pt = _get(obj, "midPoint") + end_pt = _get(obj, "endPoint") + if start_pt is None or mid_pt is None or end_pt is None: + return [], [] + sx, sy, sz = _point_coords(start_pt, obj_scale) + mx, my, mz = _point_coords(mid_pt, obj_scale) + ex, ey, ez = _point_coords(end_pt, obj_scale) + return [[sx, sy, sz], [mx, my, mz], [ex, ey, ez]], [("arc", [1, 2, 3])] + + +def extract_curve_data(obj, scale: float = 1.0) -> tuple: + """ + Extract curve points and segments from any supported curve type. + Returns (points_3d, segments) or ([], []) if not a curve. + """ + speckle_type = (_get(obj, "speckle_type") or "").split(".")[-1] + + if speckle_type == "Polycurve": + return _extract_polycurve(obj, scale) + elif speckle_type == "Line": + return _extract_single_line(obj, scale) + elif speckle_type == "Arc": + return _extract_single_arc(obj, scale) + return [], [] + + +def build_ifc_curve(ifc, points: list, segments: list): + """ + Build an IfcIndexedPolyCurve from points and segment descriptors. + + points: list of [x, y, z] coordinates + segments: list of ("line", [indices]) or ("arc", [indices]) + + Returns IfcIndexedPolyCurve or None. + """ + if not points or not segments: + return None + + point_list = ifc.createIfcCartesianPointList3D(points) + + ifc_segments = [] + for seg_type, indices in segments: + if seg_type == "arc": + ifc_segments.append(ifc.create_entity("IfcArcIndex", indices)) + else: + ifc_segments.append(ifc.create_entity("IfcLineIndex", indices)) + + if not ifc_segments: + return None + + return ifc.createIfcIndexedPolyCurve( + Points=point_list, + Segments=ifc_segments, + SelfIntersect=False, + ) + + +def get_display_curves(obj) -> list: + """ + Collect curve objects from an object's displayValue, or the object itself. + Returns a list of curve objects (Polycurve, Line, Arc, etc.). + """ + curves = [] + for key in ["displayValue", "@displayValue", "_displayValue"]: + display = _get(obj, key) + if display is None: + continue + items = display if isinstance(display, list) else [display] + for item in items: + if item is not None and is_curve(item): + curves.append(item) + if curves: + break + + # Fallback: the object itself is a curve + if not curves and is_curve(obj): + curves.append(obj) + + return curves + + +def curve_to_ifc( + ifc: ifcopenshell.file, + body_context, + obj: Base, + scale: float = 1.0, + material_manager=None, +) -> tuple: + """ + Convert a Speckle object with curve geometry → (IfcShapeRepresentation, IfcLocalPlacement). + Looks for curves in displayValue first, then checks the object itself. + Creates one IfcIndexedPolyCurve per curve item. + Returns (None, None) if no usable curve geometry. + """ + curves = get_display_curves(obj) + if not curves: + return None, None + + obj_app_id = _get(obj, "applicationId") + obj_scale = _resolve_scale(obj, scale) + + # Collect curve data and compute origin incrementally (no all_points accumulation) + curve_cache = [] # list of (points, segments) or None + xmin = ymin = zmin = float("inf") + xmax = ymax = float("-inf") + has_points = False + + for curve_obj in curves: + points, segments = extract_curve_data(curve_obj, obj_scale) + if points and segments: + curve_cache.append((points, segments)) + has_points = True + for p in points: + x, y, z = p[0], p[1], p[2] + if x < xmin: xmin = x + if x > xmax: xmax = x + if y < ymin: ymin = y + if y > ymax: ymax = y + if z < zmin: zmin = z + else: + curve_cache.append(None) + + if not has_points: + return None, None + + ox = (xmin + xmax) / 2.0 + oy = (ymin + ymax) / 2.0 + oz = zmin + + # Build IFC curve entities + geom_items = [] + for i, cached in enumerate(curve_cache): + if cached is None: + continue + points, segments = cached + + offset_points = [ + [p[0] - ox, p[1] - oy, p[2] - oz] for p in points + ] + + curve_entity = build_ifc_curve(ifc, offset_points, segments) + if curve_entity is None: + continue + + # Apply material + if material_manager: + curve_app_id = _get(curves[i], "applicationId") or obj_app_id + if curve_app_id: + material_manager.apply_to_item(curve_entity, str(curve_app_id)) + + geom_items.append(curve_entity) + + if not geom_items: + return None, None + + rep = ifc.createIfcShapeRepresentation( + ContextOfItems=body_context, + RepresentationIdentifier="Body", + RepresentationType="Curve3D", + Items=geom_items, + ) + placement = _make_placement(ifc, ox, oy, oz) + return rep, placement + + +def build_curve_rep_map(ifc, body_context, obj, scale: float = 1.0, + material_manager=None, fallback_app_ids: list = None, + definition_id: str = None): + """ + Build an IfcRepresentationMap from a curve definition object. + Used for instance-based curve geometry (shared across instances). + Returns IfcRepresentationMap or None. + """ + points, segments = extract_curve_data(obj, scale) + if not points or not segments: + return None + + curve_entity = build_ifc_curve(ifc, points, segments) + if curve_entity is None: + return None + + # Apply material (3-tier: object app_id → fallbacks → definition) + if material_manager: + app_id = _get(obj, "applicationId") + style = material_manager.get_style_with_fallbacks( + primary_app_id=str(app_id) if app_id else None, + fallback_app_ids=fallback_app_ids, + definition_id=definition_id, + ) + if style: + try: + ifcopenshell.api.run( + "style.assign_item_style", ifc, + item=curve_entity, style=style, + ) + material_manager._apply_count += 1 + except Exception: + pass + + shared = _get_shared(ifc) + a2p = ifc.createIfcAxis2Placement3D(shared["origin_0"], None, None) + + mapped_rep = ifc.createIfcShapeRepresentation( + ContextOfItems=body_context, + RepresentationIdentifier="Body", + RepresentationType="Curve3D", + Items=[curve_entity], + ) + + return ifc.createIfcRepresentationMap(a2p, mapped_rep) diff --git a/utils/geometry.py b/utils/geometry.py index 02ad4c7..eb1644d 100644 --- a/utils/geometry.py +++ b/utils/geometry.py @@ -348,7 +348,7 @@ def mesh_to_ifc( # Pass 1: unpack and scale vertices once per mesh, compute origin # incrementally without accumulating all vertices in memory. # ------------------------------------------------------------------ # - mesh_cache = [] # [(verts_list, ms, scaled)] or None per mesh + mesh_cache = [] # [scaled_verts_list] or None per mesh xmin = ymin = zmin = float("inf") xmax = ymax = float("-inf") has_verts = False @@ -361,7 +361,7 @@ def mesh_to_ifc( continue ms = _resolve_scale(mesh, obj_scale) scaled = [float(v) * ms for v in verts] - mesh_cache.append((verts, ms, scaled)) + mesh_cache.append(scaled) has_verts = True # Update bounding box from this mesh's scaled vertices @@ -385,10 +385,9 @@ def mesh_to_ifc( # ------------------------------------------------------------------ # geom_items = [] - for mesh, cached in zip(meshes, mesh_cache): - if cached is None: + for mesh, scaled in zip(meshes, mesh_cache): + if scaled is None: continue - verts, ms, scaled = cached raw_faces = _get(mesh, "faces") or [] faces_raw = unwrap_chunks(raw_faces if isinstance(raw_faces, list) else list(raw_faces)) diff --git a/utils/instances.py b/utils/instances.py index 0f65f75..7a97f50 100644 --- a/utils/instances.py +++ b/utils/instances.py @@ -24,7 +24,8 @@ import math import ifcopenshell.api from specklepy.objects.base import Base from utils.helpers import _get, MM_SCALES -from utils.geometry import unwrap_chunks, decode_faces, build_ifc_facesets, _get_shared +from utils.geometry import unwrap_chunks, decode_faces, build_ifc_facesets, _get_shared, _is_mesh +from utils.curves import is_curve, build_curve_rep_map def is_instance(obj) -> bool: @@ -129,6 +130,21 @@ def _collect_all(obj, by_id: dict, by_app_id: dict, depth: int): continue +def _get_definition_source_object(definition_id: str, definition_map: dict): + """Resolve the first source object referenced by a definition proxy.""" + ifc_proxies = definition_map.get("ifc_proxies", {}) + proxy = ifc_proxies.get(definition_id) or ifc_proxies.get(definition_id.lower()) + if proxy is None: + return None + object_ids = _get(proxy, "objects") or [] + if not isinstance(object_ids, list): + object_ids = list(object_ids) + if not object_ids: + return None + by_app_id = definition_map.get("by_app_id", {}) + return by_app_id.get(str(object_ids[0]).lower()) + + def _get_revit_meshes(definition_id: str, definition_map: dict) -> tuple: """ Revit format: @@ -176,8 +192,8 @@ def _get_revit_meshes(definition_id: str, definition_map: dict) -> tuple: found_meshes = get_display_meshes(obj) if found_meshes: meshes.extend(found_meshes) - else: - # It IS the mesh directly + elif _is_mesh(obj): + # Object itself is a mesh (no displayValue wrapping) meshes.append(obj) return meshes, encountered_app_ids @@ -287,16 +303,11 @@ def _build_rep_map(ifc, body_context, meshes: list, ifc_format: bool, # Try: mesh applicationId → fallback IDs → definitionId mapping if material_manager: mesh_app_id = _get(mesh, "applicationId") - style = None - if mesh_app_id: - style = material_manager.get_style(str(mesh_app_id)) - if not style and fallback_app_ids: - for fid in fallback_app_ids: - style = material_manager.get_style(fid) - if style: - break - if not style and definition_id: - style = material_manager.get_style_by_definition(definition_id) + style = material_manager.get_style_with_fallbacks( + primary_app_id=str(mesh_app_id) if mesh_app_id else None, + fallback_app_ids=fallback_app_ids, + definition_id=definition_id, + ) if style: for fs in mesh_facesets: try: @@ -433,12 +444,6 @@ def instance_to_ifc(ifc, body_context, obj: Base, definition_map: dict, else: meshes, extra_app_ids = _get_revit_meshes(definition_id, definition_map) - if not meshes: - _stats["not_found"] += 1 - _rep_map_cache[definition_id] = None - return None, placement - - _stats["found"] += 1 # Build fallback app_id list: instance's own + definition chain IDs instance_app_id = _get(obj, "applicationId") fallback_ids = [] @@ -446,11 +451,31 @@ def instance_to_ifc(ifc, body_context, obj: Base, definition_map: dict, fallback_ids.append(str(instance_app_id)) fallback_ids.extend(extra_app_ids) - _rep_map_cache[definition_id] = _build_rep_map( - ifc, body_context, meshes, ifc_format, material_manager, - fallback_app_ids=fallback_ids, - definition_id=definition_id, - ) + rep_map_result = None + if meshes: + rep_map_result = _build_rep_map( + ifc, body_context, meshes, ifc_format, material_manager, + fallback_app_ids=fallback_ids, + definition_id=definition_id, + ) + + # If no mesh geometry produced, try curve geometry from the definition object + if rep_map_result is None: + curve_obj = _get_definition_source_object(definition_id, definition_map) + if curve_obj and is_curve(curve_obj): + curve_scale = _resolve_instance_scale(curve_obj, 1.0) + rep_map_result = build_curve_rep_map( + ifc, body_context, curve_obj, scale=curve_scale, + material_manager=material_manager, + fallback_app_ids=fallback_ids, + definition_id=definition_id, + ) + + _rep_map_cache[definition_id] = rep_map_result + if rep_map_result is not None: + _stats["found"] += 1 + else: + _stats["not_found"] += 1 else: # Track stats even for cached definitions if _rep_map_cache[definition_id] is not None: @@ -488,21 +513,7 @@ def get_definition_object(obj: Base, definition_map: dict): definition_id = _get(obj, "definitionId") or "" if not definition_id: return None - - ifc_proxies = definition_map.get("ifc_proxies", {}) - proxy = ifc_proxies.get(definition_id) or ifc_proxies.get(definition_id.lower()) - if proxy is None: - return None - - object_ids = _get(proxy, "objects") or [] - if not isinstance(object_ids, list): - object_ids = list(object_ids) - if not object_ids: - return None - - by_app_id = definition_map.get("by_app_id", {}) - source = by_app_id.get(str(object_ids[0]).lower()) - return source + return _get_definition_source_object(definition_id, definition_map) def is_definition_source(obj, definition_map: dict) -> bool: diff --git a/utils/materials.py b/utils/materials.py index a72c519..15d5b50 100644 --- a/utils/materials.py +++ b/utils/materials.py @@ -122,6 +122,22 @@ class MaterialManager: self._style_map[key] = style return style + def get_style_with_fallbacks(self, primary_app_id: str = None, + fallback_app_ids: list = None, + definition_id: str = None): + """3-tier style lookup: primary → fallbacks → definition mapping.""" + style = None + if primary_app_id: + style = self.get_style(primary_app_id) + if not style and fallback_app_ids: + for fid in fallback_app_ids: + style = self.get_style(fid) + if style: + break + if not style and definition_id: + style = self.get_style_by_definition(definition_id) + return style + def apply_to_item(self, item, mesh_app_id: str): """Assign the material style to a single IFC geometry item (e.g. IfcPolygonalFaceSet).""" style = self.get_style(mesh_app_id)