Use latest syntax for setting geometry settings #5299

Also fixed:
- old include_curves use
- missing use of 'include_curves' in ifcopenshell.draw
This commit is contained in:
Andrej730
2024-09-05 10:53:52 +05:00
parent fcf41bf00c
commit ea6df7f617
6 changed files with 15 additions and 12 deletions
+2 -2
View File
@@ -231,9 +231,9 @@ class IfcDiff:
def get_settings(self, ifc: ifcopenshell.file) -> ifcopenshell.geom.settings:
settings = ifcopenshell.geom.settings()
# Are you feeling lucky?
settings.set(settings.DISABLE_BOOLEAN_RESULT, True)
settings.set("disable-boolean-result", True)
# Are you feeling very lucky?
settings.set(settings.DISABLE_OPENING_SUBTRACTIONS, True)
settings.set("disable-opening-subtractions", True)
# Facetation is to accommodate broken Revit files
# See https://forums.buildingsmart.org/t/suggestions-on-how-to-improve-clarity-of-representation-context-usage-in-documentation/3663/6?u=moult
body_contexts = [
@@ -25,7 +25,7 @@ Here's an example of changing settings in Python:
.. code-block:: python
settings = ifcopenshell.geom.settings()
settings.set(settings.APPLY_DEFAULT_MATERIALS, True)
settings.set("apply-default-materials", True)
settings.set_deflection_tolerance(1e-3)
angular_tolerance
@@ -53,7 +53,7 @@ Here is an example in Python:
.. code-block:: python
settings = ifcopenshell.geom.settings()
settings.set_angular_tolerance(0.5)
settings.set("mesher-angular-deflection", 0.5)
APPLY_DEFAULT_MATERIALS
-----------------------
@@ -178,7 +178,7 @@ Here is an example in Python:
settings = ifcopenshell.geom.settings()
contexts = [c.id() for c in ifc_file.by_type("IfcGeometricRepresentationContext") if c.ContextIdentifier == "Body"]
settings.set_context_ids(contexts)
settings.set("context-ids", contexts)
CONVERT_BACK_UNITS
@@ -228,7 +228,7 @@ Here is an example in Python:
.. code-block:: python
settings = ifcopenshell.geom.settings()
settings.set_deflection_tolerance(1e-3)
settings.set("mesher-linear-deflection", 1e-3)
DISABLE_BOOLEAN_RESULT
----------------------
@@ -273,7 +273,7 @@ For example, if you want to set this setting in a python script you can use the
.. code-block:: python
settings = ifcopenshell.geom.settings()
settings.set(settings.DISABLE_OPENING_SUBTRACTIONS, True)
settings.set("disable-opening-subtractions", True)
DISABLE_TRIANGULATION
+2 -1
View File
@@ -88,7 +88,8 @@ def main(
)
# this is required for serialization
geom_settings.set("dimensionality", ifcopenshell.ifcopenshell_wrapper.CURVES_SURFACES_AND_SOLIDS)
dimensionality = W.CURVES_SURFACES_AND_SOLIDS if settings.include_curves else W.SURFACES_AND_SOLIDS
geom_settings.set("dimensionality", dimensionality)
geom_settings.set("iterator-output", ifcopenshell.ifcopenshell_wrapper.NATIVE)
geom_settings.set("apply-default-materials", True)
@@ -22,6 +22,7 @@ import time
import operator
import functools
import multiprocessing
import ifcopenshell.ifcopenshell_wrapper as W
try:
from OCC.Core import AIS
@@ -522,8 +523,8 @@ class application(QtWidgets.QApplication):
if setting is None:
setting = settings()
setting.set(setting.INCLUDE_CURVES, True)
setting.set(setting.USE_PYTHON_OPENCASCADE, True)
setting.set("dimensionality", W.CURVES_SURFACES_AND_SOLIDS)
setting.set("use-python-opencascade", True)
self.signals = geometry_creation_signals()
thread = self.thread = geometry_creation_thread(self.signals, setting, f)
@@ -365,7 +365,7 @@ def create_shape(
"""
Return a geometric representation from STEP-based IFCREPRESENTATIONSHAPE
or
Return an OpenCASCADE BRep if settings.USE_PYTHON_OPENCASCADE == True
Return an OpenCASCADE BRep if 'use-python-opencascade' is True
Note that in Python, you must store a reference to the element returned by this function to prevent garbage
collection when you access its children. See #1124.
@@ -391,7 +391,7 @@ def create_shape(
.. code:: python
settings = ifcopenshell.geom.settings()
settings.set(settings.USE_PYTHON_OPENCASCADE, True)
settings.set("use-python-opencascade", True)
ifc_file = ifcopenshell.open(file_path)
products = ifc_file.by_type("IfcProduct")
@@ -19,6 +19,7 @@ class TestGeomSettings:
assert settings.get("use-python-opencascade") is False
assert "USE_PYTHON_OPENCASCADE = False" in repr(settings)
# Testing both new and old ways of setting geometry settings.
if ifcopenshell.geom.has_occ:
settings.set("use-python-opencascade", True)
settings.set(settings.USE_PYTHON_OPENCASCADE, True)