Commit Graph

36 Commits

Author SHA1 Message Date
Andrej 02d359d0e6 Fix Ruff UP035 (also deprecated annotation symbols) 2025-06-09 18:03:19 +05:00
Andrej 0663c5130a typing 2025-05-29 19:14:42 +05:00
Dion Moult 67016d6f90 See #2999. Reimplement basic creation of structural items. 2025-05-19 17:36:12 +10:00
Andrej730 68d967c2e5 pyproject.toml - enableTypeIgnoreComments=false 2025-05-16 19:43:41 +05:00
Andrej730 3d225beafd Add notes on Tekla accommodations (7c3870595) 2025-05-13 16:59:12 +05:00
Dion Moult 7c38705958 Accommodate invalid missing mapped representations and items coming from Tekla (2023) 2025-05-13 13:09:37 +10: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
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
Dion Moult 6ac6f13018 Fix #5824. Prioritise 3D over 2D. Only then consider subcontexts.
It's unexpected in our 3D default viewing world to have 2D first over
3D.
2025-02-15 19:03:52 +11:00
Andrej730 57d7d83ebb Fix Python <3.10 support #6141 2025-02-11 16:50:07 +05:00
Dion Moult dc79e9e005 More utility functions to jump between representations, styles, and shape aspects
It's a bit uncertain where these belong best, we'll find out over time
2025-02-01 16:11:37 +11:00
Andrej730 74a9669fa8 Fix error tabbing into IfcRevolvedAreaSolid with a boolean + add resolve_base_items
resolve_items couldn't find IfcRevolvedAreaSolid inside a boolean result
2025-01-22 16:35:22 +05:00
Andrej730 391091ad12 typing 2025-01-22 16:34:58 +05:00
Dion Moult 35734f4b67 Guess representation type from items based on where rule
Previously we never implemented this in a very strict way so it was
prone to mistakes.
2025-01-18 18:35:13 +11:00
Andrej730 bec1d913c5 util.representation.get_representations_iter 2024-09-03 18:38:22 +05:00
Andrej730 66877c227b typing 2024-07-15 18:34:38 +05:00
Dion Moult 8246d2c593 Aggressively refactor out functions relevant to guessing a false origin to tool.Loader 2024-06-15 23:50:27 +10:00
Andrej730 70091aa28b typing 2024-06-03 17:44:04 +05:00
Dion Moult 93639e9e50 Even more cleaning of documentation references 2024-05-07 19:08:13 +10:00
Andrej730 1b1eccb0c1 typing 2024-03-21 15:06:32 +05:00
Dion Moult 434a11a502 Fix #4057. Move clipping info dataclass to util.shape_builder 2023-11-29 09:28:24 +11:00
Dion Moult 3e268be5c7 Fix #4052. Bug where invalid plane was generated due to missing X axis. 2023-11-28 11:52:56 +11:00
Andrej730 50bbe849ff minor fix to support union typing before python 3.10 #3774 2023-11-17 18:57:51 +05:00
Andrej730 dc438b2560 ClippingInfo util class to pass and apply plane clippings #3774
Co-Authored-By: Carlos Villagrasa <carvillasil@gmail.com>
2023-11-17 16:52:59 +05:00
Dion Moult 3b298d44c1 Fix regressions in mapped native swept disk handling 2023-11-01 14:16:12 +11:00
Dion Moult 49b733f660 See #3817. WARNING: fundamental change. Standardise prioritisation of all context permutations when loading occurrences and types. 2023-10-09 23:21:09 +11:00
Dion Moult e40bbf2525 See #1806. Typed fillings now share the same representation for their openings. 2023-02-06 17:01:29 +11:00
Andrej730 1888048d4d Moved ShapeBuilder to separate module #2679
Moved ShapeBuilder to separate module - now `mathutils` will be only required if you're actually using ShapeBuilder (related to #2679)
2023-01-08 19:47:18 +05:00
Andrej730 c29048ecfb Furniture library bug fixes 2023-01-08 19:47:18 +05:00
Andrej730 23c7bc3f56 Added ShapeBuilder class and library for non structural assets (
`ShapeBuilder` class is used to programmatically create 2d and 3d ifc shapes and representations. It's inspired by the way OpenSCAD language is designed - the goal was to create a readable and easy way to create new shapes. The class can be imported from `ifcopenshell.util.representation` module.

Examples of things created with `ShapeBuilder` can be found in `shape_builder_examples.py` or `generate_furniture_library.py` / `Non_structural_assets_library.ifc`.

Also added ifc library of non structual assets (furniture etc) - `Non_structural_assets_library.ifc`. All assets are using most common dimensions for them - it makes it good for prototyping. Related to https://community.osarch.org/discussion/1192
2023-01-06 16:35:55 +05:00
Dion Moult 810c71dfa2 IfcOpenShell-python licensing and black. See #1082. 2022-01-19 12:18:33 +11:00
Dion Moult f2352e9a17 Old annotation systems now creates IFC elements again. Also text and misc annotations now work again with new system. See #1153. 2021-05-16 18:26:48 +10:00