Commit Graph

1413 Commits

Author SHA1 Message Date
Andrej730 0cc337fa88 fixed issue adding bend between segments located at the same point
also added some tests
2024-04-16 11:05:26 +02:00
VDobranov 8dfd122430 Update reference_structure.py
A mistype in docs: should be IfcRelReferencedInSpatialStructure instead of IfcRelContainedInSpatialStructure
2024-04-16 11:05:26 +02:00
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
ceegartner 4336b9c1ae Update unit.py - convert function, case issue
Hi,
I noticed an issue and suggest a fix:
Unit names from <si_conversions> are all lowercase, whereas project units extracted from the IFC files with <get_project_unit(...).Name> are uppercase. So the convert function didn't seem to work properly.
Hope this helps!
2024-04-16 11:05:24 +02:00
Dion Moult 9571146065 Fix #3951. mats selector now supports IfcMaterialList. 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 f4f227ffe7 Fix regressions in mapped native swept disk handling 2024-04-16 11:05:24 +02:00
Ryan Schultz bb5fccf6fe More IFC class suggestions 2024-04-16 11:05:23 +02:00
Dion Moult cd5b54e240 Disable batching for removal as it doesn't seem to help mostly from experience. Still testing. 2024-04-16 11:05:23 +02:00
Dion Moult b07f7bcc58 get_footprint_area now unions 2D polygons to prevent double counting 2024-04-16 11:05:23 +02:00
Andrej730 1647acf0ca ifc2x3 pset library - fix bunch of unit related vlaidation errors #3929 2024-04-16 11:05:23 +02:00
Sigma Dimensions (Yass) aa0d1cc230 fix displaying undefined or userdefined units in cost schedules 2024-04-16 11:05:23 +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 6f42c71e88 New verbose option in util get_pset(s) which lets you get ID and class for complex processing. 2024-04-16 10:56:22 +02:00
Dion Moult 587c9858a7 Minor fixes to placement utilities for getting mapped item matrixes 2024-04-16 10:56:22 +02:00
Dion Moult 648d6dfdb9 Representation items panel now shows styles and layers 2024-04-16 10:55:58 +02:00
Thomas Krijnen 3d13b6468d Use schema_identifier for schema and express rule validation. See #3126 2024-04-16 10:55:58 +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
Dion Moult 49e27788da Write documentation for placement utility 2024-04-16 10:55:57 +02:00
Dion Moult 7170d9f06f See #3817. WARNING: fundamental change. Standardise prioritisation of all context permutations when loading occurrences and types. 2024-04-16 10:55:57 +02:00
Dion Moult 83b5494c81 New documentation for shape utility 2024-04-16 10:55:57 +02:00
Dion Moult 9f23f49ecd Implement projected surface area calculation function in util.shape 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
Dion Moult 8119b3199a Document geolocation util and add support for ePSet IFC2X3 fallbacks. 2024-04-16 10:55:56 +02:00
Andrej730 984dca6408 Fixed #3832 2024-04-16 10:37:19 +02:00
Andrej730 1f815619b6 copy_deep to always pass exclude_callback to the recursion
It wasn't passing the exclude_callback if attribute of the copied element wasn't a tuple, resulting in duplicated named profiles in case if you'd copy a IfcBooleanClippingResult #3810

For example, how copy_deep of IfcProductDefinitionShape with boolean clipping previously would work:
V IfcShapeRepresentation - copied with exlude_callback (part of .Representations[])
V IfcBooleanClippingResult - copied with exlude_callback (part of .Items[])
X IfcExtrudedAreaSolid - copied without exlude_callback becuase it's part of .FirstOperand (not an array) and we have IfcIShapeProfileDef duplicated

Case without booleanclippings:
V IfcShapeRepresentation - copied with exlude_callback (part of .Representations[])
V IfcExtrudedAreaSolid - copied with exlude_callback, since it's part of .Items[], IfcIShapeProfileDef not duplicated
2024-04-16 10:37:19 +02:00
Dion Moult 30495f2688 You can now interact with IfcFM via CLI 2024-04-16 10:37:18 +02:00
Sigma Dimensions (Yass) 070439fa07 run black and forgotten calender utils 2024-04-16 10:37:18 +02:00
Sigma Dimensions (Yass) 6b25a64976 fix typo 2024-04-16 10:37:18 +02:00
Dion Moult 9ef5dc9f8e Fix #3791. Add isodate as an optional dependency to ifcopenshell-python. 2024-04-16 10:37:17 +02:00
Sigma Dimensions (Yass) e9ed850b78 Proposal to use resource's parent cost, reducing manual insertions 2024-04-16 10:37:17 +02:00
A. R. S 2691e8a082 Try to get unit from EnumerationReference for IfcPropertyEnumeratedValue 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) a96e7d97ac fix count_working_days when the start and finish are the same same hours 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 ecf3da1d86 fixed bug creating transition shapes
it was accidentally assigning extrusion vector instead of an offset
2024-04-16 10:37:16 +02:00