Commit Graph

3329 Commits

Author SHA1 Message Date
Andrej730 0601802005 typing 2025-01-13 17:53:01 +05:00
Dion Moult e29f686d3f Update setting literal from old name of "debug" to new name "debug-boolean". 2025-01-13 15:45:27 +11:00
Dion Moult 8cf7057abc Fix #5954. Special automatic movement of features shouldn't then also move children of those features.
If you move a wall, and that wall has features (e.g. openings), it's
desirable to also move those openings (because they are invisible). This
is a special exception to `should_transform_children` because the
definition of the feature (opening) is inherently tied to the parent
(wall).

What wasn't considered is that this would typically then also move
subchildren of the features (e.g. fills like doors). I'm surprised
nobody caught this earlier.

I did also consider another approach where if you move a wall, it moves
all unfilled openings, and if you move a door which fills a opening, it
moves the opening too. Intuitively it sounds nice, but it doesn't work
because:

 - Openings can have multiple fillings. If you move all fillings, they
all fight to move the openings.
 - All logic about children goes one way: a placement may have child
placements relative to it. This breaks the convention (if moving a door
instead moves its opening) which can make brains explode.
 - It starts to conflate rules about relative / referenced placements
with spatial decomposition. We assume all IFCs are valid and follows the
convention of relative placement but we cannot guarantee this. This also
leads to brain explosion.
2025-01-13 15:44:52 +11:00
Dion Moult 316b9554d4 Fix #5959. Bug where default selection basket in selector query was not added per facet list.
Previously the code looked for additive facets (entity, instance)
anywhere in the query, and then only added the default basket once at
the beginning of the query. This change makes it look for additive
facets in order (that way you could start with a default selection, and
then later use an additive facet) and does it per facet list (so you can
omit the additive facet at the beginning of each list).
2025-01-13 12:46:44 +11:00
Dion Moult 0eb987fc07 Black 2025-01-12 22:43:41 +11:00
LM-Nascimento 80996dee1f Update unit.py 2025-01-12 17:25:21 +11:00
c4rlosdias d1ad082979 Add derived unit 2025-01-12 17:12:20 +11:00
Thomas Krijnen ba9693519b Remove mathutils import from shape_builder.py 2025-01-12 17:05:32 +11:00
Thomas Krijnen 1b6ee26854 Don't fail on empty ReferencedSource in IfcTester 2025-01-05 14:40:27 +01:00
Gorgious56 3a7488d54b Fix #3261 : You can now purge unused openings that do not intersect with their related building element.
It's a naive implementation and very inefficient. Moreover there may be false positives because it's testing overlapping the evaluated mesh element with all openings applied.
2025-01-03 17:37:46 +01:00
Thomas Krijnen 9fa44fdc3c Setting rename 2024-12-29 15:53:07 +01:00
Andrej730 d55a291589 get_top_area to calculate area for the roof #5899 2024-12-27 19:43:30 +05:00
Andrej730 6c6e40b07c get_side_area - add angle argument 2024-12-27 19:43:30 +05:00
Andrej730 19c1394d94 typing 2024-12-27 19:43:29 +05:00
Andrej730 ff147a4c24 Fallback for queries if no elements filter is provided #5901 2024-12-25 17:40:51 +05:00
Andrej730 769025e084 typing 2024-12-25 15:20:40 +05:00
Andrej730 170b6fc67e typing 2024-12-23 18:59:55 +05:00
Andrej730 f1080a8278 ifcopenshell.open - more robust file existence check 2024-12-23 16:19:56 +05:00
Andrej730 9128bf2d47 Fix missing line after f22636d #5896 2024-12-23 15:32:15 +05:00
Andrej730 6edc6cec71 Fix Migrate not migrating ifc file header #5903 2024-12-23 12:33:32 +05:00
Andrej730 31069d6643 Fix error creating polylines in ifc2x3 after 9fbcb39
By accident it was providing numpy array instead of ifc points entities.
2024-12-23 12:33:17 +05:00
Andrej730 a79c4b1ace typing 2024-12-20 18:59:22 +05:00
Andrej730 74fe1b4eb9 append_asset - ensure to update existing rels appending second asset
E.g. in #5890 pset was shared by 2 elements and they it worked is
1) it appended first element and it's rel to pset
2) it appended second element and skipped updating it's rel as it was appended before. Now it's going to update it to ensure it encludes second element too.

