Dion Moult
7c38705958
Accommodate invalid missing mapped representations and items coming from Tekla (2023)
2025-05-13 13:09:37 +10:00
Thomas Krijnen
ec13294430
python39 compatibility
2025-05-08 08:37:41 +02:00
Andrej730
b0f2785e99
black .
2025-05-06 11:11:07 +05:00
Thomas Krijnen
c6c852c7f6
NB: fix get_cartesiantransformationoperator3d()
2025-05-05 21:47:57 +02:00
Geert Hesselink
d401e4c948
set set/get_description, add view_definitions & tests
2025-05-05 16:18:09 +02:00
Geert Hesselink
cbe8fc1ebd
mvd info to module, add testing, setattr & getattr
2025-05-05 16:18:09 +02:00
Andrej730
c7a29d5604
Fix invalid IfcGrid cartesian points ( 774a770)
...
They were saved as 4d coordinates, not 2d.
2025-04-30 19:36:22 +05:00
Andrej730
5c4f157624
readable_ifc_duration - add doc-string and note
2025-04-21 19:00:25 +05:00
Andrej730
476604202a
typing
2025-04-21 19:00:24 +05:00
Dion Moult
426f1b91f2
See #2783 . Don't show 0 durations for clarity.
2025-04-21 22:59:14 +10:00
Dion Moult
d1b1b08174
See #2783 . Duration parsing no longer uses isodate to remain faithful to formatting.
2025-04-21 22:39:23 +10:00
Andrej730
f8ad05cb54
Use isodate to parse iso durations #2783
...
Related #6585
Co-Authored-By: sboddy <12862430+sboddy@users.noreply.github.com >
2025-04-21 12:45:40 +05:00
Andrej730
ff90396bcf
typing
2025-04-18 19:25:46 +05:00
Andrej730
b59e5b076d
get_pset, get_psets - don't fail on ifc2x3 profile psets and partially handle ifc2x3 material psets #6538
2025-04-14 18:59:47 +05:00
Andrej730
a3c5c0ce43
Fix typo in 64f51d7
2025-03-26 18:49:21 +05:00
Dion Moult
58c7976a5e
See #1227 . Fix regression where new wall system didn't preserve existing dimensions when regenerating geometry for an object that previously didn't have a layerset
2025-03-23 23:55:15 +11:00
Dion Moult
963ba5fc30
See #6404 . See #1227 . Create axis context if it does not exist for walls.
2025-03-21 16:45:29 +11:00
Dion Moult
8e1e0aec79
Fix #6404 . See #1227 . Fix IFC2X3 wall creation with new wall engine.
2025-03-21 16:30:56 +11:00
Andrej730
0abe6329d6
Quantification to consider Pset_ProfileMechanical.MassPerLength #6344
2025-03-17 18:31:58 +05:00
Andrej730
778a839e5f
get_shape_aspects to consider element's type #6374
...
See diagram in https://github.com/IfcOpenShell/IfcOpenShell/issues/5839#issuecomment-2661296683 when IfcShapeAspect assigned to IfcRepresentationMap instead of being assigned to IfcProductDefinitionShape directly.
2025-03-17 16:38:12 +05:00
Andrej730
6cfd15e819
Fix mistake in 64f51d7
2025-03-14 18:19:07 +05:00
Andrej730
2f87029434
Use schema_identifier to get IFC4X3 schema more precisely
2025-03-14 18:19:07 +05:00
Andrej730
9f78d9881e
ifcopenshell.util.shape - use refs to functions in docs
2025-03-14 18:19:06 +05:00
Andrej730
86ebc968e5
ifcopenshell.util.element.get_element_mass_density
...
Move it from Blender qto calculator as this method can be generally useful
2025-03-14 18:19:06 +05:00
Andrej730
0e8810c1f5
typing
2025-03-14 18:19:02 +05:00
Andrej730
edd60a73ca
generate_pset_templates - fix running after ifc4x3 release
...
The error was:
```
Traceback (most recent call last):
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 416, in <module>
templates_generator.parse_ifc4x3_data()
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 94, in parse_ifc4x3_data
self.parse_psets_data("IFC4X3", pset_data_glob, "IFC4X3 Property Set Templates", str(IFC4x3_OUTPUT_PATH))
File "\IfcOpenShell\src\ifcopenshell-python\ifcopenshell\util\generate_pset_templates.py", line 129, in parse_psets_data
schema = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "\ifcopenshell\ifcopenshell_wrapper.py", line 9037, in schema_by_name
return _ifcopenshell_wrapper.schema_by_name(arg1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: No schema named IFC4X3
```
2025-03-13 18:43:19 +05:00
Andrej730
6c04669543
ifc5d - add ifc4x3 base quantities #6325
2025-03-13 18:43:19 +05:00
Andrej730
ece91a94db
util.schema.reassign_class to return early if class already assigned
2025-03-12 18:49:26 +05:00
Andrej730
dbf4a2a5ed
Fix reassign_class on IFC4X3, use ValueError
...
Use ValueError to make it more specific
2025-03-12 18:49:22 +05:00
Andrej730
f6640d3904
typing
2025-03-12 18:49:22 +05:00
Dion Moult
6596f5bc4b
Fix regressions in MEP joins after switching over to numpy from mathutils
2025-03-12 23:05:34 +11:00
Dion Moult
f5a1c4aae3
See #1227 . Reimplement extend walls to slab (or anything with negative Z faces)
...
There are a few differences to the previous implementation:
1. It is no longer recalculated on wall regeneration. The new wall
regeneration is strict to the spec on the rules of rel connects path,
and so this being a "userdefined" connection we only calculate it
explicitly when the user invokes the operator.
2. It uses meshes instead of clipping planes, so you can clip to
strange shapes or gable roofs or whatever. Nice.
2025-03-12 18:05:57 +11:00
Andrej730
a9f7d4ab3b
get_applicable_types in ifc2x3 to prioritize IfcBuildingElementProxyType
...
for occurrence classes without special type.
E.g. previously:
you select IfcSlab and change it to IfcRoof - since there is not IfcRoofType in IFC2X3 it would figure the matching product type is IfcBeamType and change this slab's type element to IfcBeamType. IfcBuildingElementProxyType seems more generic and fitting.
2025-03-11 18:37:24 +05:00
Andrej730
64f51d733e
Fixed version of f3f7939c8b + get_element_zones
2025-03-11 18:37:23 +05:00
Andrej730
ed0b1c5009
typing
2025-03-11 18:37:22 +05:00
Dion Moult
570513b60b
Revert "util.get_element_systems to consider all kinds of ifcsystems"
...
This reverts commit f3f7939c8b .
2025-03-11 09:13:48 +11:00
Andrej730
f3f7939c8b
util.get_element_systems to consider all kinds of ifcsystems
2025-03-10 18:52:39 +05:00
Dion Moult
823f27cd6a
Add tests for new element add feature
2025-03-10 22:53:55 +11:00
Dion Moult
1259607a9f
See #1227 . Fix slicing normal calculation for AXIS3 elements.
2025-03-10 18:10:05 +11:00
Dion Moult
01ec750814
See #1227 . New connect wall API function since this can be done generically.
...
This will supersede the butt/mitre join functions we used to have.
2025-03-08 11:25:07 +11:00
Andrej730
71a7d0c086
Fix missing IfcDistributionCircuit and IfcElectricalCircuit #6202
...
When checking if element is assignable to the system.
2025-03-07 17:12:59 +05:00
Andrej730
eb0d3c38b2
ifcopenshell.util - make ifc_file argument optional if it can be deduced from ifc element
2025-03-07 17:12:59 +05:00
Dion Moult
7dee888ecf
See #1227 . New util function in shape builder to do an X axis intersection.
2025-03-07 19:00:18 +11:00
Andrej730
79940641b2
typing
2025-03-06 18:43:54 +05:00
Andrej730
7458040949
Fix ifcpatch unit conversion for lists of ifc entities #6280
2025-03-06 16:14:02 +05:00
Andrej730
53a3afaded
typing
2025-03-04 18:10:41 +05:00
Andrej730
5f86c6d1c2
shape_builder.create_axis2_placement_3d_from_matrix - small optimization
...
create_axis2_placement_3d now is fine with numpy arrays
2025-03-03 13:54:57 +05:00
Andrej730
a01278aa8d
ifcopenshell.util.shape to return Python floats if return is just a scalar
2025-03-03 13:54:56 +05:00
Andrej730
6eda4e389c
typing
2025-02-24 18:52:34 +05:00
Andrej730
0783f8082e
black .
2025-02-24 18:52:34 +05:00