Commit Graph

635 Commits

Author SHA1 Message Date
Andrej730 959f05d154 shapebuilder - replace y extrusion args with shortcut for readibility 2024-04-16 10:37:15 +02:00
Andrej730 7cef9ffe0e Bends - replace faceset with simple extrusion 2024-04-16 10:37:15 +02:00
Dion Moult 913ccd9289 Improve usability of pset template UI by removing save button and using new explicit applicable entity defaults to mitigate possible invalid pset templates. 2024-04-16 10:34:30 +02:00
Andrej730 a1bca1bb4a Fixed issue creating slabs in IFC2X3 #3696
Error traceback is below - it was trying to set IfcExtrudedAreaSolid.Position to None when in IFC2x3 Position wasn't optional, so now in IFC2X3 it's going to have some default position

RuntimeError: Error: Python: Traceback (most recent call last):
  File "\bim\module\model\product.py", line 123, in execute
    return IfcStore.execute_ifc_operator(self, context)
  File "\bim\ifc.py", line 336, in execute_ifc_operator
    result = getattr(operator, "_execute")(context)
  File "\bim\module\model\product.py", line 148, in _execute
    if self.generate_layered_element(ifc_class, relating_type):
  File "\bim\module\model\product.py", line 274, in generate_layered_element
    obj = slab.DumbSlabGenerator(relating_type).generate()
  File "\bim\module\model\slab.py", line 143, in generate
    return self.derive_from_cursor()
  File "\bim\module\model\slab.py", line 147, in derive_from_cursor
    return self.create_slab()
  File "\bim\module\model\slab.py", line 179, in create_slab
    representation = ifcopenshell.api.run(
  File "\libs\site\packages\ifcopenshell\api\__init__.py", line 66, in run
    result = usecase_class(ifc_file, **settings).execute()
  File "\libs\site\packages\ifcopenshell\api\geometry\add_slab_representation.py", line 42, in execute
    [self.create_item()],
  File "\libs\site\packages\ifcopenshell\api\geometry\add_slab_representation.py", line 58, in create_item
    extrusion = self.file.createIfcExtrudedAreaSolid(
  File "\libs\site\packages\ifcopenshell\file.py", line 337, in create_entity
    e[idx] = arg
  File "\libs\site\packages\ifcopenshell\entity_instance.py", line 260, in __setitem__
    self.wrapped_data.setArgumentAsNull(idx)
  File "\libs\site\packages\ifcopenshell\ifcopenshell_wrapper.py", line 4929, in setArgumentAsNull
    return _ifcopenshell_wrapper.entity_instance_setArgumentAsNull(self, i)
RuntimeError: Attribute not set
2024-04-16 10:34:29 +02:00
Dion Moult 59c8326c51 See #3682. You can now add symbols and multisymbols (i.e. one vertex per symbol) annotations. New default symbols for setout points in demo library. 2024-04-16 10:30:32 +02:00
Sigma Dimensions (Yass) a29ae07b72 updating a duration will not auto update schedule usage 2024-04-16 10:25:01 +02:00
Sigma Dimensions (Yass) b27262f81f Resource Features :
- Adding/removing and edit productivity data is now easier (+ cleaner UI)
- Pressing calculate schedule work on a parent resource will default to calculating its nested resources schedule work.
- Show derived Schedule Work for a parent resource
- Improve apperance of Resource Tree Structure
2024-04-16 10:25:01 +02:00
Dion Moult 1c016c4212 See #3581. Fix failing IOS tests. 2024-04-16 10:25:01 +02:00
Sigma Dimensions (Yass) ed58072d64 run black 2024-04-16 10:25:01 +02:00
Sigma Dimensions (Yass) 39d072d0ca Calculates the number of resources based on required person-hours. 2024-04-16 10:25:00 +02:00
Sigma Dimensions (Yass) 53a43442fe implement calculating task duration based on resource usage change for fixed person-hours and prevent constrained attributes from updating 2024-04-16 10:25:00 +02:00
Sigma Dimensions (Yass) 2e4e2c3173 improve purge of remove_metric usecase 2024-04-16 10:24:59 +02:00
Sigma Dimensions (Yass) 2be46970fe api usecase to add a reference path to a metric objective 2024-04-16 10:24:59 +02:00
Sigma Dimensions (Yass) 8b43767a6f fix updating an objective's metric 2024-04-16 10:24:59 +02:00
Sigma Dimensions (Yass) c16d8a39e9 ligten up add cost schedule UI 2024-04-16 10:24:58 +02:00
Dion Moult 7f34c54327 Close #3615. Follow (terrible, unofficial) convention that boolean result is intentional and boolean clipping result is automated. 2024-04-16 10:24:58 +02:00
Dion Moult f51f2a0e8c Fix #3614. Remove_pset API now supports removing predefined property sets (E.g. door lining properties). 2024-04-16 10:24:58 +02:00
Dion Moult 861659c212 Fix #3605. Bug where invalid representation type was created when booleans are added / removed. 2024-04-16 10:24:58 +02:00
Dion Moult 539cd047a2 Minor fix to allow edit_work_time to work seamlessly for IFC4X3. 2024-04-16 10:24:58 +02:00
Andrej730 c2013a172f geometry.edit_object_placement was producing orphaned placements
It was producing orphaned IfcLocalPlacement if placement was parent to some other one. During edit_object_placement we were replacing all parent references with the new placement but wasn't removing the old one.
2024-04-16 10:24:57 +02:00
Andrej730 69daaff3e1 misspelling 😅 2024-04-16 10:24:57 +02:00
Andrej730 4fe03230c5 root.copy_class to remove connections from previously connected ports 2024-04-16 10:24:55 +02:00
Andrej730 ce91e04166 Remove empty IfcDocumentInformationRelationship #3581 2024-04-16 10:24:55 +02:00
Sigma Dimensions (Yass) 02d09a3ab0 woopsies 2024-04-16 10:24:55 +02:00
Sigma Dimensions (Yass) 79a66c47f2 fix the bug fix #07b5c49 - where counting objects controlled by a cost item stopped working 2024-04-16 10:24:55 +02:00
Bruno Postle 6234adf451 fix SyntaxError: '(' was never closed 2024-04-16 10:24:55 +02:00
Sigma Dimensions (Yass) 820d2f8a9d fix api logic where only quantities of the same type can be assignmed to a cost control 2024-04-16 10:24:55 +02:00
Sigma Dimensions (Yass) b92bbf1672 fix orphaned data when unassigning element quantities from cost item control 2024-04-16 10:24:55 +02:00
Sigma Dimensions (Yass) 8dbdfa2301 WIP - Scheduling UI improvements 2024-04-16 10:24:54 +02:00
Andrej730 040cd398cf remove_product to also remove psets for types 2024-04-16 10:24:53 +02:00
Dion Moult 9b2455e0f0 Fix #2753. Disable mapping representations when appending assets via the ExtractElements recipe to be more forgiving (and faster) on invalid models. 2024-04-16 10:22:47 +02:00
Dion Moult 73b93e7020 Fix #3547. Bug where using existing clippings were not preserved when editing profile or wall representations. 2024-04-16 10:22:47 +02:00
arun bd1bfe548a Update create_2pt_wall.py (#3553)
* Update create_2pt_wall.py

included unit scale for use cases other than si unit

* Revised Update create_2pt_wall.py

included is_si kwarg to select between si units and other units and also changed the dtype of p1 and p2 array to float incase they are entered as integers
2024-04-16 10:22:46 +02:00
Andrej730 1a88191173 remove_product to remove object placement too
previously it wasn't deleting object placement when you removed the objects (and related elements like IfcDirections etc) and working on project long enough you might had a bunch of orphaned data in it
2024-04-16 10:10:51 +02:00
Andrej730 25ec0ee36c root.remove_product to remove IfcRelConnectsPorts too
previously if you deleted some flow segment that was connected to another the connection would stay resulting in invalid ifc and other bugs
2024-04-16 10:10:51 +02:00
Andrej730 81dc68d11d Fixed #3262 2024-04-16 10:10:50 +02:00
Massimo Fabbro 44517f3b1d Add new api function that allows to create arbitrary profiles with voids (#3522) 2024-04-16 10:10:50 +02:00
Dion Moult 84c91518b5 Fix #2906. Basic support added for perspective drawings. 2024-04-16 10:10:50 +02:00
Dion Moult 1e8662f079 Fix #3497. Set closed vs unclosed polygonal face sets to allow loading in some IFC software. 2024-04-16 10:05:51 +02:00
Andrej730 f6307520e9 Support looped railings #3415
Example - https://imgur.com/a/RaLORbk
2024-04-16 10:05:50 +02:00
Dion Moult 9c5096ea1d Write docs describing how to create profile representations 2024-04-16 10:05:49 +02:00
Dion Moult e0fffbfdfe New geometry.create_2pt_wall API function to create a wall-like representation from two points. 2024-04-16 10:05:49 +02:00
Dion Moult 7a7c38db5b Rename sverchok representation to mesh representation 2024-04-16 10:05:49 +02:00
Andrej730 d42aa7d8cb root.remove_product fix 2024-04-16 10:05:48 +02:00
Andrej730 38dd5a218c root.copy_class to support copying ports in ifc2x3 2024-04-16 10:05:48 +02:00
Andrej730 661441b231 remove_product to remove IfcRelConnectsElements 2024-04-16 10:05:48 +02:00
Dion Moult dc9b11832b Fix #3425. Fix invalid IFC data where grid axes should be 2D not 3D. 2024-04-16 10:05:46 +02:00
luzpaz 1819a45e4c Fix various typos in src/ifcgeom* subdirs 2024-04-16 10:05:04 +02:00
Andrej730 bd70f7bf7f add_representation - detect non consequtive curves and handle them
Basically if current mesh curve is non consequtive we handle it in similar way to b03c4da7b - convert it to curves using Blender and then save them to ifc.

The advantage is that it creates less curves in ifc because mesh method wasn't able to detect separate curves correctly if vertex order was messed up (usually it is) and it would create separate curve for each curve segment.

I've also replaced figuring vertex duplicates with `bmesh.ops.remove_doubles` manually with `bmesh.ops.remove_doubles` and it's now much faster. In some cases because of the manual calculations it was taking too long - in #3233 Ryan mentiones that it freezes blender, it wasn't really freezing Blender but to finish calculations it would take 10 minutes.
2024-04-15 13:30:40 +02:00
Andrej730 33d3afc35d experimental support for spline curves representation #3233
there is still no full support but as a workaround I've added blender converting curves to meshes and back to curves so we could preserve the actual shapes

before - https://i.imgur.com/9F542Iy.png
after - https://i.imgur.com/t58RlkF.png
2024-04-15 13:30:40 +02:00