Commit Graph

2776 Commits

Author SHA1 Message Date
Dion Moult d00e60369b Bump IOS 2024-07-07 22:24:35 +10:00
Dion Moult 95f71a2e2f You can now specify custom project norths when loading in models in absolute terms 2024-07-06 15:43:16 +10:00
Andrej730 74e27a27b5 bump BBIM build 2024-07-05 12:02:16 +05:00
petrisch 2ddbf57597 Little typo 2024-07-04 11:34:07 +05:00
Andrej730 f1290ef061 Replace SEW_SHELLS with REORIENT_SHELLS #4832 2024-07-04 11:10:24 +05:00
Thomas Krijnen 10059a722b Handling of None in draw.py #4924 - mostly untested 2024-07-03 20:02:13 +02:00
Andrej730 8f92877fb4 typing 2024-07-03 18:12:20 +05:00
Andrej730 5d1b2e4651 black format 2024-07-03 18:12:19 +05:00
Andrej730 9485190604 ifcopenshell.draw - omit sys.argv + help message
To make sure user will get an error if files are not provided - if we use sys.argv then we always have __file__ in it and if user won't provide fiels they'll get a less readable error

Before:
    sr.setFile(files[0])
               ~~~~~^^^
IndexError: list index out of range

Now:
usage: draw.py files [files ...]
draw.py: error: the following arguments are required: files
2024-07-02 15:32:48 +05:00
Andrej730 d1523eaeac ifcopenshell.draw - update to v0.8 2024-07-02 15:32:48 +05:00
Andrej730 1af8e7d0ef ifcopenshell.geom.serializers - avoid wrappers for svg/obj
To keep the signatures
2024-07-02 15:32:48 +05:00
Andrej730 deb0b3482b IfcHeaderExtractor tests 2024-07-01 18:26:03 +05:00
Andrej730 ae2a299616 move IfcHeaderExtractor to util.file
edited pyproject.toml as `disableBytesTypePromotions` is disabled by default in non-strict mode and type checker intrerprets `bytes` as `bytes | memoryview | bytearray` which is deprecated in https://peps.python.org/pep-0688/#no-special-meaning-for-bytes
2024-07-01 18:26:03 +05:00
Andrej730 8538a916a3 ifcopenshell.file docs 2024-07-01 18:26:02 +05:00
Dion Moult 5c151c6b57 Bump bot build 2024-07-01 11:44:17 +10:00
shungeer 8c12da13e6 Update README.md about extend express usage (#4841)
1. C++ code generation by extend express.
2. python rule code generation by extend express.
2024-07-01 11:20:30 +10:00
Dion Moult 0d401c9272 Fix bug where migrating length units didn't change properties. Unit utility for checking attribute types now considers select types too
Changing properties is very critical for IFC2X3 georeferencing which is stored in a pset.
2024-06-29 17:04:27 +10:00
Andrej730 dcc568f5a3 ifcopenshell.geom.create_shape - expose geometry_library argument 2024-06-28 18:24:58 +05:00
Andrej730 2e4a2712e9 ifcopenshell.geom - document available geometry libraries 2024-06-28 18:24:58 +05:00
Andrej730 c3930a6573 black format 2024-06-28 18:16:32 +05:00
Dion Moult 158f3d2962 Migrating calendar dates from IFC2X3 to IFC4 is now supported 2024-06-28 21:36:45 +10:00
Dion Moult b616cafa49 Minor typing hint and disable linear position elements from loading 2024-06-28 13:01:15 +10:00
Dion Moult 70bb0e5481 Update doc code examples to use static functions 2024-06-28 12:54:14 +10:00
Dion Moult 07060fc769 Replace all ifcopenshell.api.run with ifcopenshell.api static functions. 2024-06-28 12:36:31 +10:00
Andrej730 dc8912c128 -m ifcopenshell.validate not to print an empty line if file is valid 2024-06-27 18:26:49 +05:00
Andrej730 07a0b4fe2d -m ifcopenshell.validate to print a message if file is valid 2024-06-27 18:26:49 +05:00
Andrej730 eb67ffcbec Use ifc4 for enum entities in select attributes validation test #4927 2024-06-27 18:26:49 +05:00
Andrej730 4ec8345716 typing 2024-06-27 18:26:49 +05:00
Andrej730 56d3b2ca36 Use release ifc4x3 version for validation tests 2024-06-27 18:26:49 +05:00
Andrej730 dd06b1a6c4 small addition to 14dbe121f 2024-06-27 18:26:49 +05:00
Andrej730 14dbe121f6 update serializer settings literals #4912 2024-06-27 10:59:35 +05:00
Dion Moult 48d058a32a Fix #4921. When upgrading to IFC4X3, preprocess the file to remove deprecated style assignments 2024-06-27 11:49:12 +10:00
Dion Moult 2d5be6cf89 Search replace 0.7.0 with 0.8.0 2024-06-27 11:49:12 +10:00
Andrej730 24e16d97f3 deprecate non-batching api #4474 2024-06-26 18:11:07 +05:00
Andrej730 13d61f0135 rename sequence.assign_workplan for consistency 2024-06-26 17:17:34 +05:00
Andrej730 d5613e0e26 typing 2024-06-26 17:06:30 +05:00
Andrej730 7bbc81b7c3 create_shape - include more types in the docs 2024-06-26 16:13:59 +05:00
Dion Moult de00429df6 Make version in bot build download dynamic 2024-06-26 17:14:57 +10:00
Dion Moult cb85b690e7 Bump bot build 2024-06-26 17:09:58 +10:00
Dion Moult b85dcdb437 Distribute IfcCityJSON on PyPI 2024-06-26 13:53:55 +10:00
Dion Moult f740ca3cf1 Distribute Ifc5D on PyPI 2024-06-26 13:02:59 +10:00
Dion Moult b9269b5a11 Distribute Ifc4D on PyPI 2024-06-26 13:02:18 +10:00
Dion Moult 16e98e1400 Distribute IfcFM on PyPI 2024-06-26 12:10:59 +10:00
Dion Moult 4976074b18 Distribute IfcDiff on PyPI 2024-06-26 12:03:08 +10:00
Dion Moult ae91c2b9f0 See #4919. Include pip install instructions for utils in docs. 2024-06-26 09:16:21 +10:00
Andrej730 f364643d7e fix assigning material usages / reloading reprs after c4ae9578e #4843 2024-06-25 18:30:52 +05:00
Andrej730 7700e8016b ifcopenshell.geom.create_shape - document all return types 2024-06-25 18:30:51 +05:00
Andrej730 6e1ebb02ac file and entity - avoid infinite recursion if they fail to initialize
Example of the error:

Traceback (most recent call last):
  File "\test.py", line 133, in <module>
    ifc_file = ifcopenshell.file.from_string(ifc_str)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\ifcopenshell\file.py", line 648, in from_string
    return file(ifcopenshell_wrapper.read(s))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "\ifcopenshell\file.py", line 264, in __init__
    raise exc(msg)
ifcopenshell.SchemaError: Unsupported schema: IFC2X3
Exception ignored in: <function file.__del__ at 0x00000250896EB740>
Traceback (most recent call last):
  File "\ifcopenshell\file.py", line 282, in __del__
    del file_dict[self.file_pointer()]
                  ^^^^^^^^^^^^^^^^^
  File "\ifcopenshell\file.py", line 424, in __getattr__
    return getattr(self.wrapped_data, attr)
                   ^^^^^^^^^^^^^^^^^
  File "\ifcopenshell\file.py", line 424, in __getattr__
    return getattr(self.wrapped_data, attr)
                   ^^^^^^^^^^^^^^^^^
  File "\ifcopenshell\file.py", line 424, in __getattr__
    return getattr(self.wrapped_data, attr)
                   ^^^^^^^^^^^^^^^^^
  [Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded

Simple way to trigger those recursions was:

import ifcopenshell
ifcopenshell.file(schema="IFC4x3_RC4_43c3555")
ifcopenshell.entity_instance(("IFC4X3", "IfcPresentationStyleAssignment"))
2024-06-25 18:30:51 +05:00
Andrej730 d2e7e3daaf move ifc file handling logic to ifcopenshell.file
to reuse the same logic for both ifcopenshell.open and ifcopenshell.file.from_string()
2024-06-25 18:30:51 +05:00
Thomas Krijnen 1e5c51e5b2 Update main.py 2024-06-24 21:48:54 +02:00