I believe, issue occurred after 8c28f52 when we stopped duplicating inverses and started to reuse them.
2024-12-20 12:47:10 +05:00
Andrej730 284ec46b81 add_door_representation - remove mathutils dependency #5192 2024-12-19 18:31:49 +05:00
Andrej730 d6e6a6d559 add_railing_representation - remove mathutils dependency #5192 2024-12-19 18:31:49 +05:00
Andrej730 f22636d880 add_window_representation - remove mathutils dependency #5192 2024-12-19 18:31:49 +05:00
Andrej730 eae92b55bb shape_builder - np utils 2024-12-19 18:31:49 +05:00
Andrej730 5b315bfa8f shape_builder - add test for mirror 2024-12-19 18:31:49 +05:00
Andrej730 5cd769e5b4 shape_builder tests - remove mathutils dependency #5192 2024-12-19 18:31:49 +05:00
Andrej730 0e8eeb18ac shape_builder - remove mathutils dependency completely #5192 2024-12-19 18:31:48 +05:00
Andrej730 b4a0a5df6c mathutils deprecation - mep_bend_shape #5192 2024-12-19 18:31:48 +05:00
Andrej730 5469d3f9d5 mathutils deprecation - mep_transition_shape #5192 2024-12-19 18:31:48 +05:00
Andrej730 4a68285d1f mathutils deprecation - meshes #5192 2024-12-19 18:31:48 +05:00
Andrej730 01c2edfd16 mathutils deprecation - extrude #5192 2024-12-19 18:31:47 +05:00
Andrej730 c32616faca mathutils deprecation - mirror #5192 2024-12-19 18:31:47 +05:00
Andrej730 6e8815eacc mathutils deprecation - rotate #5192 2024-12-19 18:31:47 +05:00
Andrej730 8250f02866 mahtutils deprecation - translate #5192 2024-12-19 18:31:47 +05:00
Andrej730 c1ec42c95b mathutils deprecation - circle, plane, placements, curves #5192 2024-12-19 18:31:47 +05:00
Andrej730 63f56d2f21 mathutils -> numpy - polyline, rectangle #5192 2024-12-19 18:31:47 +05:00
Thomas Krijnen 9efc9d2044 Fix iteration over indeterminate in rule execution 2024-12-18 11:45:47 +01:00
Andrej730 34e8e8911d geometry test - IfcSweptDiskSolid 2024-12-13 19:07:57 +05:00
Andrej730 c4945970e3 test IfcCircle values 2024-12-13 19:07:57 +05:00
Andrej730 1e0ca1d891 convert-back-units test #5864 2024-12-10 18:09:26 +05:00
Andrej730 6090c1c669 typing 2024-12-09 18:30:04 +05:00
civilx64 ad35ceef2a add missing import for ifcopenshell.api.georeference 2024-12-07 18:17:36 +01:00
Andrej730 2da5f2d61e set_element_value - optimizations setting enum values
1) Identify from previous pset value whether prop was an enum (by checking if previous value is a list), instead of searching through prop templates

2) Compare previous and new enum values - if they match, skip editing IFC.
2024-12-06 18:57:54 +05:00
Andrej730 c7af55183b set_element_value for enums - add a test 2024-12-06 18:57:54 +05:00
Andrej730 73185293df Fix long time missing create_cog_representation
It was used in the code but method wasn't defined. I believe it was lost during 8b7d968 😁
2024-12-06 18:57:54 +05:00
Andrej730 6d01d71c60 add_representation.create_cartesian_point - fix missing z offset for 0 values 2024-12-06 18:57:54 +05:00
Andrej730 848af67fbb typing 2024-12-06 18:57:53 +05:00