Commit Graph

709 Commits

Author SHA1 Message Date
Andrej730 944f8695c7 root.remove_product to remove IfcRelFlowControlElements 2024-04-16 11:05:25 +02:00
Andrej730 72b3f1e967 api for assigning/unassigning flow controls #3981 2024-04-16 11:05:25 +02:00
Andrej730 1bb5a14b65 Fixed typo in control.assign_control, added tests 2024-04-16 11:05:25 +02:00
Dion Moult 142968559d Minor fix 2024-04-16 11:05:24 +02:00
Dion Moult 7f1a500445 Fix #3957. Fix bug where shared properties were not edited independently. 2024-04-16 11:05:24 +02:00
Dion Moult 2bd7ce5996 Fix #3958. Bug where reassigning type class would incorrectly assign occurrence classes. 2024-04-16 11:05:24 +02:00
Dion Moult f9236f8b42 You can now assign and unassign styles to materials 2024-04-16 11:04:29 +02:00
Andrej730 6a7f8f65c7 move to tools methods for working with manual booleans #3709
Also fixed a bug adding boolean when pset is already added and representation type in add_boolean

```
  File "\addons\blenderbim\tool\ifc.py", line 201, in execute
    IfcStore.execute_ifc_operator(self, context)
  File "\addons\blenderbim\bim\ifc.py", line 336, in execute_ifc_operator
    result = getattr(operator, "_execute")(context)
  File "\addons\blenderbim\bim\module\model\opening.py", line 534, in _execute
    data = json.loads(pset["Data"])
  File "\addons\blenderbim\libs\site\packages\ifcopenshell\entity_instance.py", line 248, in __getitem__
    if key < 0 or key >= len(self):
TypeError: '<' not supported between instances of 'str' and 'int'
```
2024-04-16 11:04:28 +02:00
Andrej730 f8a2946355 Support other voiding IfcFeatureElementSubtraction elements #3889
Support other voiding IfcFeatureElementSubtraction besides IfcOpeningElement.
2024-04-16 11:03:55 +02:00
Andrej730 4cf6d65e1a Fixed issue after 19345ff
It wasn't considering that EnumerationReference could be None
2024-04-16 11:03:55 +02:00
Andrej730 e1b64fba00 Keep placement axes recalculating profiles #3879 2024-04-16 10:56:22 +02:00
Andrej730 e2077c27dd small fix add_profile_representation - use of undefined variables 2024-04-16 10:56:22 +02:00
Dion Moult 00239234ff Manual booleans are now tracked via a Pset instead of arbitrary class conventions which should fix a bunch of issues. 2024-04-16 10:55:57 +02:00
Andrej730 739b793cd7 test for model.get_manual_booleans() #3709
added test that model.get_manual_booleans will ignore IfcBooleanClippings until we find some other solution to distinguish automatic and manual clippings. And some refactor along the way.
2024-04-16 10:55:56 +02:00
taylor c88b3a3ad8 Fixed model reference 2024-04-16 10:55:56 +02:00
Andrej730 984dca6408 Fixed #3832 2024-04-16 10:37:19 +02:00
Sigma Dimensions (Yass) 6b25a64976 fix typo 2024-04-16 10:37:18 +02:00
Sigma Dimensions (Yass) e9ed850b78 Proposal to use resource's parent cost, reducing manual insertions 2024-04-16 10:37:17 +02:00
Andrej730 1ae1e4c4f9 fixed error in api.system.disconnect_port
Error was:
TypeError: can only concatenate tuple (not "list") to tuple
2024-04-16 10:37:17 +02:00
Sigma Dimensions (Yass) f79e6ada9b cascade schedule when adding a sequence relationship 2024-04-16 10:37:16 +02:00
Sigma Dimensions (Yass) 8549debdc9 fix calculating critical path to consider:
- parent tasks with sequence assignments #3772
- tasks that are constrained by a schedule start
2024-04-16 10:37:16 +02:00
Sigma Dimensions (Yass) 46c775c585 fix cascading schedule when parent tasks have sequence relationships #3772 2024-04-16 10:37:16 +02:00
Sigma Dimensions (Yass) 145f601a2e purge cost schedules 2024-04-16 10:37:16 +02:00
Andrej730 34a881da3a Remove orphaned IfcPropertyEnumeration
Noticed a couple hundreds of orphaned IfcPropertyEnumeration in my .ifc like below 😁

IFCPROPERTYENUMERATION('Status',(IFCLABEL('NEW'),IFCLABEL('EXISTING'),IFCLABEL('DEMOLISH'),IFCLABEL('TEMPORARY'),IFCLABEL('OTHER'),IFCLABEL('NOTKNOWN'),IFCLABEL('UNSET')),$);
2024-04-16 10:37:16 +02:00
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