Bruno Perdigão
04172a87cb
when bpy.ops.bim.object_duplicate_move_linked_aggregate is called from the panel, the new objects are placed based on the 3d cursor position
2024-04-30 17:50:31 -03:00
Bruno Perdigão
97e0c43702
Merge pull request #4440 from brunoperdigao/fix-normal-duplication-of-linked-aggregate
...
Fix normal duplication of linked aggregate
blenderbim-240430
2024-04-30 17:01:44 -03:00
Andrej730
8dde98f543
fix #4592 (after 0da3270)
...
Before IFC4 Shape Aspects counldn't be part of IfcRepresentationMap
blenderbim-240429
2024-04-29 15:22:26 +05:00
Ryan Schultz
9962a0c905
small fix to previous commit. Solves https://github.com/IfcOpenShell/IfcOpenShell/commit/4b56b341243d6b0eed82e8533848b124e82e1344#commitcomment-141442796
2024-04-28 18:57:42 -05:00
Ryan Schultz
4b56b34124
Tweaked UI for Linked Aggregates https://imgur.com/a/rExISKO
blenderbim-240428
2024-04-28 10:34:52 -05:00
Thomas Krijnen
f857c513c5
submodule
2024-04-28 10:17:57 +02:00
Kaare Hansen
41df6410bd
Comment std::cout causing console spam
2024-04-28 10:11:32 +02:00
Ryan Schultz
dcbd6a925d
small fix for #4361 . remove IfcProject for class iterator. See https://github.com/IfcOpenShell/IfcOpenShell/issues/4361#issuecomment-2081223615
2024-04-27 18:13:38 -05:00
Ryan Schultz
3848a21136
fix #4361 : Have the aggregate empty turn on too, if at least one object in the aggregate, is turned on as well
2024-04-27 11:31:39 -05:00
Andrej730
8af37cb4ec
Fix #4586 occurred after e14d96e6e
2024-04-27 12:03:56 +05:00
Ryan Schultz
44c28e9a4c
fix #4327 : reorder format as well
2024-04-26 20:48:59 -05:00
Ryan Schultz
677324927c
fix #4431 : prompt for name, when creating aggregate
blenderbim-240427
2024-04-26 20:09:20 -05:00
Massimo Fabbro
d212344c54
Covering tool more user friendly UI ...
2024-04-26 17:19:28 +02:00
Massimo Fabbro
74da327803
Fix create space from cursor bug where spaces were created always in zero elevation
2024-04-26 17:19:28 +02:00
Massimo Fabbro
f021041b31
Remove the (maybe) unnecessary poll functions for spatial tool and cleaner error messages
2024-04-26 17:19:28 +02:00
Massimo Fabbro
c05d2df116
now spaces created with spatial tool have relative zero elevation origin point
2024-04-26 17:19:28 +02:00
Andrej730
2b926f7906
more descriptive error setting non-optional attributes with None
...
Example:
```
import ifcopenshell
import ifcopenshell.api.owner.settings
ifc_file = ifcopenshell.file(schema="IFC2X3")
ifc_file.createIfcOwnerHistory(OwningUser=None)
# Before:
# Traceback (most recent call last):
# File "\test.py", line 16, in <module>
# ifcopenshell.api.run("owner.create_owner_history", ifc_file)
# File "\ifcopenshell\api\__init__.py", line 172, in run
# result = usecase_class(ifc_file, **settings).execute()
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# File "\ifcopenshell\api\owner\create_owner_history.py", line 111, in execute
# return self.file.create_entity(
# ^^^^^^^^^^^^^^^^^^^^^^^^
# File "\ifcopenshell\file.py", line 350, in create_entity
# e[idx] = arg
# ~^^^^^
# File "\ifcopenshell\entity_instance.py", line 305, in __setitem__
# self.wrapped_data.setArgumentAsNull(idx)
# File "\ifcopenshell\ifcopenshell_wrapper.py", line 5285, in setArgumentAsNull
# return _ifcopenshell_wrapper.entity_instance_setArgumentAsNull(self, i)
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# RuntimeError: Attribute not set
# After:
# Traceback (most recent call last):
# File "\test.py", line 16, in <module>
# ifcopenshell.api.run("owner.create_owner_history", ifc_file)
# File "\ifcopenshell\api\__init__.py", line 172, in run
# result = usecase_class(ifc_file, **settings).execute()
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# File "\ifcopenshell\api\owner\create_owner_history.py", line 111, in execute
# return self.file.create_entity(
# ^^^^^^^^^^^^^^^^^^^^^^^^
# File "\ifcopenshell\file.py", line 350, in create_entity
# e[idx] = arg
# ~^^^^^
# File "\ifcopenshell\entity_instance.py", line 316, in __setitem__
# raise ValueError(
# ValueError: attribute 'OwningUser' is not optional for entity instance of type 'IFC2X3.IfcOwnerHistory'
```
2024-04-26 18:23:19 +05:00
Andrej730
3ac69043d6
bbim to provide default user and organisation in ifc2x3 #4574
...
previously every operation that would try to create owner history would fail with the error below if there wasn't IfcPersonAndOrganisation in the project.
2024-04-26 18:23:19 +05:00
Andrej730
f726708815
edit_object_placement - small optimizations
2024-04-26 18:23:19 +05:00
Andrej730
21e153087a
edit_object_placement - adherence support
...
Update edit_object_placement.py
2024-04-26 18:23:18 +05:00
Andrej730
31d85b715a
typing
2024-04-26 18:23:18 +05:00
Andrej730
344cc1fb7d
file.by_type docs note
2024-04-26 11:49:44 +05:00
Andrej730
1cea3d21e8
BBIM support importing IfcRelAdheresToElement #4565
blenderbim-240426
2024-04-26 11:44:32 +05:00
Andrej730
640320f70d
shape_builder - create non-optional position for profiles in ifc2x3
2024-04-25 18:05:47 +05:00
Andrej730
29352092aa
fix issue creating 3d location for 2d placement in ifc2x3
2024-04-25 18:05:47 +05:00
Andrej730
5b877b549a
fix numpy typing #4579
...
On older numpy versions, np.ndarray was less forgiving and wasn't allowing passing 1 argument instead of required 2.
And turned out numpy doesn't yet have typing for shapes (https://github.com/numpy/numpy/issues/16544 ), so all matrices and other shapes specified as `npt.NDArray[np.float64]`.
Fixed type discrepancies for `get_edges` and `get_faces` and also had to fix `import_ifc` as Blender apparently has problems with storing np.int32 in custom attributes (https://projects.blender.org/blender/blender/issues/121072 ), tested that Blender is okay with np.int32 in other cases we had (addressing BMesh.verts[i] where `i` is np.int32).
2024-04-25 18:05:47 +05:00
Andrej730
721466c429
typing
2024-04-25 18:05:47 +05:00
Andrej730
cce2fee1fa
More descriptive error setting non-present attributes
...
Example:
```
import ifcopenshell
ifc_file = ifcopenshell.file(schema="IFC2X3")
# ifc_file.begin_transaction()
wall = ifc_file.createIfcWall()
wall.Identification = "25"
# Before:
# Traceback (most recent call last):
# File "test.py", line 4, in <module>
# wall.Identification = "25"
# ^^^^^^^^^^^^^^^^^^^
# File "\ifcopenshell\entity_instance.py", line 279, in __setattr__
# self[index] = value
# ~~~~^^^^^^^
# File "\ifcopenshell\entity_instance.py", line 293, in __setitem__
# method = self.method_list[idx]
# ~~~~~~~~~~~~~~~~^^^^^
# IndexError: list index out of range
# or this (if file had a transaction going)
# File "\ifcopenshell\entity_instance.py", line 279, in __setattr__
# self[index] = value
# ~~~~^^^^^^^
# File "\ifcopenshell\entity_instance.py", line 288, in __setitem__
# self.wrapped_data.file.transaction.store_edit(self, idx, value)
# File "\ifcopenshell\file.py", line 101, in store_edit
# "old": self.serialise_value(element, element[index]),
# ~~~~~~~^^^^^^^
# File "\ifcopenshell\entity_instance.py", line 283, in __getitem__
# raise IndexError("Attribute index {} out of range for instance of type {}".format(key, self.is_a()))
# IndexError: Attribute index 4294967295 out of range for instance of type IfcWall
# After:
# Traceback (most recent call last):
# File "test.py", line 4, in <module>
# wall.Identification = "25"
# ^^^^^^^^^^^^^^^^^^^
# File "ifcopenshell\entity_instance.py", line 283, in __setattr__
# raise AttributeError(
# AttributeError: entity instance of type 'IFC2X3.IfcWall' has no attribute 'Identification'
```
2024-04-25 18:05:47 +05:00
Andrej730
087d55f02a
fix editing sheets in ifc2x3 #4576
2024-04-25 18:05:47 +05:00
Andrej730
f1037de14d
small fix for 60a70f523
2024-04-25 18:05:46 +05:00
Ryan Schultz
4711672170
small tweak to 3ff31b577c and cd013079f4 - duplicate material and duplicate style have '_copy' suffix.
blenderbim-240425
2024-04-24 21:48:26 -05:00
Bruno Postle
c0b4e099af
fix sheet regeneration missing drawing Identifier
...
Was passing LAYOUT document reference to sheeter instead of
DRAWING document reference
2024-04-24 23:05:44 +01:00
Andrej730
f41fbf24c3
small fix for e14d96e6e
2024-04-24 18:19:20 +05:00
Andrej730
e14d96e6ee
Use .Name instead of .Description if IFC2X3 for sheets #4576
...
As Description was added only in IFC4
2024-04-24 18:17:37 +05:00
Andrej730
716a33f347
convert_file_length_units - fix issue converting to imperial units
...
ifcpatch ConvertLengthUnit - change used units from plural to singular names, to make it consistent across the api
more test coverage - test converting to more units and back from them
blenderbim-240424
2024-04-24 15:15:30 +05:00
Andrej730
c5f084a4af
ConvertLengthUnit test
2024-04-24 14:12:13 +05:00
Andrej730
606a0b46f2
MergeProject - support merging projects with different units
2024-04-24 14:12:13 +05:00
Andrej730
1c729a74d1
util.unit to support converting aggregate of aggregates
2024-04-24 14:12:13 +05:00
Andrej730
db31574103
typing
2024-04-24 14:12:13 +05:00
stefkeB
d03b47e1e6
Fix HDF5 conditional inclusion in GeomTree
...
IfcGeomTree uses HDF5, but this is an optional module, so we have to wrap it with #ifdef WITH_HDF5
2024-04-23 18:46:10 +02:00
Ryan Schultz
ae62ac2777
small tweak to b8a9674483 - duplicate profile has '_copy' suffix.
2024-04-23 07:42:02 -05:00
Andrej730
998f9c6a1e
make styles ui more similar to profiles and materials ui
...
before - https://i.imgur.com/bTbyt2t.png
after - https://i.imgur.com/U53h8Yh.png
blenderbim-240423
2024-04-23 16:39:49 +05:00
Andrej730
3ff31b577c
bim.duplicate_style
2024-04-23 16:39:49 +05:00
Andrej730
cd013079f4
bim.duplicate_material
2024-04-23 16:39:49 +05:00
Andrej730
b8a9674483
bim.duplicate_profile
...
simple operator for profile duplication
example - https://imgur.com/a/dsP78iV
2024-04-23 16:39:49 +05:00
Andrej730
8beb1bef98
preserve selected profile index removing profiles
2024-04-23 16:39:38 +05:00
Andrej730
377676f881
dev environment - add libs/desktop and bsdd
2024-04-23 15:23:16 +05:00
Andrej730
4efe284338
use IFC4X3_ADD2 for ifcopenshell.schema_by_name
...
as it is the main IFC4X3 schema
blenderbim-240422
2024-04-22 17:30:25 +05:00
Andrej730
34a4e3f37a
util.doc - use release schema version for IFC4X3
...
As it will be more like to be available in the ifcopenshell package. Related to #4565
2024-04-22 17:30:25 +05:00
Andrej730
889c9a9e9f
typing
2024-04-22 17:30:25 +05:00