Commit Graph

8232 Commits

Author SHA1 Message Date
Andrej730 fe99b59209 Fixed bug using tab editing arbitrary profile
It was assuming we were editing extrusion profile and therefore was giving errors.
2024-04-16 10:37:15 +02:00
Dion Moult 34e4ecb8a4 Include buildingSMART psets in IfcFM Basic preset 2024-04-16 10:37:15 +02:00
Dion Moult c1bb3e482e Minor fix 2024-04-16 10:37:15 +02:00
Dion Moult e03a4bab23 More minor fixes to IfcFM basic preset 2024-04-16 10:37:15 +02:00
Dion Moult b0f1c4d684 Minor fixes to IfcFM 2024-04-16 10:37:15 +02:00
Andrej730 f1184e6182 Revert "Replace currently selected objects with occurences of type"
This reverts commit 58199ef7c9.
2024-04-16 10:37:15 +02:00
Andrej730 4b48b30c3b bends - consider profile dimensions searching for compatible fitting
So basically now it won't reuse a bend fitting created for the same profile but with different dimension.
2024-04-16 10:37:15 +02:00
Andrej730 37eb1751b4 bends - adjusting compatible fitting rotation to match the segments
Demo - https://imgur.com/a/cYdWy9X (note that no bend types created in the process - it's just adjusting the type created for the first two segments).
2024-04-16 10:37:15 +02:00
Andrej730 14aa32b04a Replace currently selected objects with occurences of type
Added operator to replace currently selected objects with occurences of the chosen type. I kept doing this from the code and thought it could be generally useful.

It's working pretty naive now and just replacing objects with occurences preserving the original transform (location/rotation/scale), nothing else is preserved.

Demo - https://imgur.com/a/qm8a6Ns

PS Hopefully I'm not reinventing the wheel and not missed some other similar operator
2024-04-16 10:37:15 +02:00
Andrej730 fc2aa41717 bends - considering parametric data searching for compatible fitting 2024-04-16 10:37:15 +02:00
Thomas Krijnen 42da8aba83 Correct xsi:schemaLocation 2024-04-16 10:37:15 +02:00
Thomas Krijnen 79c8594f8f Update IDS.xsd 2024-04-16 10:37:15 +02:00
Dion Moult e04b69717b New FM module in BlenderBIM Add-on for interacting with IfcFM. 2024-04-16 10:37:15 +02:00
Dion Moult 4eaf9c689d Implement COBie documents and attributes 2024-04-16 10:37:15 +02:00
Andrej730 5715a14b17 bends - use IfcArcIndex to define bends curves
instead of manually generating polylines of segments
2024-04-16 10:37:15 +02:00
Andrej730 e7b6fad348 bends - support for start and end segments 2024-04-16 10:37:15 +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
Andrej730 5180f40245 MEP bends - support for circular profiles
Demo - https://imgur.com/a/XQBOvGz
2024-04-16 10:37:15 +02:00
Dion Moult b25fae8ca8 Don't strip selector query keys to allow for explicit "mistakes" in key names. 2024-04-16 10:37:15 +02:00
Dion Moult 728714dae3 Minor fix in IfcCSV where strings didn't get auto quoted. 2024-04-16 10:37:15 +02:00
Dion Moult d27e0bdf10 New util.system.get_port_element function. 2024-04-16 10:37:15 +02:00
Dion Moult cc1a2db3ff Allow optional second arguments to substr formatting. 2024-04-16 10:37:15 +02:00
Dion Moult cb264bac6e Implement COBie assemblies, connections, spares, resources, and jobs. 2024-04-16 10:37:15 +02:00
Dion Moult 8976cf5c52 Implement COBie systems 2024-04-16 10:34:30 +02:00
Andrej730 afeca7d598 Fixed top and center alignment in the schedule
Solves #3599

