Dion Moult
b616cafa49
Minor typing hint and disable linear position elements from loading
2024-06-28 13:01:15 +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
4ec8345716
typing
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
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
Andrej730
9b9301cbb0
ifc4x3 docs parser - use release ifc4x3 version
2024-06-24 15:22:02 +05:00
Andrej730
4d9b461776
Update ifc4x3 docs with ifc4x3_add2 release version
2024-06-24 15:22:02 +05:00
Andrej730
36f7cdacbd
ifc4x3 docs - temporary fix for issue upstream
...
see https://github.com/buildingSMART/IFC4.3.x-development/issues/754
2024-06-24 15:22:02 +05:00
Andrej730
feb0e46257
More readable error if express file is missing
2024-06-24 15:22:02 +05:00
Andrej730
0b901bff5f
typing
2024-06-24 15:22:02 +05:00
Dion Moult
7a36c05c30
Implement WCS consideration in XYZ <-> ENH conversions.
2024-06-24 18:21:06 +10:00
Dion Moult
ac58e6b8b2
Minor fix to new collection organisation for drawings
2024-06-24 18:21:06 +10:00
Dion Moult
e295d596fe
Split true north in API and Blender UI to be editable independent of georeferencing
...
They are two separate concepts, after all.
2024-06-23 23:19:27 +10:00
Dion Moult
013b138e5c
Default to adding EPSG:3857 when adding georeferencing and let users choose an EPSG when adding.
2024-06-23 23:17:44 +10:00
Dion Moult
95d2d0af83
You can now see and edit WCS in the Blender UI (new API for it too)
2024-06-23 22:23:48 +10:00
Dion Moult
03ee826e67
Add tests for xaxis and yaxis angle conversions
...
This tricked me today, the "XAxis" and "YAxis" vectors are from different perspectives (yikes!). XAxis is from the perspective of grid north, and YAxis is from the perspective of project north. I'm following this convention because that's what buildingSMART docs do but just FYI they serve two different purposes!
2024-06-23 22:23:48 +10:00
Dion Moult
fd8cb7e8ed
Implement Blender UI for handling new coordinate operations in IFC4X3
2024-06-22 23:32:25 +10:00
Dion Moult
4ef237e0f7
Implement purge map unit when removing georeferencing and removing 2X3 and 4X3 georeferencing in API
2024-06-22 22:13:20 +10:00
Dion Moult
3c48cfbc19
Add support for IfcRigidOperation and IfcMapConversionScaled in API
2024-06-22 21:59:09 +10:00
Dion Moult
a6c3ae8446
Typing and update geolocation conversion utils to follow IFC4X3 rules about unit scaling
2024-06-22 15:52:00 +10:00
Dion Moult
d0373da0ad
Update XYZ <-> ENH geolocation conversion after the clarifications made on how to handle scale in IFC4X3
2024-06-22 14:47:42 +10:00
Andrej730
4385bf0bcc
create_shape - note about IfcTypeProducts
2024-06-21 17:50:22 +05:00
Andrej730
a834e5b4cd
element.get_type doc note
2024-06-21 17:50:22 +05:00
Andrej730
a594a6cfe2
typing
2024-06-21 17:49:02 +05:00
Andrej730
8b6235f42f
fix TessellateElements ifcpatch recipe
...
TessellateElements patch was failing because it was relying on optionality of `edges` argument. Though argument itself is currently useless and not used in the code.
2024-06-21 17:49:02 +05:00
Andrej730
d443c5e2a6
element.get_type - check schema explicitly for a small optimization
...
Previously if product had no types it would still run through all element.IsDefinedBy and check if they are IfcRelDefinesByType even if it's not IFC2X3.
2024-06-21 17:49:02 +05:00
Dion Moult
bce6485b91
Support adding / editing georeferencing for IFC2X3 fallback psets
2024-06-21 11:21:41 +10:00
Dion Moult
fcf2c37432
New SetFalseOrigin patch recipe to make it easy to "Just Fix It!"
...
This combines the best practices of a few other patch recipes to make it easy to say "this point here is this world coordinate".
2024-06-19 23:41:46 +10:00
Dion Moult
a3b6a6ea39
Black geom/main.py
2024-06-15 23:50:37 +10: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
Dion Moult
1db26aab15
Fix #4837 . Make mathutils dependency optional.
...
In the long term, I'd like to replace mathutils with numpy.
2024-06-15 15:10:36 +10:00
Dion Moult
9331292dd1
Fix bug where editing qtos was hardcoded to IFC4.
2024-06-15 14:07:27 +10:00
Dion Moult
cad7db0162
See #4838 . Consistently use schema_identifiers throughout the code instead of schema to be more explicit.
...
This also means in the future we are better shaped to be a prototyping platform for future IFC versions.
2024-06-15 14:05:37 +10:00
Andrej730
99338187de
prevent possible errors initializing swig wrapper's Settings #4861
2024-06-13 18:19:12 +05:00
Thomas Krijnen
79c0246e6a
Don't sort enum names for correspondence with header
2024-06-12 11:47:27 +02:00
Andrej730
f54f45a051
geom.settings - add a tooltip for available settings #4832
...
example - https://i.imgur.com/eTdqv5J.png
added a test so we won't miss if some setting will be added/removed
2024-06-11 18:26:18 +05:00
Dion Moult
b009913cf4
Fix #4511 . IfcOpenShell builds now read from the VERSION file and expose a __version__ var.
2024-06-11 13:11:14 +10:00
Thomas Krijnen
593fba98c1
Fix USE_PYTHON_OPENCASCADE setting #4832
2024-06-10 21:12:37 +02:00