Before - https://i.imgur.com/9s7MxH5.png
After - https://i.imgur.com/ojDj09G.png
Inkscape - https://i.imgur.com/pWF4Ouy.png
2024-04-16 10:34:30 +02:00
Andrej730 315e8a436a MEP bends - more robust start/end points detection
also support for bends with angles > 90 degrees and some other bugs fixed
2024-04-16 10:34:30 +02:00
Dion Moult 3b070b755a Implement COBie type and component tables 2024-04-16 10:34:30 +02:00
Dion Moult 2474b238a8 Deprecate purge_module_data in favour of newer refresh_ui_data function. 2024-04-16 10:34:30 +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
Dion Moult d39df4a933 Minor UI bugfix where pset template files sometimes displayed with truncated filenames 2024-04-16 10:34:30 +02:00
Dion Moult 607e367448 Fix bug where you couldn't add psets that were inherited. 2024-04-16 10:34:30 +02:00
Dion Moult 61475d0846 Implement COBie zones 2024-04-16 10:34:30 +02:00
Andrej730 12c1d7991a Spatial Manager - try to preserve the selection on loading the manager
Also noticed in Sigma Dimensions video that every time user deletes a storey or applies new elevation the selection was jumping to the first storey. Now it's going to be more natural.

Before - https://imgur.com/a/gbn7ryQ
After - https://imgur.com/a/QX2RulF
2024-04-16 10:34:30 +02:00
Andrej730 6700270600 Units formatting for Spatial Manager
Noticed in Sigma Dimensions video that we have some floating point garbage displayed in the Spatial Manager UI and I've added some simple formatting.

Now - https://i.imgur.com/eM1rDDu.png
Before - https://i.imgur.com/ySln5uU.png
2024-04-16 10:34:29 +02:00
Dion Moult c9c449978d Reimplement IfcCOBie contacts, facilities, floors, and spaces in IfcFM. 2024-04-16 10:34:29 +02:00
Andrej730 602ec57cba Considering parametric data for fitting #3695
Search for compatible fitting wasn't taking into account that maybe fitting used for the same segments but fitting's parameters are not the same (such as start_length, end_length, angle and offset between profiles).

I also forgot to promote transition angle to operator's property😬
2024-04-16 10:34:29 +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
Andrej730 08ace6616c automatically adjust viewport camera on loading ifc
It will make sure you'll be able to see the project's elements in viewport when it's loaded (same way as if you'd select all objects and hit "Numpad .").

Couldn't find any way to make it work without enablging / disabling selection - https://projects.blender.org/blender/blender/issues/112141
2024-04-16 10:34:29 +02:00
Andrej730 b5c80ebaab Fixed issue using mitre with small angles between walls (#3721)
Normalization is unrelated, just added to be safe.
2024-04-16 10:34:29 +02:00
Andrej730 ee4568b7d2 some DumbWallJoiner.join() refactor 2024-04-16 10:34:29 +02:00
Dion Moult 271161f00f Minor fix after 6887210 2024-04-16 10:34:29 +02:00
Dion Moult 01c1023af2 Fix bug when casting to tessellation for invalid IFCs which don't use material sets properly. 2024-04-16 10:34:29 +02:00
Dion Moult 1a59b4913e IfcFM now uses Openpyxl and supports xlsx. Reorder columns to be more logical and group similar data types together (at least for me). 2024-04-16 10:34:29 +02:00
Dion Moult 2762d9c47f Fix #3733. Fix round function precision error. 2024-04-16 10:34:29 +02:00
Dion Moult 5edc6c4d8a Enable Sphinx auto section labels. Minor doc link fix. 2024-04-16 10:34:29 +02:00
Dion Moult 073491a78a For convenience, rounding to an integer value now also casts to integer. 2024-04-16 10:34:29 +02:00
Ryan Schultz fa08d9d01e Update installation.rst 2024-04-16 10:34:29 +02:00
Dion Moult a405b36167 ResetAbsoluteCoordinates IfcPatch recipe can now choose whether to reset placements, geometry, or both points. 2024-04-16 10:34:29 +02:00
Dion Moult 678dce8fc0 Fix bug where unedited mesh objects were still tagged as edited which led to unnecessary processing prior to drawing generation or saving. 2024-04-16 10:34:29 +02